diff --git a/packages/ai/src/providers/openai.ts b/packages/ai/src/providers/openai.ts index 862333e2e52..c8213644b8f 100644 --- a/packages/ai/src/providers/openai.ts +++ b/packages/ai/src/providers/openai.ts @@ -86,10 +86,15 @@ export const configure = (input: Config = {}) => { const chatRoute = configuredRoute(OpenAIChat.route, input) const modelDefaults = defaults(input) const responses = (id: string | ModelID) => - responsesRoute.with(withOpenAIOptions(id, modelDefaults, { textVerbosity: true })).model({ id }) + responsesRoute + .with(withOpenAIOptions(id, modelDefaults, { textVerbosity: true })) + .model({ id }) const responsesWebSocket = (id: string | ModelID) => - responsesWebSocketRoute.with(withOpenAIOptions(id, modelDefaults, { textVerbosity: true })).model({ id }) - const chat = (id: string | ModelID) => chatRoute.with(withOpenAIOptions(id, modelDefaults)).model({ id }) + responsesWebSocketRoute + .with(withOpenAIOptions(id, modelDefaults, { textVerbosity: true })) + .model({ id }) + const chat = (id: string | ModelID) => + chatRoute.with(withOpenAIOptions(id, modelDefaults)).model({ id }) const image = (modelID: string | ModelID) => OpenAIImages.model({ id: modelID, @@ -132,15 +137,17 @@ const config = (settings: Settings): Config => { } } -export const model: ProviderPackage.Definition["model"] = (modelID, settings) => { +export const model: ProviderPackage.Definition["model"] = (modelID, settings) => { const configured = configure(config(settings)) if (settings.transport === undefined || settings.transport === "http") return configured.responses(modelID) if (settings.transport === "websocket") return configured.responsesWebSocket(modelID) throw new Error(`Unsupported OpenAI Responses transport: ${String(settings.transport)}`) } -export const chatModel: ProviderPackage.Definition["model"] = (modelID, settings) => - configure(config(settings)).chat(modelID) +export const chatModel: ProviderPackage.Definition["model"] = ( + modelID, + settings, +) => configure(config(settings)).chat(modelID) export const responses = provider.responses export const responsesWebSocket = provider.responsesWebSocket export const chat = provider.chat diff --git a/packages/ai/test/provider-options/openai.types.ts b/packages/ai/test/provider-options/openai.types.ts new file mode 100644 index 00000000000..9546e1271b3 --- /dev/null +++ b/packages/ai/test/provider-options/openai.types.ts @@ -0,0 +1,13 @@ +import { LLM } from "../../src" +import { OpenAI } from "../../src/providers" + +const model = OpenAI.responses("gpt-5") + +LLM.request({ model, prompt: "Hello", providerOptions: { openai: { reasoningEffort: "high" } } }) + +LLM.request({ + model, + prompt: "Hello", + // @ts-expect-error OpenAI reasoning effort must be a string. + providerOptions: { openai: { reasoningEffort: 1 } }, +})