From 435b4504df6af3f59261e7b1264ff33456f10121 Mon Sep 17 00:00:00 2001 From: kongzi Date: Wed, 15 Jul 2026 17:43:28 +0800 Subject: [PATCH] Add AiOnly provider preset --- .../static/icons/providers/aionly.png | Bin 0 -> 22161 bytes src/shared/models/index.ts | 6 ++ src/shared/providers/definitions/aionly.ts | 87 ++++++++++++++++++ .../providers/definitions/models/aionly.ts | 28 ++++++ src/shared/providers/index.ts | 1 + src/shared/types/provider.ts | 1 + 6 files changed, 123 insertions(+) create mode 100644 src/renderer/static/icons/providers/aionly.png create mode 100644 src/shared/providers/definitions/aionly.ts create mode 100644 src/shared/providers/definitions/models/aionly.ts diff --git a/src/renderer/static/icons/providers/aionly.png b/src/renderer/static/icons/providers/aionly.png new file mode 100644 index 0000000000000000000000000000000000000000..1846c9cf99c8ea3a2f32684a2e19e879d5f04a46 GIT binary patch literal 22161 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≻_DO8HFtp|@ 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 literal 0 HcmV?d00001 diff --git a/src/shared/models/index.ts b/src/shared/models/index.ts index 304c6909a5..f6caa2c308 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.Aionly]: 'AiOnly API', [ModelProviderEnum.Custom]: 'Custom Provider', } @@ -155,6 +156,11 @@ export const AIModelProviderMenuOptionList = [ label: aiProviderNameHash[ModelProviderEnum.ChatGLM6B], disabled: false, }, + { + value: ModelProviderEnum.Aionly, + label: aiProviderNameHash[ModelProviderEnum.Aionly], + disabled: false, + }, // { // value: 'hunyuan', // label: '腾讯混元', diff --git a/src/shared/providers/definitions/aionly.ts b/src/shared/providers/definitions/aionly.ts new file mode 100644 index 0000000000..a15824f320 --- /dev/null +++ b/src/shared/providers/definitions/aionly.ts @@ -0,0 +1,87 @@ +import { ModelProviderEnum, ModelProviderType } from '../../types' +import { defineProvider } from '../registry' +import Aionly from './models/aionly' + +export const aionlyProvider = defineProvider({ + id: ModelProviderEnum.Aionly, + name: 'AiOnly', + type: ModelProviderType.OpenAI, + description: 'AiOnly 多模型中转网关,聚合 Claude/GPT/Gemini/DeepSeek/GLM/Qwen 等主流模型。', + urls: { + website: 'https://api.aionly.com/', + }, + defaultSettings: { + models: [ + { + modelId: 'claude-opus-4-8', + nickname: 'Claude Opus 4.8', + capabilities: ['tool_use'], + contextWindow: 128_000, + }, + { + modelId: 'claude-sonnet-5', + nickname: 'Claude Sonnet 5', + capabilities: ['tool_use'], + contextWindow: 128_000, + }, + { + modelId: 'gpt-5.5', + nickname: 'GPT-5.5', + capabilities: ['tool_use'], + contextWindow: 128_000, + }, + { + modelId: 'gpt-5.4', + nickname: 'GPT-5.4', + capabilities: ['tool_use'], + contextWindow: 128_000, + }, + { + modelId: 'gemini-3.1-pro-preview', + nickname: 'Gemini 3.1 Pro', + capabilities: ['tool_use'], + contextWindow: 128_000, + }, + { + modelId: 'gemini-2.5-pro', + nickname: 'Gemini 2.5 Pro', + capabilities: ['tool_use'], + contextWindow: 128_000, + }, + { + modelId: 'deepseek-v4-pro', + nickname: 'DeepSeek V4 Pro', + capabilities: ['reasoning', 'tool_use'], + contextWindow: 128_000, + }, + { + modelId: 'glm-5.2', + nickname: 'GLM 5.2', + capabilities: ['tool_use'], + contextWindow: 128_000, + }, + { + modelId: 'qwen3.7-plus', + nickname: 'Qwen 3.7 Plus', + capabilities: ['tool_use'], + contextWindow: 128_000, + }, + ], + }, + createModel: (config) => { + return new Aionly( + { + apiKey: config.effectiveApiKey, + model: config.model, + temperature: config.settings.temperature, + topP: config.settings.topP, + maxOutputTokens: config.settings.maxTokens, + stream: config.settings.stream, + }, + config.dependencies + ) + }, + getDisplayName: (modelId, providerSettings) => { + return `AiOnly API (${providerSettings?.models?.find((m) => m.modelId === modelId)?.nickname || modelId})` + }, +}) diff --git a/src/shared/providers/definitions/models/aionly.ts b/src/shared/providers/definitions/models/aionly.ts new file mode 100644 index 0000000000..f1d96ac2e1 --- /dev/null +++ b/src/shared/providers/definitions/models/aionly.ts @@ -0,0 +1,28 @@ +import OpenAICompatible, { type OpenAICompatibleSettings } from '../../../models/openai-compatible' +import type { ModelDependencies } from '../../../types/adapters' + +interface Options extends OpenAICompatibleSettings {} + +export default class Aionly extends OpenAICompatible { + public name = 'AiOnly' + public options: Options + constructor(options: Omit, dependencies: ModelDependencies) { + const apiHost = 'https://api.aionly.com/v1' + super( + { + apiKey: options.apiKey, + apiHost, + model: options.model, + temperature: options.temperature, + topP: options.topP, + maxOutputTokens: options.maxOutputTokens, + stream: options.stream, + }, + dependencies + ) + this.options = { + ...options, + apiHost, + } + } +} diff --git a/src/shared/providers/index.ts b/src/shared/providers/index.ts index 06742110e7..c7ec842faa 100644 --- a/src/shared/providers/index.ts +++ b/src/shared/providers/index.ts @@ -29,6 +29,7 @@ import './definitions/chatglm' import './definitions/github-copilot' import './definitions/bedrock' import './definitions/vercel-ai-gateway' +import './definitions/aionly' import { clearProviderRegistry, defineProvider, diff --git a/src/shared/types/provider.ts b/src/shared/types/provider.ts index 8f12db4f03..4423094072 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', + Aionly = 'aionly', Custom = 'custom', }