@ai-sdk/openai
Advanced tools
@@ -127,2 +127,3 @@ import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamResult, EmbeddingModelV3, ImageModelV3, TranscriptionModelV3CallOptions, TranscriptionModelV3, SpeechModelV3, JSONValue } from '@ai-sdk/provider'; | ||
| declare function hasDefaultResponseFormat(modelId: string): boolean; | ||
| declare function getMaxImagesPerCall(modelId: OpenAIImageModelId): number; | ||
| declare const openaiImageModelOptions: _ai_sdk_provider_utils.LazySchema<{ | ||
@@ -1438,2 +1439,2 @@ quality?: "auto" | "low" | "medium" | "high" | "standard" | "hd" | undefined; | ||
| export { type ApplyPatchOperation, OpenAIChatLanguageModel, type OpenAIChatModelId, OpenAICompletionLanguageModel, type OpenAICompletionModelId, OpenAIEmbeddingModel, type OpenAIEmbeddingModelId, type OpenAIEmbeddingModelOptions, OpenAIImageModel, type OpenAIImageModelEditOptions, type OpenAIImageModelGenerationOptions, type OpenAIImageModelId, type OpenAIImageModelOptions, type OpenAILanguageModelChatOptions, type OpenAILanguageModelCompletionOptions, OpenAIResponsesLanguageModel, OpenAISpeechModel, type OpenAISpeechModelId, type OpenAISpeechModelOptions, type OpenAITranscriptionCallOptions, OpenAITranscriptionModel, type OpenAITranscriptionModelId, type OpenAITranscriptionModelOptions, type OpenaiResponsesProviderMetadata, type OpenaiResponsesReasoningProviderMetadata, type OpenaiResponsesSourceDocumentProviderMetadata, type OpenaiResponsesTextProviderMetadata, type ResponsesProviderMetadata, type ResponsesReasoningProviderMetadata, type ResponsesSourceDocumentProviderMetadata, type ResponsesTextProviderMetadata, applyPatch, applyPatchArgsSchema, applyPatchInputSchema, applyPatchOutputSchema, applyPatchToolFactory, codeInterpreter, codeInterpreterArgsSchema, codeInterpreterInputSchema, codeInterpreterOutputSchema, codeInterpreterToolFactory, fileSearch, fileSearchArgsSchema, fileSearchOutputSchema, hasDefaultResponseFormat, imageGeneration, imageGenerationArgsSchema, imageGenerationOutputSchema, modelMaxImagesPerCall, openAITranscriptionModelOptions, openaiEmbeddingModelOptions, openaiImageModelEditOptions, openaiImageModelGenerationOptions, openaiImageModelOptions, openaiLanguageModelChatOptions, openaiLanguageModelCompletionOptions, openaiSpeechModelOptionsSchema, webSearch, webSearchArgsSchema, webSearchOutputSchema, webSearchPreview, webSearchPreviewArgsSchema, webSearchPreviewInputSchema, webSearchToolFactory }; | ||
| export { type ApplyPatchOperation, OpenAIChatLanguageModel, type OpenAIChatModelId, OpenAICompletionLanguageModel, type OpenAICompletionModelId, OpenAIEmbeddingModel, type OpenAIEmbeddingModelId, type OpenAIEmbeddingModelOptions, OpenAIImageModel, type OpenAIImageModelEditOptions, type OpenAIImageModelGenerationOptions, type OpenAIImageModelId, type OpenAIImageModelOptions, type OpenAILanguageModelChatOptions, type OpenAILanguageModelCompletionOptions, OpenAIResponsesLanguageModel, OpenAISpeechModel, type OpenAISpeechModelId, type OpenAISpeechModelOptions, type OpenAITranscriptionCallOptions, OpenAITranscriptionModel, type OpenAITranscriptionModelId, type OpenAITranscriptionModelOptions, type OpenaiResponsesProviderMetadata, type OpenaiResponsesReasoningProviderMetadata, type OpenaiResponsesSourceDocumentProviderMetadata, type OpenaiResponsesTextProviderMetadata, type ResponsesProviderMetadata, type ResponsesReasoningProviderMetadata, type ResponsesSourceDocumentProviderMetadata, type ResponsesTextProviderMetadata, applyPatch, applyPatchArgsSchema, applyPatchInputSchema, applyPatchOutputSchema, applyPatchToolFactory, codeInterpreter, codeInterpreterArgsSchema, codeInterpreterInputSchema, codeInterpreterOutputSchema, codeInterpreterToolFactory, fileSearch, fileSearchArgsSchema, fileSearchOutputSchema, getMaxImagesPerCall, hasDefaultResponseFormat, imageGeneration, imageGenerationArgsSchema, imageGenerationOutputSchema, modelMaxImagesPerCall, openAITranscriptionModelOptions, openaiEmbeddingModelOptions, openaiImageModelEditOptions, openaiImageModelGenerationOptions, openaiImageModelOptions, openaiLanguageModelChatOptions, openaiLanguageModelCompletionOptions, openaiSpeechModelOptionsSchema, webSearch, webSearchArgsSchema, webSearchOutputSchema, webSearchPreview, webSearchPreviewArgsSchema, webSearchPreviewInputSchema, webSearchToolFactory }; |
@@ -127,2 +127,3 @@ import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamResult, EmbeddingModelV3, ImageModelV3, TranscriptionModelV3CallOptions, TranscriptionModelV3, SpeechModelV3, JSONValue } from '@ai-sdk/provider'; | ||
| declare function hasDefaultResponseFormat(modelId: string): boolean; | ||
| declare function getMaxImagesPerCall(modelId: OpenAIImageModelId): number; | ||
| declare const openaiImageModelOptions: _ai_sdk_provider_utils.LazySchema<{ | ||
@@ -1438,2 +1439,2 @@ quality?: "auto" | "low" | "medium" | "high" | "standard" | "hd" | undefined; | ||
| export { type ApplyPatchOperation, OpenAIChatLanguageModel, type OpenAIChatModelId, OpenAICompletionLanguageModel, type OpenAICompletionModelId, OpenAIEmbeddingModel, type OpenAIEmbeddingModelId, type OpenAIEmbeddingModelOptions, OpenAIImageModel, type OpenAIImageModelEditOptions, type OpenAIImageModelGenerationOptions, type OpenAIImageModelId, type OpenAIImageModelOptions, type OpenAILanguageModelChatOptions, type OpenAILanguageModelCompletionOptions, OpenAIResponsesLanguageModel, OpenAISpeechModel, type OpenAISpeechModelId, type OpenAISpeechModelOptions, type OpenAITranscriptionCallOptions, OpenAITranscriptionModel, type OpenAITranscriptionModelId, type OpenAITranscriptionModelOptions, type OpenaiResponsesProviderMetadata, type OpenaiResponsesReasoningProviderMetadata, type OpenaiResponsesSourceDocumentProviderMetadata, type OpenaiResponsesTextProviderMetadata, type ResponsesProviderMetadata, type ResponsesReasoningProviderMetadata, type ResponsesSourceDocumentProviderMetadata, type ResponsesTextProviderMetadata, applyPatch, applyPatchArgsSchema, applyPatchInputSchema, applyPatchOutputSchema, applyPatchToolFactory, codeInterpreter, codeInterpreterArgsSchema, codeInterpreterInputSchema, codeInterpreterOutputSchema, codeInterpreterToolFactory, fileSearch, fileSearchArgsSchema, fileSearchOutputSchema, hasDefaultResponseFormat, imageGeneration, imageGenerationArgsSchema, imageGenerationOutputSchema, modelMaxImagesPerCall, openAITranscriptionModelOptions, openaiEmbeddingModelOptions, openaiImageModelEditOptions, openaiImageModelGenerationOptions, openaiImageModelOptions, openaiLanguageModelChatOptions, openaiLanguageModelCompletionOptions, openaiSpeechModelOptionsSchema, webSearch, webSearchArgsSchema, webSearchOutputSchema, webSearchPreview, webSearchPreviewArgsSchema, webSearchPreviewInputSchema, webSearchToolFactory }; | ||
| export { type ApplyPatchOperation, OpenAIChatLanguageModel, type OpenAIChatModelId, OpenAICompletionLanguageModel, type OpenAICompletionModelId, OpenAIEmbeddingModel, type OpenAIEmbeddingModelId, type OpenAIEmbeddingModelOptions, OpenAIImageModel, type OpenAIImageModelEditOptions, type OpenAIImageModelGenerationOptions, type OpenAIImageModelId, type OpenAIImageModelOptions, type OpenAILanguageModelChatOptions, type OpenAILanguageModelCompletionOptions, OpenAIResponsesLanguageModel, OpenAISpeechModel, type OpenAISpeechModelId, type OpenAISpeechModelOptions, type OpenAITranscriptionCallOptions, OpenAITranscriptionModel, type OpenAITranscriptionModelId, type OpenAITranscriptionModelOptions, type OpenaiResponsesProviderMetadata, type OpenaiResponsesReasoningProviderMetadata, type OpenaiResponsesSourceDocumentProviderMetadata, type OpenaiResponsesTextProviderMetadata, type ResponsesProviderMetadata, type ResponsesReasoningProviderMetadata, type ResponsesSourceDocumentProviderMetadata, type ResponsesTextProviderMetadata, applyPatch, applyPatchArgsSchema, applyPatchInputSchema, applyPatchOutputSchema, applyPatchToolFactory, codeInterpreter, codeInterpreterArgsSchema, codeInterpreterInputSchema, codeInterpreterOutputSchema, codeInterpreterToolFactory, fileSearch, fileSearchArgsSchema, fileSearchOutputSchema, getMaxImagesPerCall, hasDefaultResponseFormat, imageGeneration, imageGenerationArgsSchema, imageGenerationOutputSchema, modelMaxImagesPerCall, openAITranscriptionModelOptions, openaiEmbeddingModelOptions, openaiImageModelEditOptions, openaiImageModelGenerationOptions, openaiImageModelOptions, openaiLanguageModelChatOptions, openaiLanguageModelCompletionOptions, openaiSpeechModelOptionsSchema, webSearch, webSearchArgsSchema, webSearchOutputSchema, webSearchPreview, webSearchPreviewArgsSchema, webSearchPreviewInputSchema, webSearchToolFactory }; |
+1
-1
| { | ||
| "name": "@ai-sdk/openai", | ||
| "version": "3.0.87", | ||
| "version": "3.0.88", | ||
| "license": "Apache-2.0", | ||
@@ -5,0 +5,0 @@ "sideEffects": false, |
@@ -29,9 +29,3 @@ import { | ||
| const defaultResponseFormatPrefixes = [ | ||
| 'chatgpt-image-', | ||
| 'gpt-image-1-mini', | ||
| 'gpt-image-1.5', | ||
| 'gpt-image-1', | ||
| 'gpt-image-2', | ||
| ]; | ||
| const defaultResponseFormatPrefixes = ['chatgpt-image-', 'gpt-image-']; | ||
@@ -44,2 +38,9 @@ export function hasDefaultResponseFormat(modelId: string): boolean { | ||
| export function getMaxImagesPerCall(modelId: OpenAIImageModelId): number { | ||
| return ( | ||
| modelMaxImagesPerCall[modelId] ?? | ||
| (modelId.startsWith('gpt-image-') ? 10 : 1) | ||
| ); | ||
| } | ||
| const baseImageModelOptionsObject = z.object({ | ||
@@ -46,0 +47,0 @@ /** |
@@ -20,4 +20,4 @@ import type { | ||
| import { | ||
| getMaxImagesPerCall, | ||
| hasDefaultResponseFormat, | ||
| modelMaxImagesPerCall, | ||
| openaiImageModelEditOptions, | ||
@@ -39,3 +39,3 @@ openaiImageModelGenerationOptions, | ||
| get maxImagesPerCall(): number { | ||
| return modelMaxImagesPerCall[this.modelId] ?? 1; | ||
| return getMaxImagesPerCall(this.modelId); | ||
| } | ||
@@ -42,0 +42,0 @@ |
@@ -16,23 +16,26 @@ export type OpenAILanguageModelCapabilities = { | ||
| ): OpenAILanguageModelCapabilities { | ||
| const oSeriesVersion = getOSeriesVersion(modelId); | ||
| const gptVersion = getGptVersion(modelId); | ||
| const isGptChatModel = | ||
| gptVersion?.minor == null && | ||
| (gptVersion?.variant?.startsWith('chat') ?? false); | ||
| const isGptNanoModel = gptVersion?.variant?.startsWith('nano') ?? false; | ||
| const supportsFlexProcessing = | ||
| modelId.startsWith('o3') || | ||
| modelId.startsWith('o4-mini') || | ||
| (modelId.startsWith('gpt-5') && !modelId.startsWith('gpt-5-chat')); | ||
| (oSeriesVersion != null && oSeriesVersion >= 3) || | ||
| (gptVersion != null && gptVersion.major >= 5 && !isGptChatModel); | ||
| const supportsPriorityProcessing = | ||
| modelId.startsWith('gpt-4') || | ||
| (modelId.startsWith('gpt-5') && | ||
| !modelId.startsWith('gpt-5-nano') && | ||
| !modelId.startsWith('gpt-5-chat') && | ||
| !modelId.startsWith('gpt-5.4-nano')) || | ||
| modelId.startsWith('o3') || | ||
| modelId.startsWith('o4-mini'); | ||
| (gptVersion != null && | ||
| gptVersion.major >= 5 && | ||
| !isGptNanoModel && | ||
| !isGptChatModel) || | ||
| (oSeriesVersion != null && oSeriesVersion >= 3); | ||
| // Use allowlist approach: only known reasoning models should use 'developer' role | ||
| // This prevents issues with fine-tuned models, third-party models, and custom models | ||
| // Only recognizable OpenAI model families should use the developer role. | ||
| // Fine-tuned, third-party, and custom model IDs keep conservative defaults. | ||
| const isReasoningModel = | ||
| modelId.startsWith('o1') || | ||
| modelId.startsWith('o3') || | ||
| modelId.startsWith('o4-mini') || | ||
| (modelId.startsWith('gpt-5') && !modelId.startsWith('gpt-5-chat')); | ||
| oSeriesVersion != null || | ||
| (gptVersion != null && gptVersion.major >= 5 && !isGptChatModel); | ||
@@ -42,8 +45,5 @@ // https://platform.openai.com/docs/guides/latest-model#gpt-5-1-parameter-compatibility | ||
| const supportsNonReasoningParameters = | ||
| modelId.startsWith('gpt-5.1') || | ||
| modelId.startsWith('gpt-5.2') || | ||
| modelId.startsWith('gpt-5.3') || | ||
| modelId.startsWith('gpt-5.4') || | ||
| modelId.startsWith('gpt-5.5') || | ||
| modelId.startsWith('gpt-5.6'); | ||
| gptVersion != null && | ||
| (gptVersion.major > 5 || | ||
| (gptVersion.major === 5 && (gptVersion.minor ?? 0) >= 1)); | ||
@@ -60,1 +60,26 @@ const systemMessageMode = isReasoningModel ? 'developer' : 'system'; | ||
| } | ||
| function getOSeriesVersion(modelId: string): number | undefined { | ||
| const match = /^o(\d+)(?:-|$)/.exec(modelId); | ||
| return match == null ? undefined : Number(match[1]); | ||
| } | ||
| function getGptVersion(modelId: string): | ||
| | { | ||
| major: number; | ||
| minor: number | undefined; | ||
| variant: string | undefined; | ||
| } | ||
| | undefined { | ||
| const match = /^gpt-(\d+)(?:\.(\d+))?(?:-(.+))?$/.exec(modelId); | ||
| if (match == null) { | ||
| return undefined; | ||
| } | ||
| return { | ||
| major: Number(match[1]), | ||
| minor: match[2] == null ? undefined : Number(match[2]), | ||
| variant: match[3], | ||
| }; | ||
| } |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 2 instances
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
3967480
0.21%42938
0.21%3
50%