mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-11 08:19:01 +08:00
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:
parent
61e3309cd2
commit
fcc8836c95
@ -36,7 +36,7 @@
|
|||||||
"@ai-sdk/deepseek": "1.0.0-beta.6",
|
"@ai-sdk/deepseek": "1.0.0-beta.6",
|
||||||
"@ai-sdk/google": "2.0.0-beta.11",
|
"@ai-sdk/google": "2.0.0-beta.11",
|
||||||
"@ai-sdk/openai": "2.0.0-beta.9",
|
"@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": "2.0.0-beta.1",
|
||||||
"@ai-sdk/provider-utils": "3.0.0-beta.3",
|
"@ai-sdk/provider-utils": "3.0.0-beta.3",
|
||||||
"@ai-sdk/xai": "2.0.0-beta.8",
|
"@ai-sdk/xai": "2.0.0-beta.8",
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import { createAnthropic } from '@ai-sdk/anthropic'
|
|||||||
import { createAzure } from '@ai-sdk/azure'
|
import { createAzure } from '@ai-sdk/azure'
|
||||||
import { createDeepSeek } from '@ai-sdk/deepseek'
|
import { createDeepSeek } from '@ai-sdk/deepseek'
|
||||||
import { createGoogleGenerativeAI } from '@ai-sdk/google'
|
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 { createOpenAICompatible } from '@ai-sdk/openai-compatible'
|
||||||
import { createXai } from '@ai-sdk/xai'
|
import { createXai } from '@ai-sdk/xai'
|
||||||
|
|
||||||
@ -41,6 +41,14 @@ export class AiProviderRegistry {
|
|||||||
creator: createOpenAI,
|
creator: createOpenAI,
|
||||||
supportsImageGeneration: true
|
supportsImageGeneration: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'openai-responses',
|
||||||
|
name: 'OpenAI Responses',
|
||||||
|
creator: (options: OpenAIProviderSettings) => {
|
||||||
|
return createOpenAI(options).responses
|
||||||
|
},
|
||||||
|
supportsImageGeneration: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: 'openai-compatible',
|
id: 'openai-compatible',
|
||||||
name: 'OpenAI Compatible',
|
name: 'OpenAI Compatible',
|
||||||
@ -208,7 +216,7 @@ export class AiProviderRegistry {
|
|||||||
* 根据 ID 获取 Provider 配置
|
* 根据 ID 获取 Provider 配置
|
||||||
*/
|
*/
|
||||||
public getProvider(id: string): ProviderConfig | undefined {
|
public getProvider(id: string): ProviderConfig | undefined {
|
||||||
return this.registry.get(id)
|
return this.registry.get(id) || this.registry.get('openai-compatible')
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -48,6 +48,7 @@ export class ProviderError extends Error {
|
|||||||
// 类型安全的 Provider Settings 映射
|
// 类型安全的 Provider Settings 映射
|
||||||
export type ProviderSettingsMap = {
|
export type ProviderSettingsMap = {
|
||||||
openai: OpenAIProviderSettings
|
openai: OpenAIProviderSettings
|
||||||
|
'openai-responses': OpenAIProviderSettings
|
||||||
'openai-compatible': OpenAICompatibleProviderSettings
|
'openai-compatible': OpenAICompatibleProviderSettings
|
||||||
// openrouter: OpenRouterProviderSettings
|
// openrouter: OpenRouterProviderSettings
|
||||||
anthropic: AnthropicProviderSettings
|
anthropic: AnthropicProviderSettings
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import { type ProviderId } from '../types'
|
||||||
|
|
||||||
export function isOpenAIChatCompletionOnlyModel(modelId: string): boolean {
|
export function isOpenAIChatCompletionOnlyModel(modelId: string): boolean {
|
||||||
if (!modelId) {
|
if (!modelId) {
|
||||||
return false
|
return false
|
||||||
@ -28,7 +30,7 @@ export function isOpenAILLMModel(modelId: string): boolean {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getModelToProviderId(modelId: string): string | 'openai-compatible' {
|
export function getModelToProviderId(modelId: string): ProviderId | 'openai-compatible' {
|
||||||
const id = modelId.toLowerCase()
|
const id = modelId.toLowerCase()
|
||||||
|
|
||||||
if (id.startsWith('claude')) {
|
if (id.startsWith('claude')) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user