feat: add doubao provider
This commit is contained in:
parent
77c0952635
commit
4485a00395
BIN
src/renderer/src/assets/images/models/doubao.png
Normal file
BIN
src/renderer/src/assets/images/models/doubao.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
BIN
src/renderer/src/assets/images/providers/doubao.png
Normal file
BIN
src/renderer/src/assets/images/providers/doubao.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@ -352,6 +352,7 @@ export const SYSTEM_MODELS: Record<string, SystemModel[]> = {
|
|||||||
enabled: true
|
enabled: true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
doubao: [],
|
||||||
aihubmix: [
|
aihubmix: [
|
||||||
{
|
{
|
||||||
id: 'gpt-4o-mini',
|
id: 'gpt-4o-mini',
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import ChatGLMModelLogo from '@renderer/assets/images/models/chatglm.jpeg'
|
|||||||
import ChatGPTModelLogo from '@renderer/assets/images/models/chatgpt.jpeg'
|
import ChatGPTModelLogo from '@renderer/assets/images/models/chatgpt.jpeg'
|
||||||
import ClaudeModelLogo from '@renderer/assets/images/models/claude.png'
|
import ClaudeModelLogo from '@renderer/assets/images/models/claude.png'
|
||||||
import DeepSeekModelLogo from '@renderer/assets/images/models/deepseek.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 EmbeddingModelLogo from '@renderer/assets/images/models/embedding.png'
|
||||||
import GeminiModelLogo from '@renderer/assets/images/models/gemini.png'
|
import GeminiModelLogo from '@renderer/assets/images/models/gemini.png'
|
||||||
import GemmaModelLogo from '@renderer/assets/images/models/gemma.jpeg'
|
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 BaichuanProviderLogo from '@renderer/assets/images/providers/baichuan.png'
|
||||||
import DashScopeProviderLogo from '@renderer/assets/images/providers/dashscope.png'
|
import DashScopeProviderLogo from '@renderer/assets/images/providers/dashscope.png'
|
||||||
import DeepSeekProviderLogo from '@renderer/assets/images/providers/deepseek.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 GeminiProviderLogo from '@renderer/assets/images/providers/gemini.png'
|
||||||
import GroqProviderLogo from '@renderer/assets/images/providers/groq.png'
|
import GroqProviderLogo from '@renderer/assets/images/providers/groq.png'
|
||||||
import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.jpeg'
|
import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.jpeg'
|
||||||
@ -62,6 +64,8 @@ export function getProviderLogo(providerId: string) {
|
|||||||
return GeminiProviderLogo
|
return GeminiProviderLogo
|
||||||
case 'stepfun':
|
case 'stepfun':
|
||||||
return StepFunProviderLogo
|
return StepFunProviderLogo
|
||||||
|
case 'doubao':
|
||||||
|
return DoubaoProviderLogo
|
||||||
default:
|
default:
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
@ -90,7 +94,8 @@ export function getModelLogo(modelId: string) {
|
|||||||
embedding: EmbeddingModelLogo,
|
embedding: EmbeddingModelLogo,
|
||||||
bison: PalmModelLogo,
|
bison: PalmModelLogo,
|
||||||
palm: PalmModelLogo,
|
palm: PalmModelLogo,
|
||||||
step: StepModelLogo
|
step: StepModelLogo,
|
||||||
|
'ep-202': DoubaoModelLogo
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const key in logoMap) {
|
for (const key in logoMap) {
|
||||||
@ -115,6 +120,18 @@ export const PROVIDER_CONFIG = {
|
|||||||
models: 'https://platform.openai.com/docs/models'
|
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: {
|
silicon: {
|
||||||
api: {
|
api: {
|
||||||
url: 'https://cloud.siliconflow.cn',
|
url: 'https://cloud.siliconflow.cn',
|
||||||
@ -199,6 +216,30 @@ export const PROVIDER_CONFIG = {
|
|||||||
models: 'https://dashscope.console.aliyun.com/model'
|
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: {
|
openrouter: {
|
||||||
api: {
|
api: {
|
||||||
url: 'https://openrouter.ai/api/v1/',
|
url: 'https://openrouter.ai/api/v1/',
|
||||||
@ -257,29 +298,5 @@ export const PROVIDER_CONFIG = {
|
|||||||
docs: 'https://doc.aihubmix.com/',
|
docs: 'https://doc.aihubmix.com/',
|
||||||
models: 'https://aihubmix.com/models'
|
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'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -119,7 +119,8 @@ const resources = {
|
|||||||
dashscope: 'DashScope',
|
dashscope: 'DashScope',
|
||||||
anthropic: 'Anthropic',
|
anthropic: 'Anthropic',
|
||||||
aihubmix: 'AiHubMix',
|
aihubmix: 'AiHubMix',
|
||||||
stepfun: 'StepFun'
|
stepfun: 'StepFun',
|
||||||
|
doubao: 'Doubao'
|
||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
title: 'Settings',
|
title: 'Settings',
|
||||||
@ -338,7 +339,8 @@ const resources = {
|
|||||||
dashscope: '阿里云灵积',
|
dashscope: '阿里云灵积',
|
||||||
anthropic: 'Anthropic',
|
anthropic: 'Anthropic',
|
||||||
aihubmix: 'AiHubMix',
|
aihubmix: 'AiHubMix',
|
||||||
stepfun: '阶跃星辰'
|
stepfun: '阶跃星辰',
|
||||||
|
doubao: '豆包'
|
||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
title: '设置',
|
title: '设置',
|
||||||
|
|||||||
@ -67,9 +67,9 @@ const MessageItem: FC<Props> = ({ message, index, showMenu, onDeleteMessage }) =
|
|||||||
|
|
||||||
const getUserName = useCallback(() => {
|
const getUserName = useCallback(() => {
|
||||||
if (message.id === 'assistant') return assistant?.name
|
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')
|
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(() => {
|
const fontFamily = useMemo(() => {
|
||||||
return messageFont === 'serif' ? FONT_FAMILY.replace('sans-serif', 'serif').replace('Ubuntu, ', '') : FONT_FAMILY
|
return messageFont === 'serif' ? FONT_FAMILY.replace('sans-serif', 'serif').replace('Ubuntu, ', '') : FONT_FAMILY
|
||||||
|
|||||||
@ -112,6 +112,15 @@ const initialState: LlmState = {
|
|||||||
isSystem: true,
|
isSystem: true,
|
||||||
enabled: false
|
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',
|
id: 'aihubmix',
|
||||||
name: 'AiHubMix',
|
name: 'AiHubMix',
|
||||||
|
|||||||
@ -321,6 +321,15 @@ const migrateConfig = {
|
|||||||
models: SYSTEM_MODELS.stepfun.filter((m) => m.enabled),
|
models: SYSTEM_MODELS.stepfun.filter((m) => m.enabled),
|
||||||
isSystem: true,
|
isSystem: true,
|
||||||
enabled: false
|
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
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user