feat: update OpenAI provider integration and enhance type definitions

- Bumped version of `@ai-sdk/openai-compatible` to 1.0.0-beta.8 in package.json.
- Introduced a new provider configuration for 'OpenAI Responses' in AiProviderRegistry, allowing for more flexible response handling.
- Updated type definitions to include 'openai-responses' in ProviderSettingsMap for improved type safety.
- Refactored getModelToProviderId function to return a more specific ProviderId type.
This commit is contained in:
MyPrototypeWhat 2025-07-21 14:43:48 +08:00
parent 61e3309cd2
commit fcc8836c95
4 changed files with 15 additions and 4 deletions

View File

@ -36,7 +36,7 @@
"@ai-sdk/deepseek": "1.0.0-beta.6",
"@ai-sdk/google": "2.0.0-beta.11",
"@ai-sdk/openai": "2.0.0-beta.9",
"@ai-sdk/openai-compatible": "1.0.0-beta.6",
"@ai-sdk/openai-compatible": "1.0.0-beta.8",
"@ai-sdk/provider": "2.0.0-beta.1",
"@ai-sdk/provider-utils": "3.0.0-beta.3",
"@ai-sdk/xai": "2.0.0-beta.8",

View File

@ -7,7 +7,7 @@ import { createAnthropic } from '@ai-sdk/anthropic'
import { createAzure } from '@ai-sdk/azure'
import { createDeepSeek } from '@ai-sdk/deepseek'
import { createGoogleGenerativeAI } from '@ai-sdk/google'
import { createOpenAI } from '@ai-sdk/openai'
import { createOpenAI, type OpenAIProviderSettings } from '@ai-sdk/openai'
import { createOpenAICompatible } from '@ai-sdk/openai-compatible'
import { createXai } from '@ai-sdk/xai'
@ -41,6 +41,14 @@ export class AiProviderRegistry {
creator: createOpenAI,
supportsImageGeneration: true
},
{
id: 'openai-responses',
name: 'OpenAI Responses',
creator: (options: OpenAIProviderSettings) => {
return createOpenAI(options).responses
},
supportsImageGeneration: true
},
{
id: 'openai-compatible',
name: 'OpenAI Compatible',
@ -208,7 +216,7 @@ export class AiProviderRegistry {
* ID Provider
*/
public getProvider(id: string): ProviderConfig | undefined {
return this.registry.get(id)
return this.registry.get(id) || this.registry.get('openai-compatible')
}
/**

View File

@ -48,6 +48,7 @@ export class ProviderError extends Error {
// 类型安全的 Provider Settings 映射
export type ProviderSettingsMap = {
openai: OpenAIProviderSettings
'openai-responses': OpenAIProviderSettings
'openai-compatible': OpenAICompatibleProviderSettings
// openrouter: OpenRouterProviderSettings
anthropic: AnthropicProviderSettings

View File

@ -1,3 +1,5 @@
import { type ProviderId } from '../types'
export function isOpenAIChatCompletionOnlyModel(modelId: string): boolean {
if (!modelId) {
return false
@ -28,7 +30,7 @@ export function isOpenAILLMModel(modelId: string): boolean {
return false
}
export function getModelToProviderId(modelId: string): string | 'openai-compatible' {
export function getModelToProviderId(modelId: string): ProviderId | 'openai-compatible' {
const id = modelId.toLowerCase()
if (id.startsWith('claude')) {