From 9afa7934add646ef76099750bb159a4753e6e371 Mon Sep 17 00:00:00 2001 From: cnJasonZ Date: Wed, 22 Oct 2025 16:16:18 +0800 Subject: [PATCH 1/2] feat: add jiekou.ai as LLM provider --- src/main/presenter/configPresenter/providers.ts | 16 ++++++++++++++++ src/main/presenter/llmProviderPresenter/index.ts | 5 +++++ .../providers/jiekouProvider.ts | 16 ++++++++++++++++ .../src/assets/llm-icons/jiekou-color.svg | 3 +++ .../src/assets/llm-icons/jiekou-text.svg | 11 +++++++++++ src/renderer/src/assets/llm-icons/jiekou.svg | 3 +++ src/renderer/src/components/icons/ModelIcon.vue | 3 +++ 7 files changed, 57 insertions(+) create mode 100644 src/main/presenter/llmProviderPresenter/providers/jiekouProvider.ts create mode 100644 src/renderer/src/assets/llm-icons/jiekou-color.svg create mode 100644 src/renderer/src/assets/llm-icons/jiekou-text.svg create mode 100644 src/renderer/src/assets/llm-icons/jiekou.svg diff --git a/src/main/presenter/configPresenter/providers.ts b/src/main/presenter/configPresenter/providers.ts index 6e20f6892..6b86a23de 100644 --- a/src/main/presenter/configPresenter/providers.ts +++ b/src/main/presenter/configPresenter/providers.ts @@ -93,6 +93,22 @@ export const DEFAULT_PROVIDERS: LLM_PROVIDER_BASE[] = [ } }, + { + id: 'jiekou', + name: 'JieKou.AI', + apiType: 'openai', + apiKey: '', + baseUrl: 'https://api.jiekou.ai/openai', + enable: false, + websites: { + official: 'https://jiekou.ai?utm_source=github_deepchat', + apiKey: 'https://jiekou.ai/settings/key-management?utm_source=github_deepchat', + docs: 'https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_deepchat', + models: 'https://jiekou.ai/?utm_source=github_deepchat', + defaultBaseUrl: 'https://api.jiekou.ai/openai' + } + }, + { id: 'tokenflux', name: 'TokenFlux', diff --git a/src/main/presenter/llmProviderPresenter/index.ts b/src/main/presenter/llmProviderPresenter/index.ts index 90022e8ea..4c31296cd 100644 --- a/src/main/presenter/llmProviderPresenter/index.ts +++ b/src/main/presenter/llmProviderPresenter/index.ts @@ -48,6 +48,7 @@ import { _302AIProvider } from './providers/_302AIProvider' import { ModelscopeProvider } from './providers/modelscopeProvider' import { VercelAIGatewayProvider } from './providers/vercelAIGatewayProvider' import { PoeProvider } from './providers/poeProvider' +import { JiekouProvider } from './providers/jiekouProvider' // Rate limit configuration interface interface RateLimitConfig { @@ -217,6 +218,8 @@ export class LLMProviderPresenter implements ILlmProviderPresenter { return new PoeProvider(provider, this.configPresenter) case 'aws-bedrock': return new AwsBedrockProvider(provider, this.configPresenter) + case 'jiekou': + return new JiekouProvider(provider, this.configPresenter) default: console.log( `No specific provider found for id: ${provider.id}, falling back to apiType: ${provider.apiType}` @@ -271,6 +274,8 @@ export class LLMProviderPresenter implements ILlmProviderPresenter { return new PoeProvider(provider, this.configPresenter) case 'aws-bedrock': return new AwsBedrockProvider(provider, this.configPresenter) + case 'jiekou': + return new JiekouProvider(provider, this.configPresenter) default: console.warn(`Unknown provider type: ${provider.apiType} for provider id: ${provider.id}`) return undefined diff --git a/src/main/presenter/llmProviderPresenter/providers/jiekouProvider.ts b/src/main/presenter/llmProviderPresenter/providers/jiekouProvider.ts new file mode 100644 index 000000000..29e00d0bb --- /dev/null +++ b/src/main/presenter/llmProviderPresenter/providers/jiekouProvider.ts @@ -0,0 +1,16 @@ +import { LLM_PROVIDER, MODEL_META, IConfigPresenter } from '@shared/presenter' +import { OpenAICompatibleProvider } from './openAICompatibleProvider' + +export class JiekouProvider extends OpenAICompatibleProvider { + constructor(provider: LLM_PROVIDER, configPresenter: IConfigPresenter) { + super(provider, configPresenter) + } + + protected async fetchOpenAIModels(options?: { timeout: number }): Promise { + const models = await super.fetchOpenAIModels(options) + return models.map((model) => ({ + ...model, + group: 'JieKou.AI' + })) + } +} diff --git a/src/renderer/src/assets/llm-icons/jiekou-color.svg b/src/renderer/src/assets/llm-icons/jiekou-color.svg new file mode 100644 index 000000000..914929ad7 --- /dev/null +++ b/src/renderer/src/assets/llm-icons/jiekou-color.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/renderer/src/assets/llm-icons/jiekou-text.svg b/src/renderer/src/assets/llm-icons/jiekou-text.svg new file mode 100644 index 000000000..992e162c4 --- /dev/null +++ b/src/renderer/src/assets/llm-icons/jiekou-text.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/renderer/src/assets/llm-icons/jiekou.svg b/src/renderer/src/assets/llm-icons/jiekou.svg new file mode 100644 index 000000000..257a48da8 --- /dev/null +++ b/src/renderer/src/assets/llm-icons/jiekou.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/renderer/src/components/icons/ModelIcon.vue b/src/renderer/src/components/icons/ModelIcon.vue index 91b574e42..bc8cc1f61 100644 --- a/src/renderer/src/components/icons/ModelIcon.vue +++ b/src/renderer/src/components/icons/ModelIcon.vue @@ -62,6 +62,8 @@ import lmstudioColorIcon from '@/assets/llm-icons/lmstudio.svg?url' import _302aiIcon from '@/assets/llm-icons/302ai.svg?url' import modelscopeColorIcon from '@/assets/llm-icons/modelscope-color.svg?url' import awsBedrockIcon from '@/assets/llm-icons/aws-bedrock.svg?url' +import jiekouColorIcon from '@/assets/llm-icons/jiekou-color.svg?url' + // 导入所有图标 const icons = { cherryin: cherryinColorIcon, @@ -132,6 +134,7 @@ const icons = { glm: zhipuColorIcon, meta: metaColorIcon, 'aws-bedrock': awsBedrockIcon, + jiekou: jiekouColorIcon, default: defaultIcon } From f6f6893986d8f9e576d5b5c4a0db66ebeb167d42 Mon Sep 17 00:00:00 2001 From: zerob13 Date: Wed, 22 Oct 2025 16:33:59 +0800 Subject: [PATCH 2/2] fix: change api type to jiekou --- src/main/presenter/configPresenter/providers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/presenter/configPresenter/providers.ts b/src/main/presenter/configPresenter/providers.ts index 6b86a23de..b585b67da 100644 --- a/src/main/presenter/configPresenter/providers.ts +++ b/src/main/presenter/configPresenter/providers.ts @@ -96,7 +96,7 @@ export const DEFAULT_PROVIDERS: LLM_PROVIDER_BASE[] = [ { id: 'jiekou', name: 'JieKou.AI', - apiType: 'openai', + apiType: 'jiekou', apiKey: '', baseUrl: 'https://api.jiekou.ai/openai', enable: false,