mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-07 22:10:21 +08:00
add o3
This commit is contained in:
parent
f09d1b3d9a
commit
5c32d41cd8
BIN
src/renderer/src/assets/images/providers/o3.png
Normal file
BIN
src/renderer/src/assets/images/providers/o3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
@ -331,6 +331,134 @@ export const SYSTEM_MODELS: Record<string, Model[]> = {
|
|||||||
group: 'Qwen'
|
group: 'Qwen'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
o3: [
|
||||||
|
{
|
||||||
|
id: 'gpt-4o',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'GPT-4o',
|
||||||
|
group: 'OpenAI'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'o1-mini',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'o1-mini',
|
||||||
|
group: 'OpenAI'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'o1-preview',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'o1-preview',
|
||||||
|
group: 'OpenAI'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'o3-mini',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'o3-mini',
|
||||||
|
group: 'OpenAI'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'o3-mini-high',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'o3-mini-high',
|
||||||
|
group: 'OpenAI'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'claude-3-7-sonnet-20250219',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'claude-3-7-sonnet-20250219',
|
||||||
|
group: 'Anthropic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'claude-3-5-sonnet-20241022',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'claude-3-5-sonnet-20241022',
|
||||||
|
group: 'Anthropic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'claude-3-5-haiku-20241022',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'claude-3-5-haiku-20241022',
|
||||||
|
group: 'Anthropic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'claude-3-opus-20240229',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'claude-3-opus-20240229',
|
||||||
|
group: 'Anthropic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'claude-3-haiku-20240307',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'claude-3-haiku-20240307',
|
||||||
|
group: 'Anthropic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'claude-3-5-sonnet-20240620',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'claude-3-5-sonnet-20240620',
|
||||||
|
group: 'Anthropic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'deepseek-ai/Deepseek-R1',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'DeepSeek R1',
|
||||||
|
group: 'DeepSeek'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'deepseek-reasoner',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'deepseek-reasoner',
|
||||||
|
group: 'DeepSeek'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'deepseek-chat',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'deepseek-chat',
|
||||||
|
group: 'DeepSeek'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'deepseek-ai/DeepSeek-V3',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'DeepSeek V3',
|
||||||
|
group: 'DeepSeek'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'text-embedding-3-small',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'text-embedding-3-small',
|
||||||
|
group: '嵌入模型'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'text-embedding-3-small',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'text-embedding-3-small',
|
||||||
|
group: '嵌入模型'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'text-embedding-ada-002',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'text-embedding-ada-002',
|
||||||
|
group: '嵌入模型'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'text-embedding-v2',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'text-embedding-v2',
|
||||||
|
group: '嵌入模型'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'Doubao-embedding',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'Doubao-embedding',
|
||||||
|
group: '嵌入模型'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'Doubao-embedding-large',
|
||||||
|
provider: 'o3',
|
||||||
|
name: 'Doubao-embedding-large',
|
||||||
|
group: '嵌入模型'
|
||||||
|
}
|
||||||
|
],
|
||||||
ollama: [],
|
ollama: [],
|
||||||
lmstudio: [],
|
lmstudio: [],
|
||||||
silicon: [
|
silicon: [
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import MistralProviderLogo from '@renderer/assets/images/providers/mistral.png'
|
|||||||
import ModelScopeProviderLogo from '@renderer/assets/images/providers/modelscope.png'
|
import ModelScopeProviderLogo from '@renderer/assets/images/providers/modelscope.png'
|
||||||
import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.png'
|
import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.png'
|
||||||
import NvidiaProviderLogo from '@renderer/assets/images/providers/nvidia.png'
|
import NvidiaProviderLogo from '@renderer/assets/images/providers/nvidia.png'
|
||||||
|
import O3ProviderLogo from '@renderer/assets/images/providers/o3.png'
|
||||||
import OcoolAiProviderLogo from '@renderer/assets/images/providers/ocoolai.png'
|
import OcoolAiProviderLogo from '@renderer/assets/images/providers/ocoolai.png'
|
||||||
import OllamaProviderLogo from '@renderer/assets/images/providers/ollama.png'
|
import OllamaProviderLogo from '@renderer/assets/images/providers/ollama.png'
|
||||||
import OpenAiProviderLogo from '@renderer/assets/images/providers/openai.png'
|
import OpenAiProviderLogo from '@renderer/assets/images/providers/openai.png'
|
||||||
@ -114,6 +115,8 @@ export function getProviderLogo(providerId: string) {
|
|||||||
return PerplexityProviderLogo
|
return PerplexityProviderLogo
|
||||||
case 'infini':
|
case 'infini':
|
||||||
return InfiniProviderLogo
|
return InfiniProviderLogo
|
||||||
|
case 'o3':
|
||||||
|
return O3ProviderLogo
|
||||||
default:
|
default:
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
@ -131,6 +134,17 @@ export const PROVIDER_CONFIG = {
|
|||||||
models: 'https://platform.openai.com/docs/models'
|
models: 'https://platform.openai.com/docs/models'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
o3: {
|
||||||
|
api: {
|
||||||
|
url: 'https://api.o3.fan'
|
||||||
|
},
|
||||||
|
websites: {
|
||||||
|
official: 'https://o3.fan',
|
||||||
|
apiKey: 'https://o3.fan/token',
|
||||||
|
docs: 'https://docs.o3.fan',
|
||||||
|
models: 'https://docs.o3.fan/models'
|
||||||
|
}
|
||||||
|
},
|
||||||
ppio: {
|
ppio: {
|
||||||
api: {
|
api: {
|
||||||
url: 'https://api.ppinfra.com/v3/openai'
|
url: 'https://api.ppinfra.com/v3/openai'
|
||||||
|
|||||||
@ -519,6 +519,7 @@
|
|||||||
"title": "You are an assistant who is good at conversation. You need to summarize the user's conversation into a title of 10 characters or less, ensuring it matches the user's primary language without using punctuation or other special symbols."
|
"title": "You are an assistant who is good at conversation. You need to summarize the user's conversation into a title of 10 characters or less, ensuring it matches the user's primary language without using punctuation or other special symbols."
|
||||||
},
|
},
|
||||||
"provider": {
|
"provider": {
|
||||||
|
"o3": "O3",
|
||||||
"aihubmix": "AiHubMix",
|
"aihubmix": "AiHubMix",
|
||||||
"anthropic": "Anthropic",
|
"anthropic": "Anthropic",
|
||||||
"azure-openai": "Azure OpenAI",
|
"azure-openai": "Azure OpenAI",
|
||||||
|
|||||||
@ -519,6 +519,7 @@
|
|||||||
"title": "あなたは会話を得意とするアシスタントです。ユーザーの会話を10文字以内のタイトルに要約し、ユーザーの主言語と一致していることを確認してください。句読点や特殊記号は使用しないでください。"
|
"title": "あなたは会話を得意とするアシスタントです。ユーザーの会話を10文字以内のタイトルに要約し、ユーザーの主言語と一致していることを確認してください。句読点や特殊記号は使用しないでください。"
|
||||||
},
|
},
|
||||||
"provider": {
|
"provider": {
|
||||||
|
"o3": "O3",
|
||||||
"aihubmix": "AiHubMix",
|
"aihubmix": "AiHubMix",
|
||||||
"anthropic": "Anthropic",
|
"anthropic": "Anthropic",
|
||||||
"azure-openai": "Azure OpenAI",
|
"azure-openai": "Azure OpenAI",
|
||||||
|
|||||||
@ -519,6 +519,7 @@
|
|||||||
"title": "Вы - эксперт в общении, который суммирует разговоры пользователя в 10-символьном заголовке, совпадающем с языком пользователя, без использования знаков препинания и других специальных символов"
|
"title": "Вы - эксперт в общении, который суммирует разговоры пользователя в 10-символьном заголовке, совпадающем с языком пользователя, без использования знаков препинания и других специальных символов"
|
||||||
},
|
},
|
||||||
"provider": {
|
"provider": {
|
||||||
|
"o3": "O3",
|
||||||
"aihubmix": "AiHubMix",
|
"aihubmix": "AiHubMix",
|
||||||
"anthropic": "Anthropic",
|
"anthropic": "Anthropic",
|
||||||
"azure-openai": "Azure OpenAI",
|
"azure-openai": "Azure OpenAI",
|
||||||
|
|||||||
@ -203,9 +203,9 @@
|
|||||||
"http": {
|
"http": {
|
||||||
"400": "请求错误,请检查请求参数是否正确。如果修改了模型设置,请重置到默认设置",
|
"400": "请求错误,请检查请求参数是否正确。如果修改了模型设置,请重置到默认设置",
|
||||||
"401": "身份验证失败,请检查 API 密钥是否正确",
|
"401": "身份验证失败,请检查 API 密钥是否正确",
|
||||||
"403": "禁止访问,请检查是否实名认证,或联系服务商询问被禁止原因",
|
"403": "禁止访问,请翻译具体报错信息查看原因,或联系服务商询问被禁止原因",
|
||||||
"404": "模型不存在或者请求路径错误",
|
"404": "模型不存在或者请求路径错误",
|
||||||
"429": "请求过多,请稍后再试",
|
"429": "请求速率超过限制,请稍后再试",
|
||||||
"500": "服务器错误,请稍后再试",
|
"500": "服务器错误,请稍后再试",
|
||||||
"502": "网关错误,请稍后再试",
|
"502": "网关错误,请稍后再试",
|
||||||
"503": "服务不可用,请稍后再试",
|
"503": "服务不可用,请稍后再试",
|
||||||
@ -519,6 +519,7 @@
|
|||||||
"title": "你是一名擅长会话的助理,你需要将用户的会话总结为 10 个字以内的标题,标题语言与用户的首要语言一致,不要使用标点符号和其他特殊符号"
|
"title": "你是一名擅长会话的助理,你需要将用户的会话总结为 10 个字以内的标题,标题语言与用户的首要语言一致,不要使用标点符号和其他特殊符号"
|
||||||
},
|
},
|
||||||
"provider": {
|
"provider": {
|
||||||
|
"o3": "O3",
|
||||||
"aihubmix": "AiHubMix",
|
"aihubmix": "AiHubMix",
|
||||||
"anthropic": "Anthropic",
|
"anthropic": "Anthropic",
|
||||||
"azure-openai": "Azure OpenAI",
|
"azure-openai": "Azure OpenAI",
|
||||||
|
|||||||
@ -519,6 +519,7 @@
|
|||||||
"title": "你是一名擅長會話的助理,你需要將用戶的會話總結為 10 個字以內的標題,標題語言與用戶的首要語言一致,不要使用標點符號和其他特殊符號"
|
"title": "你是一名擅長會話的助理,你需要將用戶的會話總結為 10 個字以內的標題,標題語言與用戶的首要語言一致,不要使用標點符號和其他特殊符號"
|
||||||
},
|
},
|
||||||
"provider": {
|
"provider": {
|
||||||
|
"o3": "O3",
|
||||||
"aihubmix": "AiHubMix",
|
"aihubmix": "AiHubMix",
|
||||||
"anthropic": "Anthropic",
|
"anthropic": "Anthropic",
|
||||||
"azure-openai": "Azure OpenAI",
|
"azure-openai": "Azure OpenAI",
|
||||||
|
|||||||
@ -32,7 +32,7 @@ const persistedReducer = persistReducer(
|
|||||||
{
|
{
|
||||||
key: 'cherry-studio',
|
key: 'cherry-studio',
|
||||||
storage,
|
storage,
|
||||||
version: 73,
|
version: 74,
|
||||||
blacklist: ['runtime'],
|
blacklist: ['runtime'],
|
||||||
migrate
|
migrate
|
||||||
},
|
},
|
||||||
|
|||||||
@ -36,6 +36,16 @@ const initialState: LlmState = {
|
|||||||
isSystem: true,
|
isSystem: true,
|
||||||
enabled: true
|
enabled: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'o3',
|
||||||
|
name: 'O3',
|
||||||
|
type: 'openai',
|
||||||
|
apiKey: '',
|
||||||
|
apiHost: 'https://api.o3.fan',
|
||||||
|
models: SYSTEM_MODELS.o3,
|
||||||
|
isSystem: true,
|
||||||
|
enabled: false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: 'aihubmix',
|
id: 'aihubmix',
|
||||||
name: 'AiHubMix',
|
name: 'AiHubMix',
|
||||||
|
|||||||
@ -1161,6 +1161,26 @@ const migrateConfig = {
|
|||||||
.trim()
|
.trim()
|
||||||
}
|
}
|
||||||
return state
|
return state
|
||||||
|
},
|
||||||
|
'74': (state: RootState) => {
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
llm: {
|
||||||
|
...state.llm,
|
||||||
|
providers: [
|
||||||
|
...state.llm.providers,
|
||||||
|
{
|
||||||
|
id: 'o3',
|
||||||
|
name: 'O3',
|
||||||
|
apiKey: '',
|
||||||
|
apiHost: 'https://api.o3.fan',
|
||||||
|
models: SYSTEM_MODELS.o3,
|
||||||
|
isSystem: true,
|
||||||
|
enabled: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user