|
@@ -41,6 +41,18 @@ import { ProviderTransform } from "./transform"
|
|
|
export namespace Provider {
|
|
export namespace Provider {
|
|
|
const log = Log.create({ service: "provider" })
|
|
const log = Log.create({ service: "provider" })
|
|
|
|
|
|
|
|
|
|
+ function isGpt5OrLater(modelID: string): boolean {
|
|
|
|
|
+ const match = /^gpt-(\d+)/.exec(modelID)
|
|
|
|
|
+ if (!match) {
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+ return Number(match[1]) >= 5
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ function shouldUseCopilotResponsesApi(modelID: string): boolean {
|
|
|
|
|
+ return isGpt5OrLater(modelID) && !modelID.startsWith("gpt-5-mini")
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
const BUNDLED_PROVIDERS: Record<string, (options: any) => SDK> = {
|
|
const BUNDLED_PROVIDERS: Record<string, (options: any) => SDK> = {
|
|
|
"@ai-sdk/amazon-bedrock": createAmazonBedrock,
|
|
"@ai-sdk/amazon-bedrock": createAmazonBedrock,
|
|
|
"@ai-sdk/anthropic": createAnthropic,
|
|
"@ai-sdk/anthropic": createAnthropic,
|
|
@@ -120,10 +132,7 @@ export namespace Provider {
|
|
|
return {
|
|
return {
|
|
|
autoload: false,
|
|
autoload: false,
|
|
|
async getModel(sdk: any, modelID: string, _options?: Record<string, any>) {
|
|
async getModel(sdk: any, modelID: string, _options?: Record<string, any>) {
|
|
|
- if (modelID.includes("codex")) {
|
|
|
|
|
- return sdk.responses(modelID)
|
|
|
|
|
- }
|
|
|
|
|
- return sdk.chat(modelID)
|
|
|
|
|
|
|
+ return shouldUseCopilotResponsesApi(modelID) ? sdk.responses(modelID) : sdk.chat(modelID)
|
|
|
},
|
|
},
|
|
|
options: {},
|
|
options: {},
|
|
|
}
|
|
}
|
|
@@ -132,10 +141,7 @@ export namespace Provider {
|
|
|
return {
|
|
return {
|
|
|
autoload: false,
|
|
autoload: false,
|
|
|
async getModel(sdk: any, modelID: string, _options?: Record<string, any>) {
|
|
async getModel(sdk: any, modelID: string, _options?: Record<string, any>) {
|
|
|
- if (modelID.includes("codex")) {
|
|
|
|
|
- return sdk.responses(modelID)
|
|
|
|
|
- }
|
|
|
|
|
- return sdk.chat(modelID)
|
|
|
|
|
|
|
+ return shouldUseCopilotResponsesApi(modelID) ? sdk.responses(modelID) : sdk.chat(modelID)
|
|
|
},
|
|
},
|
|
|
options: {},
|
|
options: {},
|
|
|
}
|
|
}
|