
AI SDK 的 Cerebras Provider接入 Wafer-Scale 高速推理的完整指南【免费下载链接】aiThe AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and agents项目地址: https://gitcode.com/GitHub_Trending/ai/ai本指南基于 ai-sdk/cerebras 模块系统讲解如何在 AI SDKTypeScript中接入 Cerebras 的 Wafer-Scale Engine 高速推理服务涵盖安装配置、Provider 实例创建、模型调用、推理模型reasoning使用以及全部 Provider 选项。读完本文你将掌握用generateText/streamText驱动gpt-oss-120b等模型并理解请求体转换与结构化输出等底层实现细节。Cerebras Provider 是什么Cerebras provider是 AI SDK 官方为 Cerebras 提供的语言模型接入模块使 AI SDK 应用能够调用 Cerebras 的高速推理 API。Cerebras 的推理能力由其Wafer-Scale Engines晶圆级引擎和 CS-3 系统驱动主打低延迟、高吞吐的模型服务。在 AI SDK 生态中Cerebras provider 属于模型提供方model provider角色它把 Cerebras 的 Chat Completions 风格 API 统一适配为 AI SDK 的LanguageModelV4接口从而让上层ai核心库的generateText、streamText、generateObject等函数无需关心底层 HTTP 协议差异。从源码结构看cerebras-provider.ts 基于ai-sdk/openai-compatible的 OpenAI 兼容层实现因此 Cerebras API 的请求/响应协议与 OpenAI 兼容接口高度一致。环境要求与安装ai-sdk/cerebras是ai-sdk系列下的独立包安装它即可获得 Provider 能力无需安装额外的 Cerebras 官方 SDKnpm i ai-sdk/cerebras安装前需要注意以下前提运行时版本根据 package.json本包要求node 22。Peer 依赖需要zod ^3.25.76 || ^4.1.8用于 Provider 选项的类型校验见下文Provider 选项的 Schema 定义。API Key需要从 Cerebras 平台cloud.cerebras.ai获取 API Key运行时通过环境变量CEREBRAS_API_KEY提供也可在创建 Provider 实例时显式传入。包体积策略包的sideEffects被声明为false可安全参与 tree-shaking。如果你使用 Claude Code、Cursor 等编码 Agent官方还建议把 AI SDK 的 skill 加入仓库帮助 Agent 正确使用本模块npx skills add vercel/ai创建 Provider 实例使用默认实例ai-sdk/cerebras导出了一个开箱即用的默认 Provider 实例cerebras大多数场景直接导入即可import { cerebras } from ai-sdk/cerebras;自定义实例createCerebras当需要自定义 API Key、Base URL、请求头或 fetch 实现时使用createCerebras创建独立实例import { createCerebras } from ai-sdk/cerebras; const cerebras createCerebras({ apiKey: process.env.CEREBRAS_API_KEY ?? , });从 cerebras-provider.ts 的CerebrasProviderSettings定义可以看到Provider 实例支持以下可选设置设置项类型说明apiKeystring通过Authorization: Bearer key头发送的 API Key默认读取CEREBRAS_API_KEY环境变量baseURLstringAPI 调用的 URL 前缀默认https://api.cerebras.ai/v1自动去除尾部斜杠headersRecordstring, string附加到每个请求的自定义请求头fetchFetchFunction自定义 fetch 实现可用于请求拦截中间件或测试场景注入 mock 响应底层实现中请求头会额外追加ai-sdk/cerebras/版本号形式的 User-Agent 后缀见 cerebras-provider.ts便于服务端识别 SDK 版本。Provider 实例本身是一个可调用函数callable同时暴露了多种模型工厂方法。测试用例 cerebras-provider.test.ts 验证了provider(modelId)直接调用会返回聊天语言模型实例对于不支持的模型类型embeddingModel等方法会抛出NoSuchModelErrorcerebras-provider.ts即 Cerebras provider 目前只提供语言模型能力。可用模型Cerebras provider 在类型层面声明的生产可用模型 ID 定义于 cerebras-chat-options.tsexport type CerebrasChatModelId // production gpt-oss-120b | gemma-4-31b | (string {});gpt-oss-120bCerebras 提供的 120B 级开源模型支持推理reasoninggemma-4-31b支持图像输入的 31B 级模型(string {})类型兜底允许传入后续新增的任意模型 ID具体以 Cerebras 官方模型列表为准。各模型的详细能力对比如下依据 官方 Provider 文档 中的能力表模型图像输入对象生成工具调用工具流式输出推理gpt-oss-120b不支持支持支持支持支持gemma-4-31b支持支持支持支持支持基本用法文本生成与流式输出一次性生成generateText将模型实例传给 AI SDK 核心库的generateText即可完成一次完整生成import { cerebras } from ai-sdk/cerebras; import { generateText } from ai; const { text } await generateText({ model: cerebras(gpt-oss-120b), prompt: Write a JavaScript function that sorts a list:, });流式输出streamTextCerebras 语言模型同样支持streamText流式调用适合对话式 UI 与逐 token 展示场景import { cerebras } from ai-sdk/cerebras; import { streamText } from ai; const result streamText({ model: cerebras(gpt-oss-120b), prompt: Explain why the sky is blue., }); for await (const part of result.stream) { if (part.type text-delta) { process.stdout.write(part.textDelta); } }其他模型工厂方法除直接调用外还可以使用.languageModel()或.chat()方法获得等价的语言模型实例const model cerebras.languageModel(gpt-oss-120b); // 等价于 const model cerebras.chat(gpt-oss-120b);推理模型Reasoning Models的使用gpt-oss-120b和gemma-4-31b会在输出最终答案前生成中间思考 tokenreasoning tokens。在 AI SDK 中这部分内容通过标准的 reasoning part 流式输出因此可以像处理普通文本一样消费import { cerebras } from ai-sdk/cerebras; import { streamText } from ai; const result streamText({ model: cerebras(gpt-oss-120b), providerOptions: { cerebras: { reasoningEffort: medium, }, }, prompt: How many rs are in the word strawberry?, }); for await (const part of result.stream) { if (part.type reasoning) { console.log(Reasoning:, part.text); } else if (part.type text-delta) { process.stdout.write(part.textDelta); } }对gpt-oss-120b可通过reasoningEffort控制推理深度。在测试夹具cerebras-structured-output-tools.1.json对应的流式响应中可以看到usage 信息会区分reasoning与text两类输出 tokencompletion_tokens_details中单独记录reasoning_tokens方便对推理开销进行观测与计费分析。Provider 选项详解Cerebras 语言模型支持一组 Provider 选项通过generateText/streamText的providerOptions.cerebras字段传入。这些选项的类型由 zod schema 约束定义在 cerebras-chat-language-model-options.ts并从包的入口导出为CerebrasLanguageModelChatOptions类型。选项类型/取值说明parallelToolCallsboolean是否在工具调用时启用并行函数调用默认truelogprobsboolean是否返回生成 token 的对数概率默认falsetopLogprobsnumber0–20 整数每个 token 位置返回最可能的前 N 个 token需logprobs为truelogitBiasRecordstring, number-100 至 100将 token ID 映射到偏差值调整特定 token 的出现概率serviceTierauto \| default \| flex \| priority控制请求优先级可用性取决于账号与端点reasoningEffortnone \| low \| medium \| high控制受支持模型的推理投入程度支持值与默认值因模型而异reasoningFormatnone \| parsed \| text_parsed \| raw \| hidden控制推理内容在响应中的呈现形式格式支持取决于模型prediction{ type: content; content: string \| { type: text; text: string }[] }提供预测输出在大部分响应内容已知时可加速请求promptCacheKeystring最长 1024 字符将相关请求路由到同一 prompt 缓存需账号级启用userstring代表终端用户的唯一标识有助于监控与滥用检测strictJsonSchemaboolean是否启用严格 JSON Schema 校验为true时使用约束解码保证 schema 合规默认true组合使用示例import { cerebras, type CerebrasLanguageModelChatOptions, } from ai-sdk/cerebras; import { generateText } from ai; const result await generateText({ model: cerebras(gpt-oss-120b), prompt: Explain why the sky is blue., providerOptions: { cerebras: { reasoningEffort: low, reasoningFormat: parsed, promptCacheKey: conversation-123, } satisfies CerebrasLanguageModelChatOptions, }, });cerebrasLanguageModelChatOptions的 zod schema 还给出了几个值得注意的约束topLogprobs被限制为min(0).max(20)的整数logitBias的值域为-100到100promptCacheKey最大 1024 字符。这些约束会在请求组装前完成校验避免向服务端发送非法参数。源码级原理请求体转换与输出归一化请求体字段映射transformCerebrasRequestBodyProvider 在把 AI SDK 的调用参数发送给 Cerebras 之前会经过 cerebras-provider.ts 中的transformCerebrasRequestBody转换主要做两件事参数命名从 camelCase 转为 snake_case如max_tokens→max_completion_tokens、parallelToolCalls→parallel_tool_calls、logitBias→logit_bias、serviceTier→service_tier、reasoningFormat→reasoning_format、promptCacheKey→prompt_cache_key。测试 cerebras-chat-language-model.test.ts 验证了这些映射并确认转换后请求体中不再残留 camelCase 字段。推理历史的字段兼容Cerebras 期望助手assistant的推理历史放在reasoning字段中而共享的 OpenAI 兼容转换器序列化时用的是reasoning_content。该函数会把reasoning_content重写为reasoning若消息中不存在reasoning字段保证多轮对话中的推理上下文能被 Cerebras 正确理解。对应的测试用例见 cerebras-provider.test.ts。结构化输出与工具调用的混合响应处理CerebrasChatLanguageModel继承自OpenAICompatibleChatLanguageModelcerebras-chat-language-model.ts并在doGenerate与doStream中覆写了 finish reason 归一化逻辑当请求为 JSON 结构化输出responseFormat.type json且原始 finish reason 为tool_calls但同时已产生有效文本内容时说明 Cerebras GLM 模型在输出合规结构化文本后又重复了一次工具调用。此时 Provider 会把这种混合响应视为最终答案丢弃多余的工具调用、将 unified finish reason 归一化为stopcerebras-chat-language-model.ts。流式场景下通过TransformStream在text-delta出现后过滤掉后续的tool-input-*与tool-call分片与doGenerate的行为保持一致cerebras-chat-language-model.ts。上述行为均有对应测试佐证doGenerate的 finish reason 归一化用例见 cerebras-chat-language-model.test.ts流式场景见同文件 L243-L323测试数据来自 fixtures 目录下的真实请求/响应夹具。错误结构与鉴权Provider 为 Cerebras API 定义了 zod 驱动的错误解析 schemamessage/type/param/code四字段错误消息直接取自message字段cerebras-provider.ts并导出CerebrasErrorData类型供上层做错误分类。API Key 的加载统一走loadApiKey支持显式传入或回退到CEREBRAS_API_KEY环境变量cerebras-provider.ts。结合 AI SDK 生态的典型落地路径Cerebras provider 与 AI SDK 的核心能力天然打通可以在同一套代码中组合使用结构化输出配合generateObject或responseFormat使用strictJsonSchema: true借助 Cerebras 的约束解码获得严格符合 Schema 的 JSONAgent / 工具调用在generateText/streamText中传入tools配合parallelToolCalls开启并行工具调用多轮对话中 Cerebras 的推理历史通过reasoning字段正确回传观测与缓存通过promptCacheKey提升缓存命中率结合 usage 中的cacheRead/cacheWrite字段观测实际缓存效果见 cerebras-chat-language-model.test.ts 中inputTokens.cacheRead的断言。小结ai-sdk/cerebras以极小的接入成本把 Cerebras 的 Wafer-Scale 高速推理能力带入 AI SDK 生态安装一个包、导入cerebras实例、传入模型 ID 即可开始调用。在源码层面它通过ai-sdk/openai-compatible复用成熟的 OpenAI 兼容协议处理链路并用请求体转换reasoning_content→reasoning、结构化输出混合响应的 finish reason 归一化等定制逻辑解决了与 Cerebras API 的实际差异。进一步阅读Cerebras Provider 官方文档同时会随包发布到docs/目录Provider 实例与设置实现语言模型实现Provider 选项 SchemaProvider 测试 与 语言模型测试【免费下载链接】aiThe AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and agents项目地址: https://gitcode.com/GitHub_Trending/ai/ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考