From e2896b84f06ea4f415772a8507713703874f203b Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Tue, 13 Aug 2024 19:41:01 +0800 Subject: [PATCH] feat: add doubao provider --- .../src/assets/images/models/doubao.png | Bin 0 -> 3244 bytes .../src/assets/images/providers/doubao.png | Bin 0 -> 12413 bytes src/renderer/src/config/models.ts | 1 + src/renderer/src/config/provider.ts | 67 +++++++++++------- src/renderer/src/i18n/index.ts | 6 +- src/renderer/src/pages/home/Message.tsx | 4 +- src/renderer/src/store/llm.ts | 9 +++ src/renderer/src/store/migrate.ts | 9 +++ 8 files changed, 67 insertions(+), 29 deletions(-) create mode 100644 src/renderer/src/assets/images/models/doubao.png create mode 100644 src/renderer/src/assets/images/providers/doubao.png diff --git a/src/renderer/src/assets/images/models/doubao.png b/src/renderer/src/assets/images/models/doubao.png new file mode 100644 index 0000000000000000000000000000000000000000..3e48e7071e49daef6a6763aeff95d16ce49c0b29 GIT binary patch literal 3244 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 literal 0 HcmV?d00001 diff --git a/src/renderer/src/config/models.ts b/src/renderer/src/config/models.ts index 023632c72a..34ba19cf3e 100644 --- a/src/renderer/src/config/models.ts +++ b/src/renderer/src/config/models.ts @@ -352,6 +352,7 @@ export const SYSTEM_MODELS: Record = { enabled: true } ], + doubao: [], aihubmix: [ { id: 'gpt-4o-mini', diff --git a/src/renderer/src/config/provider.ts b/src/renderer/src/config/provider.ts index ac33db574b..7a5a298273 100644 --- a/src/renderer/src/config/provider.ts +++ b/src/renderer/src/config/provider.ts @@ -3,6 +3,7 @@ import ChatGLMModelLogo from '@renderer/assets/images/models/chatglm.jpeg' import ChatGPTModelLogo from '@renderer/assets/images/models/chatgpt.jpeg' import ClaudeModelLogo from '@renderer/assets/images/models/claude.png' import DeepSeekModelLogo from '@renderer/assets/images/models/deepseek.png' +import DoubaoModelLogo from '@renderer/assets/images/models/doubao.png' import EmbeddingModelLogo from '@renderer/assets/images/models/embedding.png' import GeminiModelLogo from '@renderer/assets/images/models/gemini.png' import GemmaModelLogo from '@renderer/assets/images/models/gemma.jpeg' @@ -18,6 +19,7 @@ import AnthropicProviderLogo from '@renderer/assets/images/providers/anthropic.j import BaichuanProviderLogo from '@renderer/assets/images/providers/baichuan.png' import DashScopeProviderLogo from '@renderer/assets/images/providers/dashscope.png' import DeepSeekProviderLogo from '@renderer/assets/images/providers/deepseek.png' +import DoubaoProviderLogo from '@renderer/assets/images/providers/doubao.png' import GeminiProviderLogo from '@renderer/assets/images/providers/gemini.png' import GroqProviderLogo from '@renderer/assets/images/providers/groq.png' import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.jpeg' @@ -62,6 +64,8 @@ export function getProviderLogo(providerId: string) { return GeminiProviderLogo case 'stepfun': return StepFunProviderLogo + case 'doubao': + return DoubaoProviderLogo default: return undefined } @@ -90,7 +94,8 @@ export function getModelLogo(modelId: string) { embedding: EmbeddingModelLogo, bison: PalmModelLogo, palm: PalmModelLogo, - step: StepModelLogo + step: StepModelLogo, + 'ep-202': DoubaoModelLogo } for (const key in logoMap) { @@ -115,6 +120,18 @@ export const PROVIDER_CONFIG = { models: 'https://platform.openai.com/docs/models' } }, + gemini: { + api: { + url: 'https://generativelanguage.googleapis.com', + editable: false + }, + websites: { + official: 'https://gemini.google.com/', + apiKey: 'https://aistudio.google.com/app/apikey', + docs: 'https://ai.google.dev/gemini-api/docs', + models: 'https://ai.google.dev/gemini-api/docs/models/gemini' + } + }, silicon: { api: { url: 'https://cloud.siliconflow.cn', @@ -199,6 +216,30 @@ export const PROVIDER_CONFIG = { models: 'https://dashscope.console.aliyun.com/model' } }, + stepfun: { + api: { + url: 'https://api.stepfun.com', + editable: false + }, + websites: { + official: 'https://platform.stepfun.com/', + apiKey: 'https://platform.stepfun.com/interface-key', + docs: 'https://platform.stepfun.com/docs/overview/concept', + models: 'https://platform.stepfun.com/docs/llm/text' + } + }, + doubao: { + api: { + url: 'https://ark.cn-beijing.volces.com/api/v3/', + editable: true + }, + websites: { + official: 'https://console.volcengine.com/ark/', + apiKey: 'https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey', + docs: 'https://www.volcengine.com/docs/82379/1182403', + models: 'https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint' + } + }, openrouter: { api: { url: 'https://openrouter.ai/api/v1/', @@ -257,29 +298,5 @@ export const PROVIDER_CONFIG = { docs: 'https://doc.aihubmix.com/', models: 'https://aihubmix.com/models' } - }, - gemini: { - api: { - url: 'https://generativelanguage.googleapis.com', - editable: false - }, - websites: { - official: 'https://gemini.google.com/', - apiKey: 'https://aistudio.google.com/app/apikey', - docs: 'https://ai.google.dev/gemini-api/docs', - models: 'https://ai.google.dev/gemini-api/docs/models/gemini' - } - }, - stepfun: { - api: { - url: 'https://api.stepfun.com', - editable: false - }, - websites: { - official: 'https://platform.stepfun.com/', - apiKey: 'https://platform.stepfun.com/interface-key', - docs: 'https://platform.stepfun.com/docs/overview/concept', - models: 'https://platform.stepfun.com/docs/llm/text' - } } } diff --git a/src/renderer/src/i18n/index.ts b/src/renderer/src/i18n/index.ts index 899ef14833..baaf0217ec 100644 --- a/src/renderer/src/i18n/index.ts +++ b/src/renderer/src/i18n/index.ts @@ -119,7 +119,8 @@ const resources = { dashscope: 'DashScope', anthropic: 'Anthropic', aihubmix: 'AiHubMix', - stepfun: 'StepFun' + stepfun: 'StepFun', + doubao: 'Doubao' }, settings: { title: 'Settings', @@ -338,7 +339,8 @@ const resources = { dashscope: '阿里云灵积', anthropic: 'Anthropic', aihubmix: 'AiHubMix', - stepfun: '阶跃星辰' + stepfun: '阶跃星辰', + doubao: '豆包' }, settings: { title: '设置', diff --git a/src/renderer/src/pages/home/Message.tsx b/src/renderer/src/pages/home/Message.tsx index bfa12e3faf..168d95c86d 100644 --- a/src/renderer/src/pages/home/Message.tsx +++ b/src/renderer/src/pages/home/Message.tsx @@ -67,9 +67,9 @@ const MessageItem: FC = ({ message, index, showMenu, onDeleteMessage }) = const getUserName = useCallback(() => { if (message.id === 'assistant') return assistant?.name - if (message.role === 'assistant') return upperFirst(message.modelId) + if (message.role === 'assistant') return upperFirst(model.name || model.id) return userName || t('common.you') - }, [assistant?.name, message.id, message.modelId, message.role, t, userName]) + }, [assistant?.name, message.id, message.role, model.id, model.name, t, userName]) const fontFamily = useMemo(() => { return messageFont === 'serif' ? FONT_FAMILY.replace('sans-serif', 'serif').replace('Ubuntu, ', '') : FONT_FAMILY diff --git a/src/renderer/src/store/llm.ts b/src/renderer/src/store/llm.ts index 86bc5b24f3..da21463b18 100644 --- a/src/renderer/src/store/llm.ts +++ b/src/renderer/src/store/llm.ts @@ -112,6 +112,15 @@ const initialState: LlmState = { isSystem: true, enabled: false }, + { + id: 'doubao', + name: 'doubao', + apiKey: '', + apiHost: 'https://ark.cn-beijing.volces.com/api/v3/', + models: SYSTEM_MODELS.doubao.filter((m) => m.enabled), + isSystem: true, + enabled: false + }, { id: 'aihubmix', name: 'AiHubMix', diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index a6bb4b6c03..46afa9d423 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -321,6 +321,15 @@ const migrateConfig = { models: SYSTEM_MODELS.stepfun.filter((m) => m.enabled), isSystem: true, enabled: false + }, + { + id: 'doubao', + name: 'doubao', + apiKey: '', + apiHost: 'https://ark.cn-beijing.volces.com/api/v3/', + models: SYSTEM_MODELS.doubao.filter((m) => m.enabled), + isSystem: true, + enabled: false } ] }