feat: add DashScope provider

This commit is contained in:
kangfenmao 2024-07-19 10:31:01 +08:00
parent 8723c251b1
commit f23c4a0afa
13 changed files with 290 additions and 222 deletions

View File

@ -30,7 +30,8 @@ function createWindow() {
webPreferences: {
preload: join(__dirname, '../preload/index.js'),
sandbox: false,
devTools: !app.isPackaged
devTools: !app.isPackaged,
webSecurity: false
}
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -1,6 +1,6 @@
import { Model } from '@renderer/types'
type SystemModel = Model & { defaultEnabled: boolean }
type SystemModel = Model & { enabled: boolean }
export const SYSTEM_MODELS: Record<string, SystemModel[]> = {
openai: [
@ -9,28 +9,28 @@ export const SYSTEM_MODELS: Record<string, SystemModel[]> = {
provider: 'openai',
name: 'GPT-3.5 Turbo',
group: 'GPT 3.5',
defaultEnabled: true
enabled: true
},
{
id: 'gpt-4-turbo',
provider: 'openai',
name: ' GPT-4 Turbo',
group: 'GPT 4',
defaultEnabled: true
enabled: true
},
{
id: 'gpt-4',
provider: 'openai',
name: ' GPT-4',
group: 'GPT 4',
defaultEnabled: true
enabled: true
},
{
id: 'gpt-4o',
provider: 'openai',
name: ' GPT-4o',
group: 'GPT 4o',
defaultEnabled: true
enabled: true
}
],
silicon: [
@ -39,112 +39,112 @@ export const SYSTEM_MODELS: Record<string, SystemModel[]> = {
provider: 'silicon',
name: 'Qwen2-7B-Instruct',
group: 'Qwen2',
defaultEnabled: true
enabled: true
},
{
id: 'Qwen/Qwen2-1.5B-Instruct',
provider: 'silicon',
name: 'Qwen2-1.5B-Instruct',
group: 'Qwen2',
defaultEnabled: false
enabled: false
},
{
id: 'Qwen/Qwen1.5-7B-Chat',
provider: 'silicon',
name: 'Qwen1.5-7B-Chat',
group: 'Qwen1.5',
defaultEnabled: false
enabled: false
},
{
id: 'Qwen/Qwen2-72B-Instruct',
provider: 'silicon',
name: 'Qwen2-72B-Instruct',
group: 'Qwen2',
defaultEnabled: true
enabled: true
},
{
id: 'Qwen/Qwen2-57B-A14B-Instruct',
provider: 'silicon',
name: 'Qwen2-57B-A14B-Instruct',
group: 'Qwen2',
defaultEnabled: false
enabled: false
},
{
id: 'Qwen/Qwen1.5-110B-Chat',
provider: 'silicon',
name: 'Qwen1.5-110B-Chat',
group: 'Qwen1.5',
defaultEnabled: false
enabled: false
},
{
id: 'Qwen/Qwen1.5-32B-Chat',
provider: 'silicon',
name: 'Qwen1.5-32B-Chat',
group: 'Qwen1.5',
defaultEnabled: false
enabled: false
},
{
id: 'Qwen/Qwen1.5-14B-Chat',
provider: 'silicon',
name: 'Qwen1.5-14B-Chat',
group: 'Qwen1.5',
defaultEnabled: false
enabled: false
},
{
id: 'deepseek-ai/DeepSeek-V2-Chat',
provider: 'silicon',
name: 'DeepSeek-V2-Chat',
group: 'DeepSeek',
defaultEnabled: false
enabled: false
},
{
id: 'deepseek-ai/DeepSeek-Coder-V2-Instruct',
provider: 'silicon',
name: 'DeepSeek-Coder-V2-Instruct',
group: 'DeepSeek',
defaultEnabled: false
enabled: false
},
{
id: 'deepseek-ai/deepseek-llm-67b-chat',
provider: 'silicon',
name: 'Deepseek-LLM-67B-Chat',
group: 'DeepSeek',
defaultEnabled: false
enabled: false
},
{
id: 'THUDM/glm-4-9b-chat',
provider: 'silicon',
name: 'GLM-4-9B-Chat',
group: 'GLM',
defaultEnabled: true
enabled: true
},
{
id: 'THUDM/chatglm3-6b',
provider: 'silicon',
name: 'GhatGLM3-6B',
group: 'GLM',
defaultEnabled: false
enabled: false
},
{
id: '01-ai/Yi-1.5-9B-Chat-16K',
provider: 'silicon',
name: 'Yi-1.5-9B-Chat-16K',
group: 'Yi',
defaultEnabled: false
enabled: false
},
{
id: '01-ai/Yi-1.5-6B-Chat',
provider: 'silicon',
name: 'Yi-1.5-6B-Chat',
group: 'Yi',
defaultEnabled: false
enabled: false
},
{
id: '01-ai/Yi-1.5-34B-Chat-16K',
provider: 'silicon',
name: 'Yi-1.5-34B-Chat-16K',
group: 'Yi',
defaultEnabled: false
enabled: false
}
],
deepseek: [
@ -153,14 +153,14 @@ export const SYSTEM_MODELS: Record<string, SystemModel[]> = {
provider: 'deepseek',
name: 'DeepSeek Chat',
group: 'DeepSeek Chat',
defaultEnabled: true
enabled: true
},
{
id: 'deepseek-coder',
provider: 'deepseek',
name: 'DeepSeek Coder',
group: 'DeepSeek Coder',
defaultEnabled: true
enabled: true
}
],
yi: [
@ -169,42 +169,42 @@ export const SYSTEM_MODELS: Record<string, SystemModel[]> = {
provider: 'yi',
name: 'Yi-Large',
group: 'Yi',
defaultEnabled: false
enabled: false
},
{
id: 'yi-large-turbo',
provider: 'yi',
name: 'Yi-Large-Turbo',
group: 'Yi',
defaultEnabled: true
enabled: true
},
{
id: 'yi-large-rag',
provider: 'yi',
name: 'Yi-Large-Rag',
group: 'Yi',
defaultEnabled: false
enabled: false
},
{
id: 'yi-medium',
provider: 'yi',
name: 'Yi-Medium',
group: 'Yi',
defaultEnabled: true
enabled: true
},
{
id: 'yi-medium-200k',
provider: 'yi',
name: 'Yi-Medium-200k',
group: 'Yi',
defaultEnabled: false
enabled: false
},
{
id: 'yi-spark',
provider: 'yi',
name: 'Yi-Spark',
group: 'Yi',
defaultEnabled: false
enabled: false
}
],
zhipu: [
@ -213,42 +213,42 @@ export const SYSTEM_MODELS: Record<string, SystemModel[]> = {
provider: 'zhipu',
name: 'GLM-4-0520',
group: 'GLM',
defaultEnabled: true
enabled: true
},
{
id: 'glm-4',
provider: 'zhipu',
name: 'GLM-4',
group: 'GLM',
defaultEnabled: false
enabled: false
},
{
id: 'glm-4-airx',
provider: 'zhipu',
name: 'GLM-4-AirX',
group: 'GLM',
defaultEnabled: false
enabled: false
},
{
id: 'glm-4-air',
provider: 'zhipu',
name: 'GLM-4-Air',
group: 'GLM',
defaultEnabled: true
enabled: true
},
{
id: 'glm-4v',
provider: 'zhipu',
name: 'GLM-4V',
group: 'GLM',
defaultEnabled: false
enabled: false
},
{
id: 'glm-4-alltools',
provider: 'zhipu',
name: 'GLM-4-AllTools',
group: 'GLM',
defaultEnabled: false
enabled: false
}
],
moonshot: [
@ -257,88 +257,21 @@ export const SYSTEM_MODELS: Record<string, SystemModel[]> = {
provider: 'moonshot',
name: 'Moonshot V1 8k',
group: 'Moonshot V1',
defaultEnabled: true
enabled: true
},
{
id: 'moonshot-v1-32k',
provider: 'moonshot',
name: 'Moonshot V1 32k',
group: 'Moonshot V1',
defaultEnabled: true
enabled: true
},
{
id: 'moonshot-v1-128k',
provider: 'moonshot',
name: 'Moonshot V1 128k',
group: 'Moonshot V1',
defaultEnabled: true
}
],
openrouter: [
{
id: 'google/gemma-2-9b-it:free',
provider: 'openrouter',
name: 'Google: Gemma 2 9B',
group: 'Gemma',
defaultEnabled: true
},
{
id: 'microsoft/phi-3-mini-128k-instruct:free',
provider: 'openrouter',
name: 'Phi-3 Mini 128K Instruct',
group: 'Phi',
defaultEnabled: true
},
{
id: 'microsoft/phi-3-medium-128k-instruct:free',
provider: 'openrouter',
name: 'Phi-3 Medium 128K Instruct',
group: 'Phi',
defaultEnabled: true
},
{
id: 'meta-llama/llama-3-8b-instruct:free',
provider: 'openrouter',
name: 'Meta: Llama 3 8B Instruct',
group: 'Llama3',
defaultEnabled: true
},
{
id: 'mistralai/mistral-7b-instruct:free',
provider: 'openrouter',
name: 'Mistral: Mistral 7B Instruct',
group: 'Mistral',
defaultEnabled: true
}
],
groq: [
{
id: 'llama3-8b-8192',
provider: 'groq',
name: 'LLaMA3 8B',
group: 'Llama3',
defaultEnabled: false
},
{
id: 'llama3-70b-8192',
provider: 'groq',
name: 'LLaMA3 70B',
group: 'Llama3',
defaultEnabled: true
},
{
id: 'mixtral-8x7b-32768',
provider: 'groq',
name: 'Mixtral 8x7B',
group: 'Mixtral',
defaultEnabled: false
},
{
id: 'gemma-7b-it',
provider: 'groq',
name: 'Gemma 7B',
group: 'Gemma',
defaultEnabled: false
enabled: true
}
],
baichuan: [
@ -347,21 +280,111 @@ export const SYSTEM_MODELS: Record<string, SystemModel[]> = {
provider: 'baichuan',
name: 'Baichuan4',
group: 'Baichuan4',
defaultEnabled: true
enabled: true
},
{
id: 'Baichuan3-Turbo',
provider: 'baichuan',
name: 'Baichuan3 Turbo',
group: 'Baichuan3',
defaultEnabled: true
enabled: true
},
{
id: 'Baichuan3-Turbo-128k',
provider: 'baichuan',
name: 'Baichuan3 Turbo 128k',
group: 'Baichuan3',
defaultEnabled: true
enabled: true
}
],
dashscope: [
{
id: 'qwen-turbo',
provider: 'dashscope',
name: 'Qwen Turbo',
group: 'Qwen',
enabled: true
},
{
id: 'qwen-plus',
provider: 'dashscope',
name: 'Qwen Plus',
group: 'Qwen',
enabled: true
},
{
id: 'qwen-max',
provider: 'dashscope',
name: 'Qwen Max',
group: 'Qwen',
enabled: true
}
],
openrouter: [
{
id: 'google/gemma-2-9b-it:free',
provider: 'openrouter',
name: 'Google: Gemma 2 9B',
group: 'Gemma',
enabled: true
},
{
id: 'microsoft/phi-3-mini-128k-instruct:free',
provider: 'openrouter',
name: 'Phi-3 Mini 128K Instruct',
group: 'Phi',
enabled: true
},
{
id: 'microsoft/phi-3-medium-128k-instruct:free',
provider: 'openrouter',
name: 'Phi-3 Medium 128K Instruct',
group: 'Phi',
enabled: true
},
{
id: 'meta-llama/llama-3-8b-instruct:free',
provider: 'openrouter',
name: 'Meta: Llama 3 8B Instruct',
group: 'Llama3',
enabled: true
},
{
id: 'mistralai/mistral-7b-instruct:free',
provider: 'openrouter',
name: 'Mistral: Mistral 7B Instruct',
group: 'Mistral',
enabled: true
}
],
groq: [
{
id: 'llama3-8b-8192',
provider: 'groq',
name: 'LLaMA3 8B',
group: 'Llama3',
enabled: false
},
{
id: 'llama3-70b-8192',
provider: 'groq',
name: 'LLaMA3 70B',
group: 'Llama3',
enabled: true
},
{
id: 'mixtral-8x7b-32768',
provider: 'groq',
name: 'Mixtral 8x7B',
group: 'Mixtral',
enabled: false
},
{
id: 'gemma-7b-it',
provider: 'groq',
name: 'Gemma 7B',
group: 'Gemma',
enabled: false
}
]
}

View File

@ -1,3 +1,80 @@
import OpenAiProviderLogo from '@renderer/assets/images/providers/openai.jpeg'
import SiliconFlowProviderLogo from '@renderer/assets/images/providers/silicon.png'
import DeepSeekProviderLogo from '@renderer/assets/images/providers/deepseek.png'
import YiProviderLogo from '@renderer/assets/images/providers/yi.svg'
import GroqProviderLogo from '@renderer/assets/images/providers/groq.png'
import ZhipuProviderLogo from '@renderer/assets/images/providers/zhipu.png'
import OllamaProviderLogo from '@renderer/assets/images/providers/ollama.png'
import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.jpeg'
import OpenRouterProviderLogo from '@renderer/assets/images/providers/openrouter.png'
import BaichuanProviderLogo from '@renderer/assets/images/providers/baichuan.png'
import DashScopeProviderLogo from '@renderer/assets/images/providers/dashscope.png'
import ChatGPTModelLogo from '@renderer/assets/images/models/chatgpt.jpeg'
import ChatGLMModelLogo from '@renderer/assets/images/models/chatglm.jpeg'
import DeepSeekModelLogo from '@renderer/assets/images/models/deepseek.png'
import GemmaModelLogo from '@renderer/assets/images/models/gemma.jpeg'
import QwenModelLogo from '@renderer/assets/images/models/qwen.jpeg'
import YiModelLogo from '@renderer/assets/images/models/yi.svg'
import LlamaModelLogo from '@renderer/assets/images/models/llama.jpeg'
import MixtralModelLogo from '@renderer/assets/images/models/mixtral.jpeg'
import MoonshotModelLogo from '@renderer/assets/images/providers/moonshot.jpeg'
import MicrosoftModelLogo from '@renderer/assets/images/models/microsoft.png'
import BaichuanModelLogo from '@renderer/assets/images/models/baichuan.png'
export function getProviderLogo(providerId: string) {
switch (providerId) {
case 'openai':
return OpenAiProviderLogo
case 'silicon':
return SiliconFlowProviderLogo
case 'deepseek':
return DeepSeekProviderLogo
case 'yi':
return YiProviderLogo
case 'groq':
return GroqProviderLogo
case 'zhipu':
return ZhipuProviderLogo
case 'ollama':
return OllamaProviderLogo
case 'moonshot':
return MoonshotProviderLogo
case 'openrouter':
return OpenRouterProviderLogo
case 'baichuan':
return BaichuanProviderLogo
case 'dashscope':
return DashScopeProviderLogo
default:
return undefined
}
}
export function getModelLogo(modelId: string) {
const logoMap = {
gpt: ChatGPTModelLogo,
glm: ChatGLMModelLogo,
deepseek: DeepSeekModelLogo,
qwen: QwenModelLogo,
gemma: GemmaModelLogo,
'yi-': YiModelLogo,
llama: LlamaModelLogo,
mixtral: MixtralModelLogo,
mistral: MixtralModelLogo,
moonshot: MoonshotModelLogo,
phi: MicrosoftModelLogo,
baichuan: BaichuanModelLogo
}
for (const key in logoMap) {
if (modelId.toLowerCase().includes(key)) {
return logoMap[key]
}
}
return undefined
}
export const PROVIDER_CONFIG = {
openai: {
websites: {
@ -47,6 +124,22 @@ export const PROVIDER_CONFIG = {
models: 'https://platform.moonshot.cn/docs/intro#%E6%A8%A1%E5%9E%8B%E5%88%97%E8%A1%A8'
}
},
baichuan: {
websites: {
official: 'https://www.baichuan-ai.com/',
apiKey: 'https://platform.baichuan-ai.com/console/apikey',
docs: 'https://platform.baichuan-ai.com/docs',
models: 'https://platform.baichuan-ai.com/price'
}
},
dashscope: {
websites: {
official: 'https://dashscope.aliyun.com/',
apiKey: 'https://help.aliyun.com/zh/dashscope/developer-reference/acquisition-and-configuration-of-api-key',
docs: 'https://help.aliyun.com/zh/dashscope/',
models: 'https://dashscope.console.aliyun.com/model'
}
},
openrouter: {
websites: {
official: 'https://openrouter.ai/',
@ -69,13 +162,5 @@ export const PROVIDER_CONFIG = {
docs: 'https://github.com/ollama/ollama/tree/main/docs',
models: 'https://ollama.com/library'
}
},
baichuan: {
websites: {
official: 'https://www.baichuan-ai.com/',
apiKey: 'https://platform.baichuan-ai.com/console/apikey',
docs: 'https://platform.baichuan-ai.com/docs',
models: 'https://platform.baichuan-ai.com/price'
}
}
}

View File

@ -79,7 +79,8 @@ const resources = {
zhipu: 'ZHIPU AI',
groq: 'Groq',
ollama: 'Ollama',
baichuan: 'Baichuan'
baichuan: 'Baichuan',
dashscope: 'DashScope'
},
settings: {
title: 'Settings',
@ -156,7 +157,7 @@ const resources = {
'error.enter.api.host': '请输入您的 API 地址',
'error.enter.model': '请选择一个模型',
'api.connection.failed': '连接失败',
'api.connection.successful': '连接成功',
'api.connection.success': '连接成功',
'chat.completion.paused': '会话已停止'
},
assistant: {
@ -195,7 +196,8 @@ const resources = {
zhipu: '智谱AI',
groq: 'Groq',
ollama: 'Ollama',
baichuan: '百川'
baichuan: '百川',
dashscope: '阿里云灵积'
},
settings: {
title: '设置',

View File

@ -7,7 +7,7 @@ import { CopyOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'
import Markdown from 'react-markdown'
import CodeBlock from './CodeBlock'
import { EVENT_NAMES, EventEmitter } from '@renderer/services/event'
import { getModelLogo } from '@renderer/services/provider'
import { getModelLogo } from '@renderer/config/provider'
import Logo from '@renderer/assets/images/logo.png'
import { SyncOutlined } from '@ant-design/icons'
import { firstLetter } from '@renderer/utils'

View File

@ -1,6 +1,6 @@
import { DragDropContext, Draggable, Droppable, DropResult } from '@hello-pangea/dnd'
import { useProviders, useSystemProviders } from '@renderer/hooks/useProvider'
import { getProviderLogo } from '@renderer/services/provider'
import { getProviderLogo } from '@renderer/config/provider'
import { Provider } from '@renderer/types'
import { droppableReorder } from '@renderer/utils'
import { Avatar, Tag } from 'antd'
@ -39,7 +39,7 @@ const ProviderSettings: FC = () => {
key={JSON.stringify(provider)}
className={provider.id === selectedProvider?.id ? 'active' : ''}
onClick={() => setSelectedProvider(provider)}>
<Avatar src={getProviderLogo(provider.id)} size={22} />
<Avatar src={getProviderLogo(provider.id)} size={24} />
<ProviderItemName>{t(`provider.${provider.id}`)}</ProviderItemName>
{provider.enabled && (
<Tag color="green" style={{ marginLeft: 'auto' }}>

View File

@ -2,7 +2,7 @@ import { LoadingOutlined, MinusOutlined, PlusOutlined, QuestionCircleOutlined }
import { SYSTEM_MODELS } from '@renderer/config/models'
import { useProvider } from '@renderer/hooks/useProvider'
import { fetchModels } from '@renderer/services/api'
import { getModelLogo } from '@renderer/services/provider'
import { getModelLogo } from '@renderer/config/provider'
import { Model, Provider } from '@renderer/types'
import { getDefaultGroupName, isFreeModel, runAsyncFunction } from '@renderer/utils'
import { Avatar, Button, Empty, Flex, Modal, Tag } from 'antd'

View File

@ -5,7 +5,7 @@ import { Avatar, Button, Card, Divider, Flex, Input, Space, Switch } from 'antd'
import { useProvider } from '@renderer/hooks/useProvider'
import { groupBy } from 'lodash'
import { SettingContainer, SettingSubtitle, SettingTitle } from '.'
import { getModelLogo } from '@renderer/services/provider'
import { getModelLogo } from '@renderer/config/provider'
import { CheckOutlined, EditOutlined, ExportOutlined, LoadingOutlined, PlusOutlined } from '@ant-design/icons'
import AddModelPopup from './AddModelPopup'
import EditModelsPopup from './EditModelsPopup'

View File

@ -1,73 +0,0 @@
import OpenAiProviderLogo from '@renderer/assets/images/providers/openai.jpeg'
import SiliconFlowProviderLogo from '@renderer/assets/images/providers/silicon.png'
import DeepSeekProviderLogo from '@renderer/assets/images/providers/deepseek.png'
import YiProviderLogo from '@renderer/assets/images/providers/yi.svg'
import GroqProviderLogo from '@renderer/assets/images/providers/groq.png'
import ZhipuProviderLogo from '@renderer/assets/images/providers/zhipu.png'
import OllamaProviderLogo from '@renderer/assets/images/providers/ollama.png'
import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.jpeg'
import OpenRouterProviderLogo from '@renderer/assets/images/providers/openrouter.png'
import BaichuanProviderLogo from '@renderer/assets/images/providers/baichuan.png'
import ChatGPTModelLogo from '@renderer/assets/images/models/chatgpt.jpeg'
import ChatGLMModelLogo from '@renderer/assets/images/models/chatglm.jpeg'
import DeepSeekModelLogo from '@renderer/assets/images/models/deepseek.png'
import GemmaModelLogo from '@renderer/assets/images/models/gemma.jpeg'
import QwenModelLogo from '@renderer/assets/images/models/qwen.jpeg'
import YiModelLogo from '@renderer/assets/images/models/yi.svg'
import LlamaModelLogo from '@renderer/assets/images/models/llama.jpeg'
import MixtralModelLogo from '@renderer/assets/images/models/mixtral.jpeg'
import MoonshotModelLogo from '@renderer/assets/images/providers/moonshot.jpeg'
import MicrosoftModelLogo from '@renderer/assets/images/models/microsoft.png'
import BaichuanModelLogo from '@renderer/assets/images/models/baichuan.png'
export function getProviderLogo(providerId: string) {
switch (providerId) {
case 'openai':
return OpenAiProviderLogo
case 'silicon':
return SiliconFlowProviderLogo
case 'deepseek':
return DeepSeekProviderLogo
case 'yi':
return YiProviderLogo
case 'groq':
return GroqProviderLogo
case 'zhipu':
return ZhipuProviderLogo
case 'ollama':
return OllamaProviderLogo
case 'moonshot':
return MoonshotProviderLogo
case 'openrouter':
return OpenRouterProviderLogo
case 'baichuan':
return BaichuanProviderLogo
default:
return undefined
}
}
export function getModelLogo(modelId: string) {
const logoMap = {
gpt: ChatGPTModelLogo,
glm: ChatGLMModelLogo,
deepseek: DeepSeekModelLogo,
qwen: QwenModelLogo,
gemma: GemmaModelLogo,
'yi-': YiModelLogo,
llama: LlamaModelLogo,
mixtral: MixtralModelLogo,
mistral: MixtralModelLogo,
moonshot: MoonshotModelLogo,
phi: MicrosoftModelLogo,
baichuan: BaichuanModelLogo
}
for (const key in logoMap) {
if (modelId.toLowerCase().includes(key)) {
return logoMap[key]
}
}
return undefined
}

View File

@ -19,7 +19,7 @@ const persistedReducer = persistReducer(
{
key: 'cherry-studio',
storage,
version: 10,
version: 11,
blacklist: ['runtime'],
migrate
},

View File

@ -18,7 +18,7 @@ const initialState: LlmState = {
name: 'OpenAI',
apiKey: '',
apiHost: 'https://api.openai.com',
models: SYSTEM_MODELS.openai.filter((m) => m.defaultEnabled),
models: SYSTEM_MODELS.openai.filter((m) => m.enabled),
isSystem: true,
enabled: true
},
@ -27,7 +27,7 @@ const initialState: LlmState = {
name: 'Silicon',
apiKey: '',
apiHost: 'https://api.siliconflow.cn',
models: SYSTEM_MODELS.silicon.filter((m) => m.defaultEnabled),
models: SYSTEM_MODELS.silicon.filter((m) => m.enabled),
isSystem: true,
enabled: false
},
@ -36,7 +36,7 @@ const initialState: LlmState = {
name: 'deepseek',
apiKey: '',
apiHost: 'https://api.deepseek.com',
models: SYSTEM_MODELS.deepseek.filter((m) => m.defaultEnabled),
models: SYSTEM_MODELS.deepseek.filter((m) => m.enabled),
isSystem: true,
enabled: false
},
@ -45,7 +45,7 @@ const initialState: LlmState = {
name: 'Yi',
apiKey: '',
apiHost: 'https://api.lingyiwanwu.com',
models: SYSTEM_MODELS.yi.filter((m) => m.defaultEnabled),
models: SYSTEM_MODELS.yi.filter((m) => m.enabled),
isSystem: true,
enabled: false
},
@ -54,7 +54,7 @@ const initialState: LlmState = {
name: 'ZhiPu',
apiKey: '',
apiHost: 'https://open.bigmodel.cn/api/paas/v4/',
models: SYSTEM_MODELS.zhipu.filter((m) => m.defaultEnabled),
models: SYSTEM_MODELS.zhipu.filter((m) => m.enabled),
isSystem: true,
enabled: false
},
@ -63,7 +63,25 @@ const initialState: LlmState = {
name: 'Moonshot AI',
apiKey: '',
apiHost: 'https://api.moonshot.cn',
models: SYSTEM_MODELS.moonshot.filter((m) => m.defaultEnabled),
models: SYSTEM_MODELS.moonshot.filter((m) => m.enabled),
isSystem: true,
enabled: false
},
{
id: 'baichuan',
name: 'BAICHUAN AI',
apiKey: '',
apiHost: 'https://api.baichuan-ai.com',
models: SYSTEM_MODELS.baichuan.filter((m) => m.enabled),
isSystem: true,
enabled: false
},
{
id: 'dashscope',
name: 'DashScope',
apiKey: '',
apiHost: 'https://dashscope.aliyuncs.com/compatible-mode/v1/',
models: SYSTEM_MODELS.dashscope.filter((m) => m.enabled),
isSystem: true,
enabled: false
},
@ -72,7 +90,7 @@ const initialState: LlmState = {
name: 'OpenRouter',
apiKey: '',
apiHost: 'https://openrouter.ai/api/v1/',
models: SYSTEM_MODELS.openrouter.filter((m) => m.defaultEnabled),
models: SYSTEM_MODELS.openrouter.filter((m) => m.enabled),
isSystem: true,
enabled: false
},
@ -81,7 +99,7 @@ const initialState: LlmState = {
name: 'Groq',
apiKey: '',
apiHost: 'https://api.groq.com/openai',
models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled),
models: SYSTEM_MODELS.groq.filter((m) => m.enabled),
isSystem: true,
enabled: false
},
@ -93,15 +111,6 @@ const initialState: LlmState = {
models: [],
isSystem: true,
enabled: false
},
{
id: 'baichuan',
name: 'BAICHUAN AI',
apiKey: '',
apiHost: 'https://api.baichuan-ai.com',
models: SYSTEM_MODELS.baichuan.filter((m) => m.defaultEnabled),
isSystem: true,
enabled: false
}
]
}

View File

@ -20,7 +20,7 @@ const migrate = createMigrate({
apiKey: '',
apiHost: 'https://api.lingyiwanwu.com',
isSystem: true,
models: SYSTEM_MODELS.yi.filter((m) => m.defaultEnabled)
models: SYSTEM_MODELS.yi.filter((m) => m.enabled)
}
]
}
@ -40,7 +40,7 @@ const migrate = createMigrate({
apiKey: '',
apiHost: 'https://open.bigmodel.cn/api/paas/v4/',
isSystem: true,
models: SYSTEM_MODELS.zhipu.filter((m) => m.defaultEnabled)
models: SYSTEM_MODELS.zhipu.filter((m) => m.enabled)
}
]
}
@ -80,7 +80,7 @@ const migrate = createMigrate({
apiKey: '',
apiHost: 'https://api.moonshot.cn',
isSystem: true,
models: SYSTEM_MODELS.moonshot.filter((m) => m.defaultEnabled)
models: SYSTEM_MODELS.moonshot.filter((m) => m.enabled)
}
]
}
@ -99,7 +99,7 @@ const migrate = createMigrate({
name: 'OpenRouter',
apiKey: '',
apiHost: 'https://openrouter.ai/api/v1/',
models: SYSTEM_MODELS.openrouter.filter((m) => m.defaultEnabled),
models: SYSTEM_MODELS.openrouter.filter((m) => m.enabled),
isSystem: true
}
]
@ -150,7 +150,7 @@ const migrate = createMigrate({
...state.llm,
providers: state.llm.providers.map((provider) => {
if (provider.id === 'zhipu' && provider.models[0] && provider.models[0].id === 'llama3-70b-8192') {
provider.models = SYSTEM_MODELS.zhipu.filter((m) => m.defaultEnabled)
provider.models = SYSTEM_MODELS.zhipu.filter((m) => m.enabled)
}
return provider
})
@ -170,7 +170,28 @@ const migrate = createMigrate({
name: 'BAICHUAN AI',
apiKey: '',
apiHost: 'https://api.baichuan-ai.com',
models: SYSTEM_MODELS.baichuan.filter((m) => m.defaultEnabled),
models: SYSTEM_MODELS.baichuan.filter((m) => m.enabled),
isSystem: true,
enabled: false
}
]
}
}
},
// @ts-ignore store type is unknown
'11': (state: RootState) => {
return {
...state,
llm: {
...state.llm,
providers: [
...state.llm.providers,
{
id: 'dashscope',
name: 'DashScope',
apiKey: '',
apiHost: 'https://dashscope.aliyuncs.com/compatible-mode/v1/',
models: SYSTEM_MODELS.dashscope.filter((m) => m.enabled),
isSystem: true,
enabled: false
}