feat: add ocoolai provider

This commit is contained in:
kangfenmao 2024-09-24 20:56:19 +08:00
parent e8b992c289
commit 4413528d0e
7 changed files with 57 additions and 5 deletions

View File

@ -260,6 +260,14 @@ export const SYSTEM_MODELS: Record<string, Model[]> = {
group: 'DeepSeek Coder' group: 'DeepSeek Coder'
} }
], ],
ocoolai: [
{
id: 'gpt-4o',
provider: 'ocoolai',
name: 'OpenAI GPT-4o',
group: 'OpenAI'
}
],
github: [ github: [
{ {
id: 'gpt-4o', id: 'gpt-4o',

View File

@ -15,6 +15,7 @@ import GraphRagProviderLogo from '@renderer/assets/images/providers/graph-rag.pn
import GroqProviderLogo from '@renderer/assets/images/providers/groq.png' import GroqProviderLogo from '@renderer/assets/images/providers/groq.png'
import MinimaxProviderLogo from '@renderer/assets/images/providers/minimax.png' import MinimaxProviderLogo from '@renderer/assets/images/providers/minimax.png'
import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.png' import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.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'
import OpenRouterProviderLogo from '@renderer/assets/images/providers/openrouter.png' import OpenRouterProviderLogo from '@renderer/assets/images/providers/openrouter.png'
@ -63,6 +64,8 @@ export function getProviderLogo(providerId: string) {
return MinimaxProviderLogo return MinimaxProviderLogo
case 'github': case 'github':
return GithubProviderLogo return GithubProviderLogo
case 'ocoolai':
return OcoolAiProviderLogo
default: default:
return undefined return undefined
} }
@ -137,6 +140,17 @@ export const PROVIDER_CONFIG = {
logo: DeepSeekProviderLogo logo: DeepSeekProviderLogo
} }
}, },
ocoolai: {
api: {
url: 'https://one.ooo.cool'
},
websites: {
official: 'https://ocoolai.com/',
apiKey: 'https://one.ocoolai.com/token',
docs: 'https://docs.ooo.cool/',
models: 'https://docs.ooo.cool/guides/jiage/'
}
},
github: { github: {
api: { api: {
url: 'https://models.inference.ai.azure.com/' url: 'https://models.inference.ai.azure.com/'

View File

@ -159,7 +159,8 @@ const resources = {
doubao: 'Doubao', doubao: 'Doubao',
minimax: 'MiniMax', minimax: 'MiniMax',
'graphrag-kylin-mountain': 'GraphRAG', 'graphrag-kylin-mountain': 'GraphRAG',
github: 'GitHub Models' github: 'GitHub Models',
ocoolai: 'ocoolAI'
}, },
settings: { settings: {
title: 'Settings', title: 'Settings',
@ -440,7 +441,8 @@ const resources = {
doubao: '豆包', doubao: '豆包',
minimax: 'MiniMax', minimax: 'MiniMax',
'graphrag-kylin-mountain': 'GraphRAG', 'graphrag-kylin-mountain': 'GraphRAG',
github: 'GitHub Models' github: 'GitHub Models',
ocoolai: 'ocoolAI'
}, },
settings: { settings: {
title: '设置', title: '设置',

View File

@ -263,8 +263,6 @@ export default class OpenAIProvider extends BaseProvider {
public async models(): Promise<OpenAI.Models.Model[]> { public async models(): Promise<OpenAI.Models.Model[]> {
try { try {
const response = await this.sdk.models.list()
if (this.provider.id === 'github') { if (this.provider.id === 'github') {
// @ts-ignore key is not typed // @ts-ignore key is not typed
return response.body.map((model) => ({ return response.body.map((model) => ({
@ -275,6 +273,7 @@ export default class OpenAIProvider extends BaseProvider {
})) }))
} }
const response = await this.sdk.models.list()
return response.data return response.data
} catch (error) { } catch (error) {
return [] return []

View File

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

View File

@ -77,6 +77,15 @@ const initialState: LlmState = {
isSystem: true, isSystem: true,
enabled: false enabled: false
}, },
{
id: 'ocoolai',
name: 'ocoolAI',
apiKey: '',
apiHost: 'https://one.ooo.cool',
models: [],
isSystem: true,
enabled: false
},
{ {
id: 'github', id: 'github',
name: 'Github Models', name: 'Github Models',

View File

@ -413,6 +413,26 @@ const migrateConfig = {
] ]
} }
} }
},
'26': (state: RootState) => {
return {
...state,
llm: {
...state.llm,
providers: [
...state.llm.providers,
{
id: 'ocoolai',
name: 'ocoolAI',
apiKey: '',
apiHost: 'https://one.ooo.cool',
models: [],
isSystem: true,
enabled: false
}
]
}
}
} }
} }