@ai-sdk/cerebras 3.0.32 → 3.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/index.d.ts +38 -1
- package/dist/index.js +27 -2
- package/dist/index.js.map +1 -1
- package/docs/40-cerebras.mdx +56 -2
- package/package.json +2 -2
- package/src/cerebras-chat-language-model-options.ts +29 -1
- package/src/cerebras-provider.ts +27 -1
- package/src/index.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @ai-sdk/cerebras
|
|
2
2
|
|
|
3
|
+
## 3.0.34
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d6a521a: feat(cerebras): add typed provider options and send `maxOutputTokens` as `max_completion_tokens` field
|
|
8
|
+
- Updated dependencies [99989ba]
|
|
9
|
+
- @ai-sdk/openai-compatible@3.0.34
|
|
10
|
+
|
|
11
|
+
## 3.0.33
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [d68139c]
|
|
16
|
+
- @ai-sdk/openai-compatible@3.0.33
|
|
17
|
+
|
|
3
18
|
## 3.0.32
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -51,6 +51,43 @@ interface CerebrasProvider extends ProviderV4 {
|
|
|
51
51
|
declare function createCerebras(options?: CerebrasProviderSettings): CerebrasProvider;
|
|
52
52
|
declare const cerebras: CerebrasProvider;
|
|
53
53
|
|
|
54
|
+
declare const cerebrasLanguageModelChatOptions: z.ZodObject<{
|
|
55
|
+
user: z.ZodOptional<z.ZodString>;
|
|
56
|
+
strictJsonSchema: z.ZodOptional<z.ZodBoolean>;
|
|
57
|
+
parallelToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
58
|
+
logprobs: z.ZodOptional<z.ZodBoolean>;
|
|
59
|
+
topLogprobs: z.ZodOptional<z.ZodNumber>;
|
|
60
|
+
logitBias: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
61
|
+
serviceTier: z.ZodOptional<z.ZodEnum<{
|
|
62
|
+
default: "default";
|
|
63
|
+
auto: "auto";
|
|
64
|
+
flex: "flex";
|
|
65
|
+
priority: "priority";
|
|
66
|
+
}>>;
|
|
67
|
+
reasoningEffort: z.ZodOptional<z.ZodEnum<{
|
|
68
|
+
none: "none";
|
|
69
|
+
low: "low";
|
|
70
|
+
medium: "medium";
|
|
71
|
+
high: "high";
|
|
72
|
+
}>>;
|
|
73
|
+
reasoningFormat: z.ZodOptional<z.ZodEnum<{
|
|
74
|
+
none: "none";
|
|
75
|
+
parsed: "parsed";
|
|
76
|
+
text_parsed: "text_parsed";
|
|
77
|
+
raw: "raw";
|
|
78
|
+
hidden: "hidden";
|
|
79
|
+
}>>;
|
|
80
|
+
prediction: z.ZodOptional<z.ZodObject<{
|
|
81
|
+
type: z.ZodLiteral<"content">;
|
|
82
|
+
content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodObject<{
|
|
83
|
+
type: z.ZodLiteral<"text">;
|
|
84
|
+
text: z.ZodString;
|
|
85
|
+
}, z.core.$strip>>]>;
|
|
86
|
+
}, z.core.$strip>>;
|
|
87
|
+
promptCacheKey: z.ZodOptional<z.ZodString>;
|
|
88
|
+
}, z.core.$strip>;
|
|
89
|
+
type CerebrasLanguageModelChatOptions = z.infer<typeof cerebrasLanguageModelChatOptions>;
|
|
90
|
+
|
|
54
91
|
declare const VERSION: string;
|
|
55
92
|
|
|
56
|
-
export { type CerebrasErrorData, type CerebrasProvider, type CerebrasProviderSettings, VERSION, cerebras, createCerebras };
|
|
93
|
+
export { type CerebrasErrorData, type CerebrasLanguageModelChatOptions, type CerebrasProvider, type CerebrasProviderSettings, VERSION, cerebras, createCerebras };
|
package/dist/index.js
CHANGED
|
@@ -96,7 +96,7 @@ var CerebrasChatLanguageModel = class _CerebrasChatLanguageModel extends OpenAIC
|
|
|
96
96
|
import { z } from "zod/v4";
|
|
97
97
|
|
|
98
98
|
// src/version.ts
|
|
99
|
-
var VERSION = true ? "3.0.
|
|
99
|
+
var VERSION = true ? "3.0.34" : "0.0.0-test";
|
|
100
100
|
|
|
101
101
|
// src/cerebras-provider.ts
|
|
102
102
|
var cerebrasErrorSchema = z.object({
|
|
@@ -110,8 +110,33 @@ var cerebrasErrorStructure = {
|
|
|
110
110
|
errorToMessage: (data) => data.message
|
|
111
111
|
};
|
|
112
112
|
function transformCerebrasRequestBody(args) {
|
|
113
|
+
const {
|
|
114
|
+
max_tokens: maxTokens,
|
|
115
|
+
parallelToolCalls,
|
|
116
|
+
topLogprobs,
|
|
117
|
+
logitBias,
|
|
118
|
+
serviceTier,
|
|
119
|
+
reasoningFormat,
|
|
120
|
+
promptCacheKey,
|
|
121
|
+
...restArgs
|
|
122
|
+
} = args;
|
|
113
123
|
return {
|
|
114
|
-
...
|
|
124
|
+
...restArgs,
|
|
125
|
+
...maxTokens !== void 0 && {
|
|
126
|
+
max_completion_tokens: maxTokens
|
|
127
|
+
},
|
|
128
|
+
...parallelToolCalls !== void 0 && {
|
|
129
|
+
parallel_tool_calls: parallelToolCalls
|
|
130
|
+
},
|
|
131
|
+
...topLogprobs !== void 0 && { top_logprobs: topLogprobs },
|
|
132
|
+
...logitBias !== void 0 && { logit_bias: logitBias },
|
|
133
|
+
...serviceTier !== void 0 && { service_tier: serviceTier },
|
|
134
|
+
...reasoningFormat !== void 0 && {
|
|
135
|
+
reasoning_format: reasoningFormat
|
|
136
|
+
},
|
|
137
|
+
...promptCacheKey !== void 0 && {
|
|
138
|
+
prompt_cache_key: promptCacheKey
|
|
139
|
+
},
|
|
115
140
|
messages: Array.isArray(args.messages) ? args.messages.map((message) => {
|
|
116
141
|
if (message == null || typeof message !== "object" || message.role !== "assistant" || !("reasoning_content" in message)) {
|
|
117
142
|
return message;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cerebras-provider.ts","../src/cerebras-chat-language-model.ts","../src/version.ts"],"sourcesContent":["import type { ProviderErrorStructure } from '@ai-sdk/openai-compatible';\nimport {\n NoSuchModelError,\n type LanguageModelV4,\n type ProviderV4,\n} from '@ai-sdk/provider';\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { CerebrasChatLanguageModel } from './cerebras-chat-language-model';\nimport type { CerebrasChatModelId } from './cerebras-chat-options';\nimport { z } from 'zod/v4';\nimport { VERSION } from './version';\n\n// Add error schema and structure\nconst cerebrasErrorSchema = z.object({\n message: z.string(),\n type: z.string(),\n param: z.string(),\n code: z.string(),\n});\n\nexport type CerebrasErrorData = z.infer<typeof cerebrasErrorSchema>;\n\nconst cerebrasErrorStructure: ProviderErrorStructure<CerebrasErrorData> = {\n errorSchema: cerebrasErrorSchema,\n errorToMessage: data => data.message,\n};\n\n/**\n * Cerebras expects assistant reasoning history in the `reasoning` field, while\n * the shared OpenAI-compatible converter serializes it as `reasoning_content`.\n */\nfunction transformCerebrasRequestBody(\n args: Record<string, any>,\n): Record<string, any> {\n return {\n ...args,\n messages: Array.isArray(args.messages)\n ? args.messages.map(message => {\n if (\n message == null ||\n typeof message !== 'object' ||\n message.role !== 'assistant' ||\n !('reasoning_content' in message)\n ) {\n return message;\n }\n\n const { reasoning_content, ...rest } = message;\n\n return {\n ...rest,\n ...(!('reasoning' in rest) && reasoning_content !== undefined\n ? { reasoning: reasoning_content }\n : {}),\n };\n })\n : args.messages,\n };\n}\n\nexport interface CerebrasProviderSettings {\n /**\n * Cerebras API key.\n */\n apiKey?: string;\n /**\n * Base URL for the API calls.\n */\n baseURL?: string;\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface CerebrasProvider extends ProviderV4 {\n /**\n * Creates a Cerebras model for text generation.\n */\n (modelId: CerebrasChatModelId): LanguageModelV4;\n\n /**\n * Creates a Cerebras model for text generation.\n */\n languageModel(modelId: CerebrasChatModelId): LanguageModelV4;\n\n /**\n * Creates a Cerebras chat model for text generation.\n */\n chat(modelId: CerebrasChatModelId): LanguageModelV4;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport function createCerebras(\n options: CerebrasProviderSettings = {},\n): CerebrasProvider {\n const baseURL = withoutTrailingSlash(\n options.baseURL ?? 'https://api.cerebras.ai/v1',\n );\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'CEREBRAS_API_KEY',\n description: 'Cerebras API key',\n })}`,\n ...options.headers,\n },\n `ai-sdk/cerebras/${VERSION}`,\n );\n\n const createLanguageModel = (modelId: CerebrasChatModelId) => {\n return new CerebrasChatLanguageModel(modelId, {\n provider: `cerebras.chat`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: cerebrasErrorStructure,\n supportsStructuredOutputs: true,\n transformRequestBody: transformCerebrasRequestBody,\n });\n };\n\n const provider = (modelId: CerebrasChatModelId) =>\n createLanguageModel(modelId);\n\n provider.specificationVersion = 'v4' as const;\n provider.languageModel = createLanguageModel;\n provider.chat = createLanguageModel;\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n };\n\n return provider;\n}\n\nexport const cerebras = createCerebras();\n","import { OpenAICompatibleChatLanguageModel } from '@ai-sdk/openai-compatible';\nimport type {\n LanguageModelV4,\n LanguageModelV4CallOptions,\n LanguageModelV4GenerateResult,\n LanguageModelV4StreamPart,\n LanguageModelV4StreamResult,\n} from '@ai-sdk/provider';\nimport {\n serializeModelOptions,\n WORKFLOW_DESERIALIZE,\n WORKFLOW_SERIALIZE,\n} from '@ai-sdk/provider-utils';\nimport type { CerebrasChatModelId } from './cerebras-chat-language-model-options';\n\ntype CerebrasChatConfig = ConstructorParameters<\n typeof OpenAICompatibleChatLanguageModel\n>[1];\n\nfunction isStructuredOutputWithToolCallsFinishReason({\n rawFinishReason,\n hasText,\n responseFormatType,\n}: {\n rawFinishReason: string | undefined;\n hasText: boolean;\n responseFormatType:\n | NonNullable<LanguageModelV4CallOptions['responseFormat']>['type']\n | undefined;\n}) {\n return (\n responseFormatType === 'json' && rawFinishReason === 'tool_calls' && hasText\n );\n}\n\nexport class CerebrasChatLanguageModel\n extends OpenAICompatibleChatLanguageModel\n implements LanguageModelV4\n{\n static [WORKFLOW_SERIALIZE](model: CerebrasChatLanguageModel) {\n return serializeModelOptions({\n modelId: model.modelId,\n config: model.config,\n });\n }\n\n static [WORKFLOW_DESERIALIZE](options: {\n modelId: CerebrasChatModelId;\n config: CerebrasChatConfig;\n }) {\n return new CerebrasChatLanguageModel(options.modelId, options.config);\n }\n\n async doGenerate(\n options: LanguageModelV4CallOptions,\n ): Promise<LanguageModelV4GenerateResult> {\n const result = await super.doGenerate(options);\n\n if (\n !isStructuredOutputWithToolCallsFinishReason({\n rawFinishReason: result.finishReason.raw,\n hasText: result.content.some(\n part => part.type === 'text' && part.text.length > 0,\n ),\n responseFormatType: options.responseFormat?.type,\n })\n ) {\n return result;\n }\n\n return {\n ...result,\n // Cerebras GLM can return valid structured output text while also\n // repeating a tool call. Treat that mixed response as the final answer.\n content: result.content.filter(part => part.type !== 'tool-call'),\n finishReason: {\n ...result.finishReason,\n unified: 'stop',\n },\n };\n }\n\n async doStream(\n options: LanguageModelV4CallOptions,\n ): Promise<LanguageModelV4StreamResult> {\n const result = await super.doStream(options);\n let hasText = false;\n\n return {\n ...result,\n stream: result.stream.pipeThrough(\n new TransformStream<\n LanguageModelV4StreamPart,\n LanguageModelV4StreamPart\n >({\n transform(part, controller) {\n if (part.type === 'text-delta' && part.delta.length > 0) {\n hasText = true;\n }\n\n if (\n part.type === 'finish' &&\n isStructuredOutputWithToolCallsFinishReason({\n rawFinishReason: part.finishReason.raw,\n hasText,\n responseFormatType: options.responseFormat?.type,\n })\n ) {\n controller.enqueue({\n ...part,\n finishReason: {\n ...part.finishReason,\n unified: 'stop',\n },\n });\n return;\n }\n\n if (\n options.responseFormat?.type === 'json' &&\n hasText &&\n (part.type === 'tool-input-start' ||\n part.type === 'tool-input-delta' ||\n part.type === 'tool-input-end' ||\n part.type === 'tool-call')\n ) {\n return;\n }\n\n controller.enqueue(part);\n },\n }),\n ),\n };\n }\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/cerebras-provider.ts","../src/cerebras-chat-language-model.ts","../src/version.ts"],"sourcesContent":["import type { ProviderErrorStructure } from '@ai-sdk/openai-compatible';\nimport {\n NoSuchModelError,\n type LanguageModelV4,\n type ProviderV4,\n} from '@ai-sdk/provider';\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { CerebrasChatLanguageModel } from './cerebras-chat-language-model';\nimport type { CerebrasChatModelId } from './cerebras-chat-options';\nimport { z } from 'zod/v4';\nimport { VERSION } from './version';\n\n// Add error schema and structure\nconst cerebrasErrorSchema = z.object({\n message: z.string(),\n type: z.string(),\n param: z.string(),\n code: z.string(),\n});\n\nexport type CerebrasErrorData = z.infer<typeof cerebrasErrorSchema>;\n\nconst cerebrasErrorStructure: ProviderErrorStructure<CerebrasErrorData> = {\n errorSchema: cerebrasErrorSchema,\n errorToMessage: data => data.message,\n};\n\n/**\n * Cerebras expects assistant reasoning history in the `reasoning` field, while\n * the shared OpenAI-compatible converter serializes it as `reasoning_content`.\n */\nfunction transformCerebrasRequestBody(\n args: Record<string, any>,\n): Record<string, any> {\n const {\n max_tokens: maxTokens,\n parallelToolCalls,\n topLogprobs,\n logitBias,\n serviceTier,\n reasoningFormat,\n promptCacheKey,\n ...restArgs\n } = args;\n\n return {\n ...restArgs,\n ...(maxTokens !== undefined && {\n max_completion_tokens: maxTokens,\n }),\n ...(parallelToolCalls !== undefined && {\n parallel_tool_calls: parallelToolCalls,\n }),\n ...(topLogprobs !== undefined && { top_logprobs: topLogprobs }),\n ...(logitBias !== undefined && { logit_bias: logitBias }),\n ...(serviceTier !== undefined && { service_tier: serviceTier }),\n ...(reasoningFormat !== undefined && {\n reasoning_format: reasoningFormat,\n }),\n ...(promptCacheKey !== undefined && {\n prompt_cache_key: promptCacheKey,\n }),\n messages: Array.isArray(args.messages)\n ? args.messages.map(message => {\n if (\n message == null ||\n typeof message !== 'object' ||\n message.role !== 'assistant' ||\n !('reasoning_content' in message)\n ) {\n return message;\n }\n\n const { reasoning_content, ...rest } = message;\n\n return {\n ...rest,\n ...(!('reasoning' in rest) && reasoning_content !== undefined\n ? { reasoning: reasoning_content }\n : {}),\n };\n })\n : args.messages,\n };\n}\n\nexport interface CerebrasProviderSettings {\n /**\n * Cerebras API key.\n */\n apiKey?: string;\n /**\n * Base URL for the API calls.\n */\n baseURL?: string;\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface CerebrasProvider extends ProviderV4 {\n /**\n * Creates a Cerebras model for text generation.\n */\n (modelId: CerebrasChatModelId): LanguageModelV4;\n\n /**\n * Creates a Cerebras model for text generation.\n */\n languageModel(modelId: CerebrasChatModelId): LanguageModelV4;\n\n /**\n * Creates a Cerebras chat model for text generation.\n */\n chat(modelId: CerebrasChatModelId): LanguageModelV4;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport function createCerebras(\n options: CerebrasProviderSettings = {},\n): CerebrasProvider {\n const baseURL = withoutTrailingSlash(\n options.baseURL ?? 'https://api.cerebras.ai/v1',\n );\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'CEREBRAS_API_KEY',\n description: 'Cerebras API key',\n })}`,\n ...options.headers,\n },\n `ai-sdk/cerebras/${VERSION}`,\n );\n\n const createLanguageModel = (modelId: CerebrasChatModelId) => {\n return new CerebrasChatLanguageModel(modelId, {\n provider: `cerebras.chat`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: cerebrasErrorStructure,\n supportsStructuredOutputs: true,\n transformRequestBody: transformCerebrasRequestBody,\n });\n };\n\n const provider = (modelId: CerebrasChatModelId) =>\n createLanguageModel(modelId);\n\n provider.specificationVersion = 'v4' as const;\n provider.languageModel = createLanguageModel;\n provider.chat = createLanguageModel;\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n };\n\n return provider;\n}\n\nexport const cerebras = createCerebras();\n","import { OpenAICompatibleChatLanguageModel } from '@ai-sdk/openai-compatible';\nimport type {\n LanguageModelV4,\n LanguageModelV4CallOptions,\n LanguageModelV4GenerateResult,\n LanguageModelV4StreamPart,\n LanguageModelV4StreamResult,\n} from '@ai-sdk/provider';\nimport {\n serializeModelOptions,\n WORKFLOW_DESERIALIZE,\n WORKFLOW_SERIALIZE,\n} from '@ai-sdk/provider-utils';\nimport type { CerebrasChatModelId } from './cerebras-chat-language-model-options';\n\ntype CerebrasChatConfig = ConstructorParameters<\n typeof OpenAICompatibleChatLanguageModel\n>[1];\n\nfunction isStructuredOutputWithToolCallsFinishReason({\n rawFinishReason,\n hasText,\n responseFormatType,\n}: {\n rawFinishReason: string | undefined;\n hasText: boolean;\n responseFormatType:\n | NonNullable<LanguageModelV4CallOptions['responseFormat']>['type']\n | undefined;\n}) {\n return (\n responseFormatType === 'json' && rawFinishReason === 'tool_calls' && hasText\n );\n}\n\nexport class CerebrasChatLanguageModel\n extends OpenAICompatibleChatLanguageModel\n implements LanguageModelV4\n{\n static [WORKFLOW_SERIALIZE](model: CerebrasChatLanguageModel) {\n return serializeModelOptions({\n modelId: model.modelId,\n config: model.config,\n });\n }\n\n static [WORKFLOW_DESERIALIZE](options: {\n modelId: CerebrasChatModelId;\n config: CerebrasChatConfig;\n }) {\n return new CerebrasChatLanguageModel(options.modelId, options.config);\n }\n\n async doGenerate(\n options: LanguageModelV4CallOptions,\n ): Promise<LanguageModelV4GenerateResult> {\n const result = await super.doGenerate(options);\n\n if (\n !isStructuredOutputWithToolCallsFinishReason({\n rawFinishReason: result.finishReason.raw,\n hasText: result.content.some(\n part => part.type === 'text' && part.text.length > 0,\n ),\n responseFormatType: options.responseFormat?.type,\n })\n ) {\n return result;\n }\n\n return {\n ...result,\n // Cerebras GLM can return valid structured output text while also\n // repeating a tool call. Treat that mixed response as the final answer.\n content: result.content.filter(part => part.type !== 'tool-call'),\n finishReason: {\n ...result.finishReason,\n unified: 'stop',\n },\n };\n }\n\n async doStream(\n options: LanguageModelV4CallOptions,\n ): Promise<LanguageModelV4StreamResult> {\n const result = await super.doStream(options);\n let hasText = false;\n\n return {\n ...result,\n stream: result.stream.pipeThrough(\n new TransformStream<\n LanguageModelV4StreamPart,\n LanguageModelV4StreamPart\n >({\n transform(part, controller) {\n if (part.type === 'text-delta' && part.delta.length > 0) {\n hasText = true;\n }\n\n if (\n part.type === 'finish' &&\n isStructuredOutputWithToolCallsFinishReason({\n rawFinishReason: part.finishReason.raw,\n hasText,\n responseFormatType: options.responseFormat?.type,\n })\n ) {\n controller.enqueue({\n ...part,\n finishReason: {\n ...part.finishReason,\n unified: 'stop',\n },\n });\n return;\n }\n\n if (\n options.responseFormat?.type === 'json' &&\n hasText &&\n (part.type === 'tool-input-start' ||\n part.type === 'tool-input-delta' ||\n part.type === 'tool-input-end' ||\n part.type === 'tool-call')\n ) {\n return;\n }\n\n controller.enqueue(part);\n },\n }),\n ),\n };\n }\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":[]}
|
package/docs/40-cerebras.mdx
CHANGED
|
@@ -118,9 +118,41 @@ See [AI SDK UI: Chatbot](/docs/ai-sdk-ui/chatbot#reasoning) for more details on
|
|
|
118
118
|
|
|
119
119
|
The following optional provider options are available for Cerebras language models:
|
|
120
120
|
|
|
121
|
-
- **
|
|
121
|
+
- **parallelToolCalls** _boolean_
|
|
122
122
|
|
|
123
|
-
|
|
123
|
+
Whether to enable parallel function calling during tool use. Defaults to `true`.
|
|
124
|
+
|
|
125
|
+
- **logprobs** _boolean_
|
|
126
|
+
|
|
127
|
+
Whether to return log probabilities for generated tokens. Defaults to `false`.
|
|
128
|
+
|
|
129
|
+
- **topLogprobs** _number_
|
|
130
|
+
|
|
131
|
+
Number of most likely tokens to return at each token position. Accepts values from `0` through `20`. Requires `logprobs` to be `true`.
|
|
132
|
+
|
|
133
|
+
- **logitBias** _Record<string, number>_
|
|
134
|
+
|
|
135
|
+
Maps token IDs to bias values from `-100` through `100`.
|
|
136
|
+
|
|
137
|
+
- **serviceTier** _'auto' | 'default' | 'flex' | 'priority'_
|
|
138
|
+
|
|
139
|
+
Controls request priority. Availability depends on your account and endpoint.
|
|
140
|
+
|
|
141
|
+
- **reasoningEffort** _'none' | 'low' | 'medium' | 'high'_
|
|
142
|
+
|
|
143
|
+
Controls the amount of reasoning performed by supported models. Supported values and defaults depend on the model.
|
|
144
|
+
|
|
145
|
+
- **reasoningFormat** _'none' | 'parsed' | 'text_parsed' | 'raw' | 'hidden'_
|
|
146
|
+
|
|
147
|
+
Controls how reasoning content appears in the response. Format support depends on the model.
|
|
148
|
+
|
|
149
|
+
- **prediction** _{ type: 'content'; content: string | Array<{ type: 'text'; text: string }> }_
|
|
150
|
+
|
|
151
|
+
Supplies predicted output that can accelerate requests where most of the response is already known.
|
|
152
|
+
|
|
153
|
+
- **promptCacheKey** _string_
|
|
154
|
+
|
|
155
|
+
Routes related requests to the same prompt cache. The value can contain up to 1024 characters and requires account-level enablement.
|
|
124
156
|
|
|
125
157
|
- **user** _string_
|
|
126
158
|
|
|
@@ -130,6 +162,28 @@ The following optional provider options are available for Cerebras language mode
|
|
|
130
162
|
|
|
131
163
|
Whether to use strict JSON schema validation. When `true`, the model uses constrained decoding to guarantee schema compliance. Defaults to `true`.
|
|
132
164
|
|
|
165
|
+
For example:
|
|
166
|
+
|
|
167
|
+
```ts
|
|
168
|
+
import {
|
|
169
|
+
cerebras,
|
|
170
|
+
type CerebrasLanguageModelChatOptions,
|
|
171
|
+
} from '@ai-sdk/cerebras';
|
|
172
|
+
import { generateText } from 'ai';
|
|
173
|
+
|
|
174
|
+
const result = await generateText({
|
|
175
|
+
model: cerebras('gpt-oss-120b'),
|
|
176
|
+
prompt: 'Explain why the sky is blue.',
|
|
177
|
+
providerOptions: {
|
|
178
|
+
cerebras: {
|
|
179
|
+
reasoningEffort: 'low',
|
|
180
|
+
reasoningFormat: 'parsed',
|
|
181
|
+
promptCacheKey: 'conversation-123',
|
|
182
|
+
} satisfies CerebrasLanguageModelChatOptions,
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
```
|
|
186
|
+
|
|
133
187
|
## Model Capabilities
|
|
134
188
|
|
|
135
189
|
| Model | Image Input | Object Generation | Tool Usage | Tool Streaming | Reasoning |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/cerebras",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.34",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@ai-sdk/openai-compatible": "3.0.
|
|
32
|
+
"@ai-sdk/openai-compatible": "3.0.34",
|
|
33
33
|
"@ai-sdk/provider": "4.0.7",
|
|
34
34
|
"@ai-sdk/provider-utils": "5.0.28"
|
|
35
35
|
},
|
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
|
|
1
3
|
export type { CerebrasChatModelId } from './cerebras-chat-options';
|
|
2
4
|
|
|
3
|
-
export
|
|
5
|
+
export const cerebrasLanguageModelChatOptions = z.object({
|
|
6
|
+
user: z.string().optional(),
|
|
7
|
+
strictJsonSchema: z.boolean().optional(),
|
|
8
|
+
parallelToolCalls: z.boolean().optional(),
|
|
9
|
+
logprobs: z.boolean().optional(),
|
|
10
|
+
topLogprobs: z.number().int().min(0).max(20).optional(),
|
|
11
|
+
logitBias: z.record(z.string(), z.number().min(-100).max(100)).optional(),
|
|
12
|
+
serviceTier: z.enum(['auto', 'default', 'flex', 'priority']).optional(),
|
|
13
|
+
reasoningEffort: z.enum(['none', 'low', 'medium', 'high']).optional(),
|
|
14
|
+
reasoningFormat: z
|
|
15
|
+
.enum(['none', 'parsed', 'text_parsed', 'raw', 'hidden'])
|
|
16
|
+
.optional(),
|
|
17
|
+
prediction: z
|
|
18
|
+
.object({
|
|
19
|
+
type: z.literal('content'),
|
|
20
|
+
content: z.union([
|
|
21
|
+
z.string(),
|
|
22
|
+
z.array(z.object({ type: z.literal('text'), text: z.string() })),
|
|
23
|
+
]),
|
|
24
|
+
})
|
|
25
|
+
.optional(),
|
|
26
|
+
promptCacheKey: z.string().max(1024).optional(),
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export type CerebrasLanguageModelChatOptions = z.infer<
|
|
30
|
+
typeof cerebrasLanguageModelChatOptions
|
|
31
|
+
>;
|
package/src/cerebras-provider.ts
CHANGED
|
@@ -37,8 +37,34 @@ const cerebrasErrorStructure: ProviderErrorStructure<CerebrasErrorData> = {
|
|
|
37
37
|
function transformCerebrasRequestBody(
|
|
38
38
|
args: Record<string, any>,
|
|
39
39
|
): Record<string, any> {
|
|
40
|
+
const {
|
|
41
|
+
max_tokens: maxTokens,
|
|
42
|
+
parallelToolCalls,
|
|
43
|
+
topLogprobs,
|
|
44
|
+
logitBias,
|
|
45
|
+
serviceTier,
|
|
46
|
+
reasoningFormat,
|
|
47
|
+
promptCacheKey,
|
|
48
|
+
...restArgs
|
|
49
|
+
} = args;
|
|
50
|
+
|
|
40
51
|
return {
|
|
41
|
-
...
|
|
52
|
+
...restArgs,
|
|
53
|
+
...(maxTokens !== undefined && {
|
|
54
|
+
max_completion_tokens: maxTokens,
|
|
55
|
+
}),
|
|
56
|
+
...(parallelToolCalls !== undefined && {
|
|
57
|
+
parallel_tool_calls: parallelToolCalls,
|
|
58
|
+
}),
|
|
59
|
+
...(topLogprobs !== undefined && { top_logprobs: topLogprobs }),
|
|
60
|
+
...(logitBias !== undefined && { logit_bias: logitBias }),
|
|
61
|
+
...(serviceTier !== undefined && { service_tier: serviceTier }),
|
|
62
|
+
...(reasoningFormat !== undefined && {
|
|
63
|
+
reasoning_format: reasoningFormat,
|
|
64
|
+
}),
|
|
65
|
+
...(promptCacheKey !== undefined && {
|
|
66
|
+
prompt_cache_key: promptCacheKey,
|
|
67
|
+
}),
|
|
42
68
|
messages: Array.isArray(args.messages)
|
|
43
69
|
? args.messages.map(message => {
|
|
44
70
|
if (
|
package/src/index.ts
CHANGED
|
@@ -4,4 +4,5 @@ export type {
|
|
|
4
4
|
CerebrasProviderSettings,
|
|
5
5
|
} from './cerebras-provider';
|
|
6
6
|
export type { CerebrasErrorData } from './cerebras-provider';
|
|
7
|
+
export type { CerebrasLanguageModelChatOptions } from './cerebras-chat-language-model-options';
|
|
7
8
|
export { VERSION } from './version';
|