mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-08 22:39:36 +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/togetherai": "^0.2.14",
|
||||||
"@ai-sdk/vercel": "^0.0.1",
|
"@ai-sdk/vercel": "^0.0.1",
|
||||||
"@ai-sdk/xai": "^1.2.16",
|
"@ai-sdk/xai": "^1.2.16",
|
||||||
"@openrouter/ai-sdk-provider": "^0.1.0",
|
"@openrouter/ai-sdk-provider": "^0.7.2",
|
||||||
"ai": "^4.3.16",
|
"ai": "^4.3.16",
|
||||||
"anthropic-vertex-ai": "^1.0.2",
|
"anthropic-vertex-ai": "^1.0.2",
|
||||||
"ollama-ai-provider": "^1.2.0",
|
"ollama-ai-provider": "^1.2.0",
|
||||||
|
|||||||
@ -55,3 +55,10 @@ export function createAnthropicOptions(options: ExtractProviderOptions<'anthropi
|
|||||||
export function createGoogleOptions(options: ExtractProviderOptions<'google'>) {
|
export function createGoogleOptions(options: ExtractProviderOptions<'google'>) {
|
||||||
return createProviderOptions('google', options)
|
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 OpenAIResponsesProviderOptions } from '@ai-sdk/openai'
|
||||||
import { type LanguageModelV1ProviderMetadata } from '@ai-sdk/provider'
|
import { type LanguageModelV1ProviderMetadata } from '@ai-sdk/provider'
|
||||||
|
|
||||||
|
import { type OpenRouterProviderOptions } from './openrouter'
|
||||||
|
|
||||||
export type ProviderOptions<T extends keyof LanguageModelV1ProviderMetadata> = LanguageModelV1ProviderMetadata[T]
|
export type ProviderOptions<T extends keyof LanguageModelV1ProviderMetadata> = LanguageModelV1ProviderMetadata[T]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -12,6 +14,7 @@ export type ProviderOptionsMap = {
|
|||||||
openai: OpenAIResponsesProviderOptions
|
openai: OpenAIResponsesProviderOptions
|
||||||
anthropic: AnthropicProviderOptions
|
anthropic: AnthropicProviderOptions
|
||||||
google: GoogleGenerativeAIProviderOptions
|
google: GoogleGenerativeAIProviderOptions
|
||||||
|
openrouter: OpenRouterProviderOptions
|
||||||
}
|
}
|
||||||
|
|
||||||
// 工具类型,用于从ProviderOptionsMap中提取特定供应商的选项类型
|
// 工具类型,用于从ProviderOptionsMap中提取特定供应商的选项类型
|
||||||
|
|||||||
@ -24,7 +24,7 @@ import { type ReplicateProviderSettings } from '@ai-sdk/replicate'
|
|||||||
import { type TogetherAIProviderSettings } from '@ai-sdk/togetherai'
|
import { type TogetherAIProviderSettings } from '@ai-sdk/togetherai'
|
||||||
import { type VercelProviderSettings } from '@ai-sdk/vercel'
|
import { type VercelProviderSettings } from '@ai-sdk/vercel'
|
||||||
import { type XaiProviderSettings } from '@ai-sdk/xai'
|
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 AnthropicVertexProviderSettings } from 'anthropic-vertex-ai'
|
||||||
import { type OllamaProviderSettings } from 'ollama-ai-provider'
|
import { type OllamaProviderSettings } from 'ollama-ai-provider'
|
||||||
import { type QwenProviderSettings } from 'qwen-ai-provider'
|
import { type QwenProviderSettings } from 'qwen-ai-provider'
|
||||||
@ -34,6 +34,7 @@ import { type ZhipuProviderSettings } from 'zhipu-ai-provider'
|
|||||||
export type ProviderSettingsMap = {
|
export type ProviderSettingsMap = {
|
||||||
openai: OpenAIProviderSettings
|
openai: OpenAIProviderSettings
|
||||||
'openai-compatible': OpenAICompatibleProviderSettings
|
'openai-compatible': OpenAICompatibleProviderSettings
|
||||||
|
openrouter: OpenRouterProviderSettings
|
||||||
anthropic: AnthropicProviderSettings
|
anthropic: AnthropicProviderSettings
|
||||||
google: GoogleGenerativeAIProviderSettings
|
google: GoogleGenerativeAIProviderSettings
|
||||||
'google-vertex': GoogleVertexProviderSettings
|
'google-vertex': GoogleVertexProviderSettings
|
||||||
@ -266,15 +267,14 @@ export class AiProviderRegistry {
|
|||||||
import: () => import('anthropic-vertex-ai'),
|
import: () => import('anthropic-vertex-ai'),
|
||||||
creatorFunctionName: 'createAnthropicVertex',
|
creatorFunctionName: 'createAnthropicVertex',
|
||||||
supportsImageGeneration: false
|
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) => {
|
providers.forEach((config) => {
|
||||||
@ -365,6 +365,7 @@ export type {
|
|||||||
OllamaProviderSettings,
|
OllamaProviderSettings,
|
||||||
OpenAICompatibleProviderSettings,
|
OpenAICompatibleProviderSettings,
|
||||||
OpenAIProviderSettings,
|
OpenAIProviderSettings,
|
||||||
|
OpenRouterProviderSettings,
|
||||||
PerplexityProviderSettings,
|
PerplexityProviderSettings,
|
||||||
QwenProviderSettings,
|
QwenProviderSettings,
|
||||||
ReplicateProviderSettings,
|
ReplicateProviderSettings,
|
||||||
|
|||||||
43
yarn.lock
43
yarn.lock
@ -338,23 +338,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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":
|
"@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
|
version: 2.2.8
|
||||||
resolution: "@ai-sdk/provider-utils@npm:2.2.8"
|
resolution: "@ai-sdk/provider-utils@npm:2.2.8"
|
||||||
@ -377,15 +360,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
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":
|
"@ai-sdk/provider@npm:1.0.9":
|
||||||
version: 1.0.9
|
version: 1.0.9
|
||||||
resolution: "@ai-sdk/provider@npm: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/togetherai": "npm:^0.2.14"
|
||||||
"@ai-sdk/vercel": "npm:^0.0.1"
|
"@ai-sdk/vercel": "npm:^0.0.1"
|
||||||
"@ai-sdk/xai": "npm:^1.2.16"
|
"@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"
|
ai: "npm:^4.3.16"
|
||||||
anthropic-vertex-ai: "npm:^1.0.2"
|
anthropic-vertex-ai: "npm:^1.0.2"
|
||||||
ollama-ai-provider: "npm:^1.2.0"
|
ollama-ai-provider: "npm:^1.2.0"
|
||||||
@ -3839,15 +3813,16 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@openrouter/ai-sdk-provider@npm:^0.1.0":
|
"@openrouter/ai-sdk-provider@npm:^0.7.2":
|
||||||
version: 0.1.0
|
version: 0.7.2
|
||||||
resolution: "@openrouter/ai-sdk-provider@npm:0.1.0"
|
resolution: "@openrouter/ai-sdk-provider@npm:0.7.2"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ai-sdk/provider": "npm:1.0.6"
|
"@ai-sdk/provider": "npm:1.1.3"
|
||||||
"@ai-sdk/provider-utils": "npm:2.1.5"
|
"@ai-sdk/provider-utils": "npm:2.2.8"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
zod: ^3.0.0
|
ai: ^4.3.16
|
||||||
checksum: 10c0/495c0349d6f42adc8e880651c215a183a4f041808019c6b2710df447ff3c81f5e69f951b589c1bb3c0cc1ce16c0d659b624d18f097b3344bce74eb178fb936a1
|
zod: ^3.25.34
|
||||||
|
checksum: 10c0/3d941fdc47418d16f74f98d0e1eb8c8c60bb152bdd2804baf4f6856f754237339cc6240b7ff41ce5a35e967214ca2cc0f33d0c60537ec1f0e5b5b5648475bb02
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user