mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-28 05:11:24 +08:00
chore: update OpenRouter provider to version 0.7.2 and add support functions
- Updated the OpenRouter provider dependency in `package.json` and `yarn.lock` to version 0.7.2. - Added a new function `createOpenRouterOptions` in `factory.ts` for creating OpenRouter provider options. - Updated type definitions in `types.ts` and `registry.ts` to include OpenRouter provider settings, enhancing provider management.
This commit is contained in:
parent
6c87b42607
commit
007de81928
@ -42,7 +42,7 @@
|
||||
"@ai-sdk/togetherai": "^0.2.14",
|
||||
"@ai-sdk/vercel": "^0.0.1",
|
||||
"@ai-sdk/xai": "^1.2.16",
|
||||
"@openrouter/ai-sdk-provider": "^0.1.0",
|
||||
"@openrouter/ai-sdk-provider": "^0.7.2",
|
||||
"ai": "^4.3.16",
|
||||
"anthropic-vertex-ai": "^1.0.2",
|
||||
"ollama-ai-provider": "^1.2.0",
|
||||
|
||||
@ -55,3 +55,10 @@ export function createAnthropicOptions(options: ExtractProviderOptions<'anthropi
|
||||
export function createGoogleOptions(options: ExtractProviderOptions<'google'>) {
|
||||
return createProviderOptions('google', options)
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建OpenRouter供应商选项的便捷函数
|
||||
*/
|
||||
export function createOpenRouterOptions(options: ExtractProviderOptions<'openrouter'>) {
|
||||
return createProviderOptions('openrouter', options)
|
||||
}
|
||||
|
||||
38
packages/aiCore/src/core/options/openrouter.ts
Normal file
38
packages/aiCore/src/core/options/openrouter.ts
Normal file
@ -0,0 +1,38 @@
|
||||
export type OpenRouterProviderOptions = {
|
||||
models?: string[]
|
||||
|
||||
/**
|
||||
* https://openrouter.ai/docs/use-cases/reasoning-tokens
|
||||
* One of `max_tokens` or `effort` is required.
|
||||
* If `exclude` is true, reasoning will be removed from the response. Default is false.
|
||||
*/
|
||||
reasoning?: {
|
||||
exclude?: boolean
|
||||
} & (
|
||||
| {
|
||||
max_tokens: number
|
||||
}
|
||||
| {
|
||||
effort: 'high' | 'medium' | 'low'
|
||||
}
|
||||
)
|
||||
|
||||
/**
|
||||
* A unique identifier representing your end-user, which can
|
||||
* help OpenRouter to monitor and detect abuse.
|
||||
*/
|
||||
user?: string
|
||||
|
||||
extraBody?: Record<string, unknown>
|
||||
|
||||
/**
|
||||
* Enable usage accounting to get detailed token usage information.
|
||||
* https://openrouter.ai/docs/use-cases/usage-accounting
|
||||
*/
|
||||
usage?: {
|
||||
/**
|
||||
* When true, includes token usage information in the response.
|
||||
*/
|
||||
include: boolean
|
||||
}
|
||||
}
|
||||
@ -3,6 +3,8 @@ import { type GoogleGenerativeAIProviderOptions } from '@ai-sdk/google'
|
||||
import { type OpenAIResponsesProviderOptions } from '@ai-sdk/openai'
|
||||
import { type LanguageModelV1ProviderMetadata } from '@ai-sdk/provider'
|
||||
|
||||
import { type OpenRouterProviderOptions } from './openrouter'
|
||||
|
||||
export type ProviderOptions<T extends keyof LanguageModelV1ProviderMetadata> = LanguageModelV1ProviderMetadata[T]
|
||||
|
||||
/**
|
||||
@ -12,6 +14,7 @@ export type ProviderOptionsMap = {
|
||||
openai: OpenAIResponsesProviderOptions
|
||||
anthropic: AnthropicProviderOptions
|
||||
google: GoogleGenerativeAIProviderOptions
|
||||
openrouter: OpenRouterProviderOptions
|
||||
}
|
||||
|
||||
// 工具类型,用于从ProviderOptionsMap中提取特定供应商的选项类型
|
||||
|
||||
@ -24,7 +24,7 @@ import { type ReplicateProviderSettings } from '@ai-sdk/replicate'
|
||||
import { type TogetherAIProviderSettings } from '@ai-sdk/togetherai'
|
||||
import { type VercelProviderSettings } from '@ai-sdk/vercel'
|
||||
import { type XaiProviderSettings } from '@ai-sdk/xai'
|
||||
// import { type OpenRouterProviderSettings } from '@openrouter/ai-sdk-provider'
|
||||
import { type OpenRouterProviderSettings } from '@openrouter/ai-sdk-provider'
|
||||
import { type AnthropicVertexProviderSettings } from 'anthropic-vertex-ai'
|
||||
import { type OllamaProviderSettings } from 'ollama-ai-provider'
|
||||
import { type QwenProviderSettings } from 'qwen-ai-provider'
|
||||
@ -34,6 +34,7 @@ import { type ZhipuProviderSettings } from 'zhipu-ai-provider'
|
||||
export type ProviderSettingsMap = {
|
||||
openai: OpenAIProviderSettings
|
||||
'openai-compatible': OpenAICompatibleProviderSettings
|
||||
openrouter: OpenRouterProviderSettings
|
||||
anthropic: AnthropicProviderSettings
|
||||
google: GoogleGenerativeAIProviderSettings
|
||||
'google-vertex': GoogleVertexProviderSettings
|
||||
@ -266,15 +267,14 @@ export class AiProviderRegistry {
|
||||
import: () => import('anthropic-vertex-ai'),
|
||||
creatorFunctionName: 'createAnthropicVertex',
|
||||
supportsImageGeneration: false
|
||||
},
|
||||
{
|
||||
id: 'openrouter',
|
||||
name: 'OpenRouter',
|
||||
import: () => import('@openrouter/ai-sdk-provider'),
|
||||
creatorFunctionName: 'createOpenRouter',
|
||||
supportsImageGeneration: false
|
||||
}
|
||||
// bug太多
|
||||
// {
|
||||
// id: 'openrouter',
|
||||
// name: 'OpenRouter',
|
||||
// import: () => import('@openrouter/ai-sdk-provider'),
|
||||
// creatorFunctionName: 'createOpenRouter',
|
||||
// supportsImageGeneration: false
|
||||
// }
|
||||
]
|
||||
|
||||
providers.forEach((config) => {
|
||||
@ -365,6 +365,7 @@ export type {
|
||||
OllamaProviderSettings,
|
||||
OpenAICompatibleProviderSettings,
|
||||
OpenAIProviderSettings,
|
||||
OpenRouterProviderSettings,
|
||||
PerplexityProviderSettings,
|
||||
QwenProviderSettings,
|
||||
ReplicateProviderSettings,
|
||||
|
||||
43
yarn.lock
43
yarn.lock
@ -338,23 +338,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/provider-utils@npm:2.1.5":
|
||||
version: 2.1.5
|
||||
resolution: "@ai-sdk/provider-utils@npm:2.1.5"
|
||||
dependencies:
|
||||
"@ai-sdk/provider": "npm:1.0.6"
|
||||
eventsource-parser: "npm:^3.0.0"
|
||||
nanoid: "npm:^3.3.8"
|
||||
secure-json-parse: "npm:^2.7.0"
|
||||
peerDependencies:
|
||||
zod: ^3.0.0
|
||||
peerDependenciesMeta:
|
||||
zod:
|
||||
optional: true
|
||||
checksum: 10c0/6ec33c1f9cc6bb38a7634cdb1b43f49d78ddcb92a8daa4b65193f3309b5a7ad35b134e2d5e82b8576917079a3f8e3b83b5505151cd259ec747ba27458db58356
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/provider-utils@npm:2.2.8, @ai-sdk/provider-utils@npm:^2.0.0, @ai-sdk/provider-utils@npm:^2.1.6":
|
||||
version: 2.2.8
|
||||
resolution: "@ai-sdk/provider-utils@npm:2.2.8"
|
||||
@ -377,15 +360,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/provider@npm:1.0.6":
|
||||
version: 1.0.6
|
||||
resolution: "@ai-sdk/provider@npm:1.0.6"
|
||||
dependencies:
|
||||
json-schema: "npm:^0.4.0"
|
||||
checksum: 10c0/251c8cd4fa53b89dcf751d0faba5482762d88fcc5ffe1cdb660327c14817a4d94206317e95e6e69fc4ae3071001191b5c418b4b9e1212d6a554a90114db216fc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ai-sdk/provider@npm:1.0.9":
|
||||
version: 1.0.9
|
||||
resolution: "@ai-sdk/provider@npm:1.0.9"
|
||||
@ -1012,7 +986,7 @@ __metadata:
|
||||
"@ai-sdk/togetherai": "npm:^0.2.14"
|
||||
"@ai-sdk/vercel": "npm:^0.0.1"
|
||||
"@ai-sdk/xai": "npm:^1.2.16"
|
||||
"@openrouter/ai-sdk-provider": "npm:^0.1.0"
|
||||
"@openrouter/ai-sdk-provider": "npm:^0.7.2"
|
||||
ai: "npm:^4.3.16"
|
||||
anthropic-vertex-ai: "npm:^1.0.2"
|
||||
ollama-ai-provider: "npm:^1.2.0"
|
||||
@ -3839,15 +3813,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@openrouter/ai-sdk-provider@npm:^0.1.0":
|
||||
version: 0.1.0
|
||||
resolution: "@openrouter/ai-sdk-provider@npm:0.1.0"
|
||||
"@openrouter/ai-sdk-provider@npm:^0.7.2":
|
||||
version: 0.7.2
|
||||
resolution: "@openrouter/ai-sdk-provider@npm:0.7.2"
|
||||
dependencies:
|
||||
"@ai-sdk/provider": "npm:1.0.6"
|
||||
"@ai-sdk/provider-utils": "npm:2.1.5"
|
||||
"@ai-sdk/provider": "npm:1.1.3"
|
||||
"@ai-sdk/provider-utils": "npm:2.2.8"
|
||||
peerDependencies:
|
||||
zod: ^3.0.0
|
||||
checksum: 10c0/495c0349d6f42adc8e880651c215a183a4f041808019c6b2710df447ff3c81f5e69f951b589c1bb3c0cc1ce16c0d659b624d18f097b3344bce74eb178fb936a1
|
||||
ai: ^4.3.16
|
||||
zod: ^3.25.34
|
||||
checksum: 10c0/3d941fdc47418d16f74f98d0e1eb8c8c60bb152bdd2804baf4f6856f754237339cc6240b7ff41ce5a35e967214ca2cc0f33d0c60537ec1f0e5b5b5648475bb02
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user