Capture Api Response Test Fixture

作者 vercel5028fa46b4b4无许可证收录于 2026年10月8日更新于 2026年10月8日

Capture API response test fixture.

AI 生成的概览

将真实的提供商 API 响应捕获为测试夹具,用于 AI SDK 仓库中的解析测试。

功能
指导代理编写小型示例脚本,调用提供商模型并记录或保存原始响应。对于 generateText,会把原始响应体打印到控制台,以便复制为夹具;对于 streamText,会启用 includeRawChunks 并使用 saveRawChunks 辅助函数把结果写入输出文件夹。生成的文件放入 fixtures 子文件夹,并按现有命名约定命名。
适用场景
适用于新增或更新需要真实录制 API 响应作为夹具的提供商响应解析测试。也适合在该仓库中按既有做法,通过示例文件夹下的脚本生成这些夹具。
运行要求
需要 AI SDK 风格的仓库、pnpm 与 tsx、所调用提供商的包与凭据、访问该提供商的网络,以及所引用的示例辅助函数(run、saveRawChunks)。该技能不附带脚本,仅为说明文档。

API Response Test Fixtures

For provider response parsing tests, we aim at storing test fixtures with the true responses from the providers (unless they are too large in which case some cutting that does not change semantics is advised).

The fixtures are stored in a __fixtures__ subfolder, e.g. packages/openai/src/responses/__fixtures__. See the file names in packages/openai/src/responses/__fixtures__ for naming conventions and packages/openai/src/responses/openai-responses-language-model.test.ts for how to set up test helpers.

You can use our examples under /examples/ai-functions to generate test fixtures.

generateText (doGenerate testing)

For generateText, put the script under src/generate-text/<provider>/, log the raw response output to the console, and copy it into a new test fixture.

ts
import { openai } from '@ai-sdk/openai';import { generateText } from 'ai';import { run } from '../../lib/run';
run(async () => {  const result = await generateText({    model: openai('gpt-5-nano'),    prompt: 'Invent a new holiday and describe its traditions.',  });
  console.log(JSON.stringify(result.response.body, null, 2));});
streamText (doStream testing)

For streamText, you need to set includeRawChunks to true and use the special saveRawChunks helper. Put the script under the provider directory and run it from the /examples/ai-functions folder via pnpm tsx src/stream-text/<provider>/<script-name>.ts. The result is then stored in the /examples/ai-functions/output folder. You can copy it to your fixtures folder and rename it.

ts
import { openai } from '@ai-sdk/openai';import { streamText } from 'ai';import { run } from '../../lib/run';import { saveRawChunks } from '../../lib/save-raw-chunks';
run(async () => {  const result = streamText({    model: openai('gpt-5-nano'),    prompt: 'Invent a new holiday and describe its traditions.',    includeRawChunks: true,  });
  await saveRawChunks({ result, filename: 'openai-gpt-5-nano' });});

来源与署名

来源:vercel/ai位于skills/capture-api-response-test-fixture提交5028fa4

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架