diff --git a/src/renderer/components/icons/ProviderIcon.tsx b/src/renderer/components/icons/ProviderIcon.tsx
index 0aceb77af4..1ef0338ee0 100644
--- a/src/renderer/components/icons/ProviderIcon.tsx
+++ b/src/renderer/components/icons/ProviderIcon.tsx
@@ -130,6 +130,13 @@ export default function ProviderIcon(props: { className?: string; size?: number;
{provider === ModelProviderEnum.VercelAIGateway && (
)}
+ {provider === ModelProviderEnum.DaoXE && (
+ <>
+
+
+
+ >
+ )}
{provider === ModelProviderEnum.XAI && (
<>
diff --git a/src/shared/models/index.ts b/src/shared/models/index.ts
index 304c6909a5..1da094e6eb 100644
--- a/src/shared/models/index.ts
+++ b/src/shared/models/index.ts
@@ -30,6 +30,7 @@ export const aiProviderNameHash: Record = {
[ModelProviderEnum.OpenRouter]: 'OpenRouter API',
[ModelProviderEnum.Bedrock]: 'AWS Bedrock',
[ModelProviderEnum.VercelAIGateway]: 'Vercel AI Gateway',
+ [ModelProviderEnum.DaoXE]: 'DaoXE',
[ModelProviderEnum.Custom]: 'Custom Provider',
}
@@ -150,6 +151,11 @@ export const AIModelProviderMenuOptionList = [
label: aiProviderNameHash[ModelProviderEnum.VercelAIGateway],
disabled: false,
},
+ {
+ value: ModelProviderEnum.DaoXE,
+ label: aiProviderNameHash[ModelProviderEnum.DaoXE],
+ disabled: false,
+ },
{
value: ModelProviderEnum.ChatGLM6B,
label: aiProviderNameHash[ModelProviderEnum.ChatGLM6B],
diff --git a/src/shared/providers/definitions/daoxe.ts b/src/shared/providers/definitions/daoxe.ts
new file mode 100644
index 0000000000..2d7db6a874
--- /dev/null
+++ b/src/shared/providers/definitions/daoxe.ts
@@ -0,0 +1,36 @@
+import { ModelProviderEnum, ModelProviderType } from '../../types'
+import { defineProvider } from '../registry'
+import DaoXE from './models/daoxe'
+
+export const daoxeProvider = defineProvider({
+ id: ModelProviderEnum.DaoXE,
+ name: 'DaoXE',
+ type: ModelProviderType.OpenAI,
+ description: 'OpenAI-compatible multi-model API gateway',
+ urls: {
+ website: 'https://daoxe.com/',
+ docs: 'https://github.com/seven7763/DaoXE-AI',
+ models: 'https://daoxe.com/pricing',
+ },
+ defaultSettings: {
+ apiHost: 'https://daoxe.com/v1',
+ },
+ createModel: (config) => {
+ return new DaoXE(
+ {
+ apiKey: config.effectiveApiKey,
+ apiHost: config.formattedApiHost || 'https://daoxe.com/v1',
+ model: config.model,
+ temperature: config.settings.temperature,
+ topP: config.settings.topP,
+ maxOutputTokens: config.settings.maxTokens,
+ useProxy: config.providerSetting.useProxy,
+ stream: config.settings.stream,
+ },
+ config.dependencies
+ )
+ },
+ getDisplayName: (modelId, providerSettings) => {
+ return `DaoXE (${providerSettings?.models?.find((model) => model.modelId === modelId)?.nickname || modelId})`
+ },
+})
diff --git a/src/shared/providers/definitions/models/daoxe.ts b/src/shared/providers/definitions/models/daoxe.ts
new file mode 100644
index 0000000000..e4fdf2955a
--- /dev/null
+++ b/src/shared/providers/definitions/models/daoxe.ts
@@ -0,0 +1,5 @@
+import OpenAICompatible from '../../../models/openai-compatible'
+
+export default class DaoXE extends OpenAICompatible {
+ public name = 'DaoXE'
+}
diff --git a/src/shared/providers/index.ts b/src/shared/providers/index.ts
index 06742110e7..a9f548fe59 100644
--- a/src/shared/providers/index.ts
+++ b/src/shared/providers/index.ts
@@ -17,6 +17,7 @@ import './definitions/minimax'
import './definitions/moonshot'
import './definitions/siliconflow'
import './definitions/openrouter'
+import './definitions/daoxe'
import './definitions/ollama'
import './definitions/lmstudio'
import './definitions/azure'
diff --git a/src/shared/types/provider.ts b/src/shared/types/provider.ts
index 8f12db4f03..625795524d 100644
--- a/src/shared/types/provider.ts
+++ b/src/shared/types/provider.ts
@@ -27,6 +27,7 @@ export enum ModelProviderEnum {
OpenRouter = 'openrouter',
Bedrock = 'bedrock',
VercelAIGateway = 'vercel-ai-gateway',
+ DaoXE = 'daoxe',
Custom = 'custom',
}
diff --git a/src/shared/utils/llm_utils.ts b/src/shared/utils/llm_utils.ts
index 2df5666a1a..da56b5e081 100644
--- a/src/shared/utils/llm_utils.ts
+++ b/src/shared/utils/llm_utils.ts
@@ -129,6 +129,7 @@ export function isOpenAICompatible(providerId: string, _modelId: string) {
ModelProviderEnum.OpenAI,
ModelProviderEnum.SiliconFlow,
ModelProviderEnum.OpenRouter,
+ ModelProviderEnum.DaoXE,
ModelProviderEnum.Ollama,
ModelProviderEnum.ChatGLM6B,
ModelProviderEnum.XAI,