feat: add stepfun provider
This commit is contained in:
parent
e1c7a25b87
commit
77c0952635
BIN
src/renderer/src/assets/images/models/step.jpg
Normal file
BIN
src/renderer/src/assets/images/models/step.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
BIN
src/renderer/src/assets/images/providers/stepfun.png
Normal file
BIN
src/renderer/src/assets/images/providers/stepfun.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
@ -336,6 +336,22 @@ export const SYSTEM_MODELS: Record<string, SystemModel[]> = {
|
|||||||
enabled: true
|
enabled: true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
stepfun: [
|
||||||
|
{
|
||||||
|
id: 'step-1-8k',
|
||||||
|
provider: 'stepfun',
|
||||||
|
name: 'Step 1 8K',
|
||||||
|
group: 'Step 1',
|
||||||
|
enabled: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'step-1-flash',
|
||||||
|
provider: 'stepfun',
|
||||||
|
name: 'Step 1 Flash',
|
||||||
|
group: 'Step 1',
|
||||||
|
enabled: true
|
||||||
|
}
|
||||||
|
],
|
||||||
aihubmix: [
|
aihubmix: [
|
||||||
{
|
{
|
||||||
id: 'gpt-4o-mini',
|
id: 'gpt-4o-mini',
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import MicrosoftModelLogo from '@renderer/assets/images/models/microsoft.png'
|
|||||||
import MixtralModelLogo from '@renderer/assets/images/models/mixtral.jpeg'
|
import MixtralModelLogo from '@renderer/assets/images/models/mixtral.jpeg'
|
||||||
import PalmModelLogo from '@renderer/assets/images/models/palm.svg'
|
import PalmModelLogo from '@renderer/assets/images/models/palm.svg'
|
||||||
import QwenModelLogo from '@renderer/assets/images/models/qwen.png'
|
import QwenModelLogo from '@renderer/assets/images/models/qwen.png'
|
||||||
|
import StepModelLogo from '@renderer/assets/images/models/step.jpg'
|
||||||
import YiModelLogo from '@renderer/assets/images/models/yi.svg'
|
import YiModelLogo from '@renderer/assets/images/models/yi.svg'
|
||||||
import AiHubMixProviderLogo from '@renderer/assets/images/providers/aihubmix.jpg'
|
import AiHubMixProviderLogo from '@renderer/assets/images/providers/aihubmix.jpg'
|
||||||
import AnthropicProviderLogo from '@renderer/assets/images/providers/anthropic.jpeg'
|
import AnthropicProviderLogo from '@renderer/assets/images/providers/anthropic.jpeg'
|
||||||
@ -25,6 +26,7 @@ import OllamaProviderLogo from '@renderer/assets/images/providers/ollama.png'
|
|||||||
import OpenAiProviderLogo from '@renderer/assets/images/providers/openai.jpeg'
|
import OpenAiProviderLogo from '@renderer/assets/images/providers/openai.jpeg'
|
||||||
import OpenRouterProviderLogo from '@renderer/assets/images/providers/openrouter.png'
|
import OpenRouterProviderLogo from '@renderer/assets/images/providers/openrouter.png'
|
||||||
import SiliconFlowProviderLogo from '@renderer/assets/images/providers/silicon.png'
|
import SiliconFlowProviderLogo from '@renderer/assets/images/providers/silicon.png'
|
||||||
|
import StepFunProviderLogo from '@renderer/assets/images/providers/stepfun.png'
|
||||||
import YiProviderLogo from '@renderer/assets/images/providers/yi.svg'
|
import YiProviderLogo from '@renderer/assets/images/providers/yi.svg'
|
||||||
import ZhipuProviderLogo from '@renderer/assets/images/providers/zhipu.png'
|
import ZhipuProviderLogo from '@renderer/assets/images/providers/zhipu.png'
|
||||||
|
|
||||||
@ -58,6 +60,8 @@ export function getProviderLogo(providerId: string) {
|
|||||||
return AiHubMixProviderLogo
|
return AiHubMixProviderLogo
|
||||||
case 'gemini':
|
case 'gemini':
|
||||||
return GeminiProviderLogo
|
return GeminiProviderLogo
|
||||||
|
case 'stepfun':
|
||||||
|
return StepFunProviderLogo
|
||||||
default:
|
default:
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
@ -85,7 +89,8 @@ export function getModelLogo(modelId: string) {
|
|||||||
gemini: GeminiModelLogo,
|
gemini: GeminiModelLogo,
|
||||||
embedding: EmbeddingModelLogo,
|
embedding: EmbeddingModelLogo,
|
||||||
bison: PalmModelLogo,
|
bison: PalmModelLogo,
|
||||||
palm: PalmModelLogo
|
palm: PalmModelLogo,
|
||||||
|
step: StepModelLogo
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const key in logoMap) {
|
for (const key in logoMap) {
|
||||||
@ -264,5 +269,17 @@ export const PROVIDER_CONFIG = {
|
|||||||
docs: 'https://ai.google.dev/gemini-api/docs',
|
docs: 'https://ai.google.dev/gemini-api/docs',
|
||||||
models: 'https://ai.google.dev/gemini-api/docs/models/gemini'
|
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'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,3 +16,7 @@ export function useActiveTopic(assistant: Assistant) {
|
|||||||
|
|
||||||
return { activeTopic, setActiveTopic }
|
return { activeTopic, setActiveTopic }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getTopic(assistant: Assistant, topicId: string) {
|
||||||
|
return assistant?.topics.find((topic) => topic.id === topicId)
|
||||||
|
}
|
||||||
|
|||||||
@ -118,7 +118,8 @@ const resources = {
|
|||||||
baichuan: 'Baichuan',
|
baichuan: 'Baichuan',
|
||||||
dashscope: 'DashScope',
|
dashscope: 'DashScope',
|
||||||
anthropic: 'Anthropic',
|
anthropic: 'Anthropic',
|
||||||
aihubmix: 'AiHubMix'
|
aihubmix: 'AiHubMix',
|
||||||
|
stepfun: 'StepFun'
|
||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
title: 'Settings',
|
title: 'Settings',
|
||||||
@ -336,7 +337,8 @@ const resources = {
|
|||||||
baichuan: '百川',
|
baichuan: '百川',
|
||||||
dashscope: '阿里云灵积',
|
dashscope: '阿里云灵积',
|
||||||
anthropic: 'Anthropic',
|
anthropic: 'Anthropic',
|
||||||
aihubmix: 'AiHubMix'
|
aihubmix: 'AiHubMix',
|
||||||
|
stepfun: '阶跃星辰'
|
||||||
},
|
},
|
||||||
settings: {
|
settings: {
|
||||||
title: '设置',
|
title: '设置',
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
import { useAssistant } from '@renderer/hooks/useAssistant'
|
import { useAssistant } from '@renderer/hooks/useAssistant'
|
||||||
import { useProviderByAssistant } from '@renderer/hooks/useProvider'
|
import { useProviderByAssistant } from '@renderer/hooks/useProvider'
|
||||||
|
import { getTopic } from '@renderer/hooks/useTopic'
|
||||||
import { fetchChatCompletion, fetchMessagesSummary } from '@renderer/services/api'
|
import { fetchChatCompletion, fetchMessagesSummary } from '@renderer/services/api'
|
||||||
import { EVENT_NAMES, EventEmitter } from '@renderer/services/event'
|
import { EVENT_NAMES, EventEmitter } from '@renderer/services/event'
|
||||||
import { estimateHistoryTokenCount, filterMessages } from '@renderer/services/messages'
|
import { estimateHistoryTokenCount, filterMessages } from '@renderer/services/messages'
|
||||||
@ -50,9 +51,10 @@ const Messages: FC<Props> = ({ assistant, topic }) => {
|
|||||||
)
|
)
|
||||||
|
|
||||||
const autoRenameTopic = useCallback(async () => {
|
const autoRenameTopic = useCallback(async () => {
|
||||||
if (topic.name === t('chat.default.topic.name') && messages.length >= 2) {
|
const _topic = getTopic(assistant, topic.id)
|
||||||
|
if (_topic && _topic.name === t('chat.default.topic.name') && messages.length >= 2) {
|
||||||
const summaryText = await fetchMessagesSummary({ messages, assistant })
|
const summaryText = await fetchMessagesSummary({ messages, assistant })
|
||||||
summaryText && updateTopic({ ...topic, name: summaryText })
|
summaryText && updateTopic({ ..._topic, name: summaryText })
|
||||||
}
|
}
|
||||||
}, [assistant, messages, topic, updateTopic])
|
}, [assistant, messages, topic, updateTopic])
|
||||||
|
|
||||||
|
|||||||
@ -104,11 +104,11 @@ const initialState: LlmState = {
|
|||||||
enabled: false
|
enabled: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'anthropic',
|
id: 'stepfun',
|
||||||
name: 'Anthropic',
|
name: 'StepFun',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
apiHost: 'https://api.anthropic.com/',
|
apiHost: 'https://api.stepfun.com',
|
||||||
models: SYSTEM_MODELS.anthropic.filter((m) => m.enabled),
|
models: SYSTEM_MODELS.stepfun.filter((m) => m.enabled),
|
||||||
isSystem: true,
|
isSystem: true,
|
||||||
enabled: false
|
enabled: false
|
||||||
},
|
},
|
||||||
@ -139,6 +139,15 @@ const initialState: LlmState = {
|
|||||||
isSystem: true,
|
isSystem: true,
|
||||||
enabled: false
|
enabled: false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'anthropic',
|
||||||
|
name: 'Anthropic',
|
||||||
|
apiKey: '',
|
||||||
|
apiHost: 'https://api.anthropic.com/',
|
||||||
|
models: SYSTEM_MODELS.anthropic.filter((m) => m.enabled),
|
||||||
|
isSystem: true,
|
||||||
|
enabled: false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: 'ollama',
|
id: 'ollama',
|
||||||
name: 'Ollama',
|
name: 'Ollama',
|
||||||
|
|||||||
@ -312,6 +312,15 @@ const migrateConfig = {
|
|||||||
models: SYSTEM_MODELS.gemini.filter((m) => m.enabled),
|
models: SYSTEM_MODELS.gemini.filter((m) => m.enabled),
|
||||||
isSystem: true,
|
isSystem: true,
|
||||||
enabled: false
|
enabled: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'stepfun',
|
||||||
|
name: 'StepFun',
|
||||||
|
apiKey: '',
|
||||||
|
apiHost: 'https://api.stepfun.com',
|
||||||
|
models: SYSTEM_MODELS.stepfun.filter((m) => m.enabled),
|
||||||
|
isSystem: true,
|
||||||
|
enabled: false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user