瀏覽代碼

feat(core): add china providers batch 3 (7 providers, 302 models from lobe@main)

fanghanjun 6 月之前
父節點
當前提交
c4bb2b4d0b

+ 18 - 1
packages/core/src/__tests__/providers-schema.test.ts

@@ -3,11 +3,17 @@ import { getAllProviders, getProvider } from "../llm/providers/index.js";
 
 describe("providers structural integrity", () => {
   it("每个 provider 必填字段都存在", () => {
+    const gatewayProviders = new Set(["custom", "higress", "newapi"]);
     for (const p of getAllProviders()) {
       expect(p.id).toBeTruthy();
       expect(p.label).toBeTruthy();
       expect(p.api).toMatch(/^(openai-completions|openai-responses|anthropic-messages)$/);
-      expect(p.baseUrl).toBeTruthy();
+      // gateway/anchor provider 允许 baseUrl 为空(由用户填)
+      if (gatewayProviders.has(p.id)) {
+        expect(typeof p.baseUrl).toBe("string");
+      } else {
+        expect(p.baseUrl, `provider=${p.id}`).toBeTruthy();
+      }
     }
   });
 
@@ -69,4 +75,15 @@ describe("providers structural integrity", () => {
       expect(ids).toContain(id);
     }
   });
+
+  it("B3:中国原厂批次 3 全部收录(7 个)", () => {
+    const ids = getAllProviders().map((p) => p.id);
+    for (const id of ["modelscope", "giteeai", "qiniu", "higress", "infiniai", "zeroone", "ai360"]) {
+      expect(ids).toContain(id);
+    }
+  });
+
+  it("B3:higress baseUrl 为空(gateway 占位)", () => {
+    expect(getProvider("higress")?.baseUrl).toBe("");
+  });
 });

+ 34 - 0
packages/core/src/llm/providers/ai360.ts

@@ -0,0 +1,34 @@
+import type { InkosProvider } from "./types.js";
+
+export const AI360: InkosProvider = {
+  id: "ai360",
+  label: "360 智脑",
+  api: "openai-completions",
+  baseUrl: "https://api.360.cn/v1",
+  checkModel: "360gpt2-pro",
+  temperatureRange: [0, 2],
+  defaultTemperature: 0.5,
+  writingTemperature: 1,
+  models: [
+    { id: "360zhinao3-o1.5", displayName: "360Zhinao3 o1.5", maxOutput: 4096, contextWindowTokens: 128000, abilities: { reasoning: true, functionCall: true, search: true }, enabled: true },
+    { id: "360zhinao2-o1.5", displayName: "360Zhinao2 o1.5", maxOutput: 4096, contextWindowTokens: 128000, abilities: { reasoning: true, functionCall: true, search: true } },
+    { id: "360zhinao2-o1", displayName: "360Zhinao2 o1", maxOutput: 4096, contextWindowTokens: 128000, abilities: { reasoning: true } },
+    { id: "360zhinao-pro-32k-thinking-vision", displayName: "360Zhinao Pro 32K Thinking Vision", maxOutput: 4096, contextWindowTokens: 32000, abilities: { vision: true }, enabled: true },
+    { id: "360zhinao-turbo", displayName: "360Zhinao Turbo", maxOutput: 4096, contextWindowTokens: 32000, enabled: true },
+    { id: "360zhinao-turbo-qwen-plus", displayName: "360Zhinao Turbo Qwen Plus", maxOutput: 4096, contextWindowTokens: 32000 },
+    { id: "360gpt2-o1", displayName: "360GPT2 o1", maxOutput: 4096, contextWindowTokens: 128000, abilities: { reasoning: true } },
+    { id: "360gpt2-pro", displayName: "360GPT2 Pro", maxOutput: 4096, contextWindowTokens: 32000, abilities: { functionCall: true, search: true } },
+    { id: "360gpt-pro", displayName: "360GPT Pro", maxOutput: 4096, contextWindowTokens: 32000, abilities: { functionCall: true, search: true } },
+    { id: "360gpt-pro-trans", displayName: "360GPT Pro Trans", maxOutput: 4096, contextWindowTokens: 4096 },
+    { id: "360gpt-turbo", displayName: "360GPT Turbo", maxOutput: 4096, contextWindowTokens: 32000 },
+    { id: "deepseek-v3.2", displayName: "DeepSeek V3.2", maxOutput: 4096, contextWindowTokens: 65536, abilities: { functionCall: true } },
+    { id: "paratera/deepseek-v3.2", displayName: "DeepSeek V3.2 (Paratera)", maxOutput: 4096, contextWindowTokens: 4096, abilities: { functionCall: true } },
+    { id: "sophnet/deepseek-v3.2", displayName: "DeepSeek V3.2 (SophNet)", maxOutput: 4096, contextWindowTokens: 4096, abilities: { functionCall: true } },
+    { id: "deepseek-v3.2-speciale", displayName: "DeepSeek V3.2 Speciale", maxOutput: 4096, contextWindowTokens: 65536 },
+    { id: "360/deepseek-r1", displayName: "DeepSeek R1", maxOutput: 4096, contextWindowTokens: 65536, abilities: { reasoning: true } },
+    { id: "volcengine/doubao-seed-2-0-lite", displayName: "Doubao Seed 2.0 Lite", maxOutput: 4096, contextWindowTokens: 32000, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "volcengine/doubao-seed-2-0-mini", displayName: "Doubao Seed 2.0 Mini", maxOutput: 4096, contextWindowTokens: 32000, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "volcengine/doubao-seed-2-0-pro", displayName: "Doubao Seed 2.0 Pro", maxOutput: 4096, contextWindowTokens: 32000, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "volcengine/doubao-seed-2-0-code", displayName: "Doubao Seed 2.0 Code", maxOutput: 4096, contextWindowTokens: 32000, abilities: { reasoning: true, vision: true, functionCall: true } },
+  ],
+};

+ 33 - 0
packages/core/src/llm/providers/giteeai.ts

@@ -0,0 +1,33 @@
+import type { InkosProvider } from "./types.js";
+
+export const GITEEAI: InkosProvider = {
+  id: "giteeai",
+  label: "Gitee AI",
+  api: "openai-completions",
+  baseUrl: "https://ai.gitee.com/v1",
+  checkModel: "Qwen2.5-72B-Instruct",
+  temperatureRange: [0, 2],
+  defaultTemperature: 0.7,
+  writingTemperature: 1,
+  models: [
+    { id: "DeepSeek-R1-Distill-Qwen-1.5B", displayName: "DeepSeek R1 Distill Qwen 1.5B", maxOutput: 4096, contextWindowTokens: 32000, abilities: { reasoning: true }, enabled: true },
+    { id: "DeepSeek-R1-Distill-Qwen-7B", displayName: "DeepSeek R1 Distill Qwen 7B", maxOutput: 4096, contextWindowTokens: 32000, abilities: { reasoning: true }, enabled: true },
+    { id: "DeepSeek-R1-Distill-Qwen-14B", displayName: "DeepSeek R1 Distill Qwen 14B", maxOutput: 4096, contextWindowTokens: 32000, abilities: { reasoning: true }, enabled: true },
+    { id: "DeepSeek-R1-Distill-Qwen-32B", displayName: "DeepSeek R1 Distill Qwen 32B", maxOutput: 4096, contextWindowTokens: 32000, abilities: { reasoning: true }, enabled: true },
+    { id: "QwQ-32B-Preview", displayName: "QwQ 32B Preview", maxOutput: 4096, contextWindowTokens: 32000, abilities: { reasoning: true }, enabled: true },
+    { id: "Qwen2.5-72B-Instruct", displayName: "Qwen2.5 72B Instruct", maxOutput: 4096, contextWindowTokens: 16000, abilities: { functionCall: true }, enabled: true },
+    { id: "Qwen2.5-32B-Instruct", displayName: "Qwen2.5 32B Instruct", maxOutput: 4096, contextWindowTokens: 32000, enabled: true },
+    { id: "Qwen2.5-14B-Instruct", displayName: "Qwen2.5 14B Instruct", maxOutput: 4096, contextWindowTokens: 24000, enabled: true },
+    { id: "Qwen2.5-7B-Instruct", displayName: "Qwen2.5 7B Instruct", maxOutput: 4096, contextWindowTokens: 32000, abilities: { functionCall: true }, enabled: true },
+    { id: "Qwen2-72B-Instruct", displayName: "Qwen2 72B Instruct", maxOutput: 4096, contextWindowTokens: 32000 },
+    { id: "Qwen2-7B-Instruct", displayName: "Qwen2 7B Instruct", maxOutput: 4096, contextWindowTokens: 24000 },
+    { id: "Qwen2.5-Coder-32B-Instruct", displayName: "Qwen2.5 Coder 32B Instruct", maxOutput: 4096, contextWindowTokens: 32000, enabled: true },
+    { id: "Qwen2.5-Coder-14B-Instruct", displayName: "Qwen2.5 Coder 14B Instruct", maxOutput: 4096, contextWindowTokens: 24000, enabled: true },
+    { id: "Qwen2-VL-72B", displayName: "Qwen2 VL 72B", maxOutput: 4096, contextWindowTokens: 32000, abilities: { vision: true }, enabled: true },
+    { id: "InternVL2.5-26B", displayName: "InternVL2.5 26B", maxOutput: 4096, contextWindowTokens: 32000, abilities: { vision: true }, enabled: true },
+    { id: "InternVL2-8B", displayName: "InternVL2 8B", maxOutput: 4096, contextWindowTokens: 32000, abilities: { vision: true }, enabled: true },
+    { id: "glm-4-9b-chat", displayName: "GLM4 9B Chat", maxOutput: 4096, contextWindowTokens: 32000, enabled: true },
+    { id: "deepseek-coder-33B-instruct", displayName: "DeepSeek Coder 33B Instruct", maxOutput: 4096, contextWindowTokens: 8000, enabled: true },
+    { id: "codegeex4-all-9b", displayName: "CodeGeeX4 All 9B", maxOutput: 4096, contextWindowTokens: 32000, enabled: true },
+  ],
+};

+ 193 - 0
packages/core/src/llm/providers/higress.ts

@@ -0,0 +1,193 @@
+import type { InkosProvider } from "./types.js";
+
+export const HIGRESS: InkosProvider = {
+  id: "higress",
+  label: "Higress (网关)",
+  api: "openai-completions",
+  baseUrl: "",
+  models: [
+    { id: "qwen-turbo", displayName: "Qwen Turbo", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true }, enabled: true },
+    { id: "qwen-plus", displayName: "Qwen Plus", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true }, enabled: true },
+    { id: "qwen-max", displayName: "Qwen Max", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true }, enabled: true },
+    { id: "qwen-long", displayName: "Qwen Long", maxOutput: 4096, contextWindowTokens: 1000000 },
+    { id: "qwen-vl-plus-latest", displayName: "Qwen VL Plus", maxOutput: 4096, contextWindowTokens: 32000, abilities: { vision: true }, enabled: true },
+    { id: "qwen-vl-max-latest", displayName: "Qwen VL Max", maxOutput: 4096, contextWindowTokens: 32000, abilities: { vision: true }, enabled: true },
+    { id: "qwen-math-turbo-latest", displayName: "Qwen Math Turbo", maxOutput: 4096, contextWindowTokens: 4096 },
+    { id: "qwen-math-plus-latest", displayName: "Qwen Math Plus", maxOutput: 4096, contextWindowTokens: 4096 },
+    { id: "qwen-coder-turbo-latest", displayName: "Qwen Coder Turbo", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "qwen2.5-7b-instruct", displayName: "Qwen2.5 7B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "qwen2.5-14b-instruct", displayName: "Qwen2.5 14B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "qwen2.5-32b-instruct", displayName: "Qwen2.5 32B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "qwen2.5-72b-instruct", displayName: "Qwen2.5 72B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "qwen2.5-math-1.5b-instruct", displayName: "Qwen2.5 Math 1.5B", maxOutput: 4096, contextWindowTokens: 4096 },
+    { id: "qwen2.5-math-7b-instruct", displayName: "Qwen2.5 Math 7B", maxOutput: 4096, contextWindowTokens: 4096 },
+    { id: "qwen2.5-math-72b-instruct", displayName: "Qwen2.5 Math 72B", maxOutput: 4096, contextWindowTokens: 4096 },
+    { id: "qwen2.5-coder-1.5b-instruct", displayName: "Qwen2.5 Coder 1.5B", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "qwen2.5-coder-7b-instruct", displayName: "Qwen2.5 Coder 7B", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "qwen-vl-v1", displayName: "Qwen VL", maxOutput: 4096, contextWindowTokens: 8000, abilities: { vision: true } },
+    { id: "qwen-vl-chat-v1", displayName: "Qwen VL Chat", maxOutput: 4096, contextWindowTokens: 8000, abilities: { vision: true } },
+    { id: "moonshot-v1-8k", displayName: "Moonshot V1 8K", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true }, enabled: true },
+    { id: "moonshot-v1-32k", displayName: "Moonshot V1 32K", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true }, enabled: true },
+    { id: "moonshot-v1-128k", displayName: "Moonshot V1 128K", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true }, enabled: true },
+    { id: "Baichuan4", displayName: "Baichuan 4", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true }, enabled: true },
+    { id: "Baichuan3-Turbo", displayName: "Baichuan 3 Turbo", maxOutput: 8192, contextWindowTokens: 32768, abilities: { functionCall: true }, enabled: true },
+    { id: "Baichuan3-Turbo-128k", displayName: "Baichuan 3 Turbo 128k", maxOutput: 4096, contextWindowTokens: 128000, enabled: true },
+    { id: "Baichuan2-Turbo", displayName: "Baichuan 2 Turbo", maxOutput: 8192, contextWindowTokens: 32768 },
+    { id: "yi-lightning", displayName: "Yi Lightning", maxOutput: 4096, contextWindowTokens: 16384, enabled: true },
+    { id: "yi-spark", displayName: "Yi Spark", maxOutput: 4096, contextWindowTokens: 16384, enabled: true },
+    { id: "yi-medium", displayName: "Yi Medium", maxOutput: 4096, contextWindowTokens: 16384, enabled: true },
+    { id: "yi-medium-200k", displayName: "Yi Medium 200K", maxOutput: 4096, contextWindowTokens: 200000, enabled: true },
+    { id: "yi-large-turbo", displayName: "Yi Large Turbo", maxOutput: 4096, contextWindowTokens: 16384, enabled: true },
+    { id: "yi-large-rag", displayName: "Yi Large RAG", maxOutput: 4096, contextWindowTokens: 16384, enabled: true },
+    { id: "yi-large-fc", displayName: "Yi Large FC", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true }, enabled: true },
+    { id: "yi-large", displayName: "Yi Large", maxOutput: 4096, contextWindowTokens: 32768 },
+    { id: "yi-vision", displayName: "Yi Vision", maxOutput: 4096, contextWindowTokens: 16384, abilities: { vision: true }, enabled: true },
+    { id: "yi-large-preview", displayName: "Yi Large Preview", maxOutput: 4096, contextWindowTokens: 16384 },
+    { id: "yi-lightning-lite", displayName: "Yi Lightning Lite", maxOutput: 4096, contextWindowTokens: 16384 },
+    { id: "glm-4-flash", displayName: "GLM-4-Flash", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true }, enabled: true },
+    { id: "glm-4-flashx", displayName: "GLM-4-FlashX", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true }, enabled: true },
+    { id: "glm-4-long", displayName: "GLM-4-Long", maxOutput: 4096, contextWindowTokens: 1024000, abilities: { functionCall: true } },
+    { id: "glm-4-air", displayName: "GLM-4-Air", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true }, enabled: true },
+    { id: "glm-4-airx", displayName: "GLM-4-AirX", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true }, enabled: true },
+    { id: "glm-4-alltools", displayName: "GLM-4-AllTools", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true } },
+    { id: "glm-4-plus", displayName: "GLM-4-Plus", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true }, enabled: true },
+    { id: "glm-4-0520", displayName: "GLM-4-0520", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true } },
+    { id: "glm-4", displayName: "GLM-4", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true } },
+    { id: "glm-4v-plus", displayName: "GLM-4V-Plus", maxOutput: 4096, contextWindowTokens: 8192, abilities: { vision: true }, enabled: true },
+    { id: "charglm-3", displayName: "CharGLM-3", maxOutput: 4096, contextWindowTokens: 4096 },
+    { id: "emohaa", displayName: "Emohaa", maxOutput: 4096, contextWindowTokens: 8192 },
+    { id: "360gpt2-pro", displayName: "360GPT2 Pro", maxOutput: 7000, contextWindowTokens: 8192, enabled: true },
+    { id: "360gpt-pro", displayName: "360GPT Pro", maxOutput: 7000, contextWindowTokens: 8192, abilities: { functionCall: true }, enabled: true },
+    { id: "360gpt-turbo", displayName: "360GPT Turbo", maxOutput: 7000, contextWindowTokens: 8192, enabled: true },
+    { id: "360gpt-turbo-responsibility-8k", displayName: "360GPT Turbo Responsibility 8K", maxOutput: 2048, contextWindowTokens: 8192, enabled: true },
+    { id: "ERNIE-3.5-8K", displayName: "ERNIE 3.5 8K", maxOutput: 4096, contextWindowTokens: 8192, enabled: true },
+    { id: "ERNIE-3.5-8K-Preview", displayName: "ERNIE 3.5 8K Preview", maxOutput: 4096, contextWindowTokens: 8192 },
+    { id: "ERNIE-3.5-128K", displayName: "ERNIE 3.5 128K", maxOutput: 4096, contextWindowTokens: 128000, enabled: true },
+    { id: "ERNIE-4.0-8K-Latest", displayName: "ERNIE 4.0 8K", maxOutput: 4096, contextWindowTokens: 8192, enabled: true },
+    { id: "ERNIE-4.0-8K-Preview", displayName: "ERNIE 4.0 8K Preview", maxOutput: 4096, contextWindowTokens: 8192 },
+    { id: "ERNIE-4.0-Turbo-8K-Latest", displayName: "ERNIE 4.0 Turbo 8K", maxOutput: 4096, contextWindowTokens: 8192, enabled: true },
+    { id: "ERNIE-4.0-Turbo-8K-Preview", displayName: "ERNIE 4.0 Turbo 8K Preview", maxOutput: 4096, contextWindowTokens: 8192 },
+    { id: "ERNIE-Lite-Pro-128K", displayName: "ERNIE Lite Pro 128K", maxOutput: 4096, contextWindowTokens: 128000, enabled: true },
+    { id: "ERNIE-Speed-Pro-128K", displayName: "ERNIE Speed Pro 128K", maxOutput: 4096, contextWindowTokens: 128000, enabled: true },
+    { id: "ERNIE-Speed-128K", displayName: "ERNIE Speed 128K", maxOutput: 4096, contextWindowTokens: 128000 },
+    { id: "ERNIE-Character-8K", displayName: "ERNIE Character 8K", maxOutput: 4096, contextWindowTokens: 8192 },
+    { id: "hunyuan-lite", displayName: "Hunyuan Lite", maxOutput: 6000, contextWindowTokens: 256000, enabled: true },
+    { id: "hunyuan-standard", displayName: "Hunyuan Standard", maxOutput: 2000, contextWindowTokens: 32000, enabled: true },
+    { id: "hunyuan-standard-256K", displayName: "Hunyuan Standard 256K", maxOutput: 6000, contextWindowTokens: 256000, enabled: true },
+    { id: "hunyuan-turbo", displayName: "Hunyuan Turbo", maxOutput: 4000, contextWindowTokens: 32000, abilities: { functionCall: true }, enabled: true },
+    { id: "hunyuan-pro", displayName: "Hunyuan Pro", maxOutput: 4000, contextWindowTokens: 32000, abilities: { functionCall: true }, enabled: true },
+    { id: "hunyuan-vision", displayName: "Hunyuan Vision", maxOutput: 4000, contextWindowTokens: 8000, abilities: { vision: true }, enabled: true },
+    { id: "hunyuan-code", displayName: "Hunyuan Code", maxOutput: 4000, contextWindowTokens: 8000 },
+    { id: "hunyuan-functioncall", displayName: "Hunyuan FunctionCall", maxOutput: 4000, contextWindowTokens: 32000, abilities: { functionCall: true } },
+    { id: "hunyuan-role", displayName: "Hunyuan Role", maxOutput: 4000, contextWindowTokens: 8000 },
+    { id: "step-1-flash", displayName: "Step 1 Flash", maxOutput: 4096, contextWindowTokens: 8000, abilities: { functionCall: true }, enabled: true },
+    { id: "step-1-8k", displayName: "Step 1 8K", maxOutput: 4096, contextWindowTokens: 8000, abilities: { functionCall: true }, enabled: true },
+    { id: "step-1-32k", displayName: "Step 1 32K", maxOutput: 4096, contextWindowTokens: 32000, abilities: { functionCall: true }, enabled: true },
+    { id: "step-1-128k", displayName: "Step 1 128K", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true }, enabled: true },
+    { id: "step-1-256k", displayName: "Step 1 256K", maxOutput: 4096, contextWindowTokens: 256000, abilities: { functionCall: true } },
+    { id: "step-2-16k", displayName: "Step 2 16K", maxOutput: 4096, contextWindowTokens: 16000, abilities: { functionCall: true }, enabled: true },
+    { id: "step-1v-8k", displayName: "Step 1V 8K", maxOutput: 4096, contextWindowTokens: 8000, abilities: { vision: true, functionCall: true }, enabled: true },
+    { id: "step-1v-32k", displayName: "Step 1V 32K", maxOutput: 4096, contextWindowTokens: 32000, abilities: { vision: true, functionCall: true }, enabled: true },
+    { id: "step-1.5v-mini", displayName: "Step 1.5V Mini", maxOutput: 4096, contextWindowTokens: 32000, abilities: { vision: true }, enabled: true },
+    { id: "lite", displayName: "Spark Lite", maxOutput: 4096, contextWindowTokens: 8192, enabled: true },
+    { id: "generalv3", displayName: "Spark Pro", maxOutput: 8192, contextWindowTokens: 8192, enabled: true },
+    { id: "pro-128k", displayName: "Spark Pro 128K", maxOutput: 4096, contextWindowTokens: 131072, enabled: true },
+    { id: "generalv3.5", displayName: "Spark Max", maxOutput: 8192, contextWindowTokens: 8192, enabled: true },
+    { id: "max-32k", displayName: "Spark Max 32K", maxOutput: 8192, contextWindowTokens: 32768, enabled: true },
+    { id: "4.0Ultra", displayName: "Spark 4.0 Ultra", maxOutput: 8192, contextWindowTokens: 8192, enabled: true },
+    { id: "o1-mini", displayName: "OpenAI o1-mini", maxOutput: 65536, contextWindowTokens: 128000, enabled: true, releasedAt: "2024-09-12" },
+    { id: "o1-preview", displayName: "OpenAI o1-preview", maxOutput: 32768, contextWindowTokens: 128000, enabled: true, releasedAt: "2024-09-12" },
+    { id: "gpt-4o-mini", displayName: "GPT-4o mini", maxOutput: 16385, contextWindowTokens: 128000, abilities: { vision: true, functionCall: true }, enabled: true },
+    { id: "gpt-4o", displayName: "GPT-4o", maxOutput: 4096, contextWindowTokens: 128000, abilities: { vision: true, functionCall: true }, enabled: true },
+    { id: "gpt-4o-2024-08-06", displayName: "GPT-4o 0806", maxOutput: 4096, contextWindowTokens: 128000, abilities: { vision: true, functionCall: true } },
+    { id: "gpt-4o-2024-05-13", displayName: "GPT-4o 0513", maxOutput: 4096, contextWindowTokens: 128000, abilities: { vision: true, functionCall: true } },
+    { id: "chatgpt-4o-latest", displayName: "ChatGPT-4o", maxOutput: 4096, contextWindowTokens: 128000, abilities: { vision: true }, enabled: true },
+    { id: "gpt-4-turbo", displayName: "GPT-4 Turbo", maxOutput: 4096, contextWindowTokens: 128000, abilities: { vision: true, functionCall: true } },
+    { id: "gpt-4-turbo-2024-04-09", displayName: "GPT-4 Turbo Vision 0409", maxOutput: 4096, contextWindowTokens: 128000, abilities: { vision: true, functionCall: true } },
+    { id: "gpt-4-turbo-preview", displayName: "GPT-4 Turbo Preview", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true } },
+    { id: "gpt-4-0125-preview", displayName: "GPT-4 Turbo Preview 0125", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true } },
+    { id: "gpt-4-1106-preview", displayName: "GPT-4 Turbo Preview 1106", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true } },
+    { id: "gpt-4", displayName: "GPT-4", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true } },
+    { id: "gpt-4-0613", displayName: "GPT-4 0613", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true } },
+    { id: "gpt-4-32k", displayName: "GPT-4 32K", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "gpt-4-32k-0613", displayName: "GPT-4 32K 0613", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "gpt-3.5-turbo", displayName: "GPT-3.5 Turbo", maxOutput: 4096, contextWindowTokens: 16385, abilities: { functionCall: true } },
+    { id: "gpt-3.5-turbo-0125", displayName: "GPT-3.5 Turbo 0125", maxOutput: 4096, contextWindowTokens: 16385, abilities: { functionCall: true } },
+    { id: "gpt-3.5-turbo-1106", displayName: "GPT-3.5 Turbo 1106", maxOutput: 4096, contextWindowTokens: 16385, abilities: { functionCall: true } },
+    { id: "gpt-3.5-turbo-instruct", displayName: "GPT-3.5 Turbo Instruct", maxOutput: 4096, contextWindowTokens: 4096 },
+    { id: "gpt-35-turbo", displayName: "GPT 3.5 Turbo", maxOutput: 4096, contextWindowTokens: 16385, abilities: { functionCall: true }, enabled: true },
+    { id: "gpt-35-turbo-16k", displayName: "GPT 3.5 Turbo", maxOutput: 4096, contextWindowTokens: 16384, abilities: { functionCall: true } },
+    { id: "gpt-4-vision-preview", displayName: "GPT 4 Turbo with Vision Preview", maxOutput: 4096, contextWindowTokens: 128000, abilities: { vision: true } },
+    { id: "ai21-jamba-1.5-mini", displayName: "AI21 Jamba 1.5 Mini", maxOutput: 4096, contextWindowTokens: 262144, abilities: { functionCall: true } },
+    { id: "ai21-jamba-1.5-large", displayName: "AI21 Jamba 1.5 Large", maxOutput: 4096, contextWindowTokens: 262144, abilities: { functionCall: true } },
+    { id: "cohere-command-r", displayName: "Cohere Command R", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "cohere-command-r-plus", displayName: "Cohere Command R+", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "mistral-nemo", displayName: "Mistral Nemo", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "mistral-small", displayName: "Mistral Small", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "mistral-large", displayName: "Mistral Large", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "llama-3.2-11b-vision-instruct", displayName: "Llama 3.2 11B Vision", maxOutput: 4096, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "llama-3.2-90b-vision-instruct", displayName: "Llama 3.2 90B Vision", maxOutput: 4096, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "meta-llama-3.1-8b-instruct", displayName: "Meta Llama 3.1 8B", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "meta-llama-3.1-70b-instruct", displayName: "Meta Llama 3.1 70B", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "meta-llama-3.1-405b-instruct", displayName: "Meta Llama 3.1 405B", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "meta-llama-3-8b-instruct", displayName: "Meta Llama 3 8B", maxOutput: 4096, contextWindowTokens: 8192 },
+    { id: "meta-llama-3-70b-instruct", displayName: "Meta Llama 3 70B", maxOutput: 4096, contextWindowTokens: 8192 },
+    { id: "Phi-3.5-mini-instruct", displayName: "Phi-3.5-mini 128K", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "Phi-3.5-vision-instrust", displayName: "Phi-3.5-vision 128K", maxOutput: 4096, contextWindowTokens: 131072, abilities: { vision: true } },
+    { id: "Phi-3-mini-4k-instruct", displayName: "Phi-3-mini 4K", maxOutput: 4096, contextWindowTokens: 4096 },
+    { id: "Phi-3-mini-128k-instruct", displayName: "Phi-3-mini 128K", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "Phi-3-small-8k-instruct", displayName: "Phi-3-small 8K", maxOutput: 4096, contextWindowTokens: 8192 },
+    { id: "Phi-3-small-128k-instruct", displayName: "Phi-3-small 128K", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "Phi-3-medium-4k-instruct", displayName: "Phi-3-medium 4K", maxOutput: 4096, contextWindowTokens: 4096 },
+    { id: "Phi-3-medium-128k-instruct", displayName: "Phi-3-medium 128K", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "llama-3.2-11b-vision-preview", displayName: "Llama 3.2 11B Vision (Preview)", maxOutput: 8192, contextWindowTokens: 8192, abilities: { vision: true }, enabled: true },
+    { id: "llama-3.2-90b-vision-preview", displayName: "Llama 3.2 90B Vision (Preview)", maxOutput: 8192, contextWindowTokens: 8192, abilities: { vision: true }, enabled: true },
+    { id: "llama-3.1-8b-instant", displayName: "Llama 3.1 8B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { functionCall: true }, enabled: true },
+    { id: "llama-3.1-70b-versatile", displayName: "Llama 3.1 70B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { functionCall: true }, enabled: true },
+    { id: "llama3-groq-8b-8192-tool-use-preview", displayName: "Llama 3 Groq 8B Tool Use (Preview)", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true } },
+    { id: "llama3-groq-70b-8192-tool-use-preview", displayName: "Llama 3 Groq 70B Tool Use (Preview)", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true } },
+    { id: "llama3-8b-8192", displayName: "Meta Llama 3 8B", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true } },
+    { id: "llama3-70b-8192", displayName: "Meta Llama 3 70B", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true } },
+    { id: "gemma2-9b-it", displayName: "Gemma 2 9B", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true }, enabled: true },
+    { id: "gemma-7b-it", displayName: "Gemma 7B", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true } },
+    { id: "mixtral-8x7b-32768", displayName: "Mixtral 8x7B", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "llava-v1.5-7b-4096-preview", displayName: "LLaVA 1.5 7B", maxOutput: 4096, contextWindowTokens: 4096, abilities: { vision: true } },
+    { id: "deepseek-chat", displayName: "DeepSeek V2.5", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true }, enabled: true, releasedAt: "2024-09-05" },
+    { id: "claude-3-5-haiku-20241022", displayName: "Claude 3.5 Haiku", maxOutput: 8192, contextWindowTokens: 200000, abilities: { functionCall: true }, enabled: true, releasedAt: "2024-11-05" },
+    { id: "claude-3-haiku-20240307", displayName: "Claude 3 Haiku", maxOutput: 4096, contextWindowTokens: 200000, abilities: { vision: true, functionCall: true }, releasedAt: "2024-03-07" },
+    { id: "claude-3-sonnet-20240229", displayName: "Claude 3 Sonnet", maxOutput: 4096, contextWindowTokens: 200000, abilities: { vision: true, functionCall: true }, releasedAt: "2024-02-29" },
+    { id: "claude-3-opus-20240229", displayName: "Claude 3 Opus", maxOutput: 4096, contextWindowTokens: 200000, abilities: { vision: true, functionCall: true }, enabled: true, releasedAt: "2024-02-29" },
+    { id: "claude-2.1", displayName: "Claude 2.1", maxOutput: 4096, contextWindowTokens: 200000, releasedAt: "2023-11-21" },
+    { id: "claude-2.0", displayName: "Claude 2.0", maxOutput: 4096, contextWindowTokens: 100000, releasedAt: "2023-07-11" },
+    { id: "gemini-1.5-flash-latest", displayName: "Gemini 1.5 Flash", maxOutput: 8192, contextWindowTokens: 1008192, abilities: { vision: true, functionCall: true }, enabled: true },
+    { id: "gemini-1.5-flash-002", displayName: "Gemini 1.5 Flash 002", maxOutput: 8192, contextWindowTokens: 1008192, abilities: { vision: true, functionCall: true }, enabled: true, releasedAt: "2024-09-25" },
+    { id: "gemini-1.5-flash-001", displayName: "Gemini 1.5 Flash 001", maxOutput: 8192, contextWindowTokens: 1008192, abilities: { vision: true, functionCall: true } },
+    { id: "gemini-1.5-flash-exp-0827", displayName: "Gemini 1.5 Flash 0827", maxOutput: 8192, contextWindowTokens: 1008192, abilities: { vision: true, functionCall: true }, releasedAt: "2024-08-27" },
+    { id: "gemini-1.5-flash-8b", displayName: "Gemini 1.5 Flash 8B", maxOutput: 8192, contextWindowTokens: 1008192, abilities: { vision: true, functionCall: true }, enabled: true, releasedAt: "2024-10-03" },
+    { id: "gemini-1.5-flash-8b-exp-0924", displayName: "Gemini 1.5 Flash 8B 0924", maxOutput: 8192, contextWindowTokens: 1008192, abilities: { vision: true, functionCall: true }, releasedAt: "2024-09-24" },
+    { id: "gemini-1.5-pro-latest", displayName: "Gemini 1.5 Pro", maxOutput: 8192, contextWindowTokens: 2008192, abilities: { vision: true, functionCall: true }, enabled: true, releasedAt: "2024-02-15" },
+    { id: "gemini-1.5-pro-002", displayName: "Gemini 1.5 Pro 002", maxOutput: 8192, contextWindowTokens: 2008192, abilities: { vision: true, functionCall: true }, enabled: true, releasedAt: "2024-09-24" },
+    { id: "gemini-1.5-pro-001", displayName: "Gemini 1.5 Pro 001", maxOutput: 8192, contextWindowTokens: 2008192, abilities: { vision: true, functionCall: true }, releasedAt: "2024-02-15" },
+    { id: "gemini-1.5-pro-exp-0827", displayName: "Gemini 1.5 Pro 0827", maxOutput: 8192, contextWindowTokens: 2008192, abilities: { vision: true, functionCall: true }, releasedAt: "2024-08-27" },
+    { id: "gemini-1.5-pro-exp-0801", displayName: "Gemini 1.5 Pro 0801", maxOutput: 8192, contextWindowTokens: 2008192, abilities: { vision: true, functionCall: true }, releasedAt: "2024-08-01" },
+    { id: "gemini-1.0-pro-latest", displayName: "Gemini 1.0 Pro", maxOutput: 2048, contextWindowTokens: 32768, releasedAt: "2023-12-06" },
+    { id: "gemini-1.0-pro-001", displayName: "Gemini 1.0 Pro 001 (Tuning)", maxOutput: 2048, contextWindowTokens: 32768, abilities: { functionCall: true }, releasedAt: "2023-12-06" },
+    { id: "gemini-1.0-pro-002", displayName: "Gemini 1.0 Pro 002 (Tuning)", maxOutput: 2048, contextWindowTokens: 32768, releasedAt: "2023-12-06" },
+    { id: "open-mistral-nemo", displayName: "Mistral Nemo", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true }, enabled: true },
+    { id: "mistral-small-latest", displayName: "Mistral Small", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true }, enabled: true },
+    { id: "mistral-large-latest", displayName: "Mistral Large", maxOutput: 4096, contextWindowTokens: 128000, abilities: { functionCall: true }, enabled: true },
+    { id: "codestral-latest", displayName: "Codestral", maxOutput: 4096, contextWindowTokens: 32768 },
+    { id: "pixtral-12b-2409", displayName: "Pixtral 12B", maxOutput: 4096, contextWindowTokens: 128000, abilities: { vision: true }, enabled: true },
+    { id: "ministral-3b-latest", displayName: "Ministral 3B", maxOutput: 4096, contextWindowTokens: 128000 },
+    { id: "ministral-8b-latest", displayName: "Ministral 8B", maxOutput: 4096, contextWindowTokens: 128000 },
+    { id: "open-mistral-7b", displayName: "Mistral 7B", maxOutput: 4096, contextWindowTokens: 32768 },
+    { id: "open-mixtral-8x7b", displayName: "Mixtral 8x7B", maxOutput: 4096, contextWindowTokens: 32768 },
+    { id: "open-mixtral-8x22b", displayName: "Mixtral 8x22B", maxOutput: 4096, contextWindowTokens: 65536, abilities: { functionCall: true } },
+    { id: "open-codestral-mamba", displayName: "Codestral Mamba", maxOutput: 4096, contextWindowTokens: 256000 },
+    { id: "abab6.5s-chat", displayName: "abab6.5s", maxOutput: 4096, contextWindowTokens: 245760, abilities: { functionCall: true }, enabled: true },
+    { id: "abab6.5g-chat", displayName: "abab6.5g", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true }, enabled: true },
+    { id: "abab6.5t-chat", displayName: "abab6.5t", maxOutput: 4096, contextWindowTokens: 8192, abilities: { functionCall: true }, enabled: true },
+    { id: "abab5.5-chat", displayName: "abab5.5", maxOutput: 4096, contextWindowTokens: 16384 },
+    { id: "abab5.5s-chat", displayName: "abab5.5s", maxOutput: 4096, contextWindowTokens: 8192 },
+  ],
+};

+ 9 - 0
packages/core/src/llm/providers/index.ts

@@ -23,6 +23,14 @@ import { TENCENTCLOUD } from "./tencentcloud.js";
 import { XIAOMI_MIMO } from "./xiaomimimo.js";
 import { LONGCAT } from "./longcat.js";
 import { INTERNLM } from "./internlm.js";
+// B3
+import { MODELSCOPE } from "./modelscope.js";
+import { GITEEAI } from "./giteeai.js";
+import { QINIU } from "./qiniu.js";
+import { HIGRESS } from "./higress.js";
+import { INFINIAI } from "./infiniai.js";
+import { ZEROONE } from "./zeroone.js";
+import { AI360 } from "./ai360.js";
 
 export type { InkosProvider, InkosModel, ApiProtocol } from "./types.js";
 
@@ -34,6 +42,7 @@ const ALL_PROVIDERS: readonly InkosProvider[] = [
   ANTHROPIC, OPENAI, GOOGLE, DEEPSEEK, QWEN, MINIMAX,
   MOONSHOT, ZHIPU, SILICONCLOUD, PPIO, BAILIAN, VOLCENGINE, HUNYUAN, BAICHUAN, STEPFUN, WENXIN,
   SPARK, SENSENOVA, TENCENTCLOUD, XIAOMI_MIMO, LONGCAT, INTERNLM,
+  MODELSCOPE, GITEEAI, QINIU, HIGRESS, INFINIAI, ZEROONE, AI360,
 ];
 
 const PROVIDERS_BY_ID: Map<string, InkosProvider> = new Map(

+ 64 - 0
packages/core/src/llm/providers/infiniai.ts

@@ -0,0 +1,64 @@
+import type { InkosProvider } from "./types.js";
+
+export const INFINIAI: InkosProvider = {
+  id: "infiniai",
+  label: "无问芯穹 InfiniAI",
+  api: "openai-completions",
+  baseUrl: "https://cloud.infini-ai.com/maas/v1",
+  checkModel: "qwen2.5-72b-instruct",
+  temperatureRange: [0, 2],
+  defaultTemperature: 0.7,
+  writingTemperature: 1,
+  models: [
+    { id: "minimax-m2.7", displayName: "MiniMax M2.7", maxOutput: 4096, contextWindowTokens: 204800, abilities: { reasoning: true, functionCall: true }, enabled: true, releasedAt: "2026-03-17" },
+    { id: "deepseek-v3.2", displayName: "DeepSeek V3.2", maxOutput: 8192, contextWindowTokens: 131072, abilities: { functionCall: true }, releasedAt: "2025-12-02" },
+    { id: "deepseek-v3.2-thinking", displayName: "DeepSeek V3.2 Thinking", maxOutput: 65536, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, enabled: true, releasedAt: "2025-12-02" },
+    { id: "glm-4.6v", displayName: "GLM-4.6V", maxOutput: 4096, contextWindowTokens: 131072, abilities: { vision: true, functionCall: true } },
+    { id: "glm-5", displayName: "GLM-5", maxOutput: 4096, contextWindowTokens: 198000, abilities: { reasoning: true, functionCall: true }, enabled: true, releasedAt: "2026-02-13" },
+    { id: "minimax-m2.5", displayName: "MiniMax M2.5", maxOutput: 4096, contextWindowTokens: 204800, abilities: { reasoning: true, functionCall: true }, releasedAt: "2026-02-13" },
+    { id: "kimi-k2-thinking", displayName: "Kimi K2 Thinking", maxOutput: 32768, contextWindowTokens: 262144, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-11-07" },
+    { id: "deepseek-ocr", displayName: "DeepSeek OCR", maxOutput: 8192, contextWindowTokens: 8192, abilities: { vision: true }, releasedAt: "2025-10-20" },
+    { id: "minimax-m2.1", displayName: "MiniMax M2.1", maxOutput: 200000, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true } },
+    { id: "minimax-m2", displayName: "MiniMax M2", maxOutput: 200000, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true } },
+    { id: "glm-4.7", displayName: "GLM-4.7", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "glm-4.6", displayName: "GLM-4.6", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-v3.2-exp", displayName: "DeepSeek V3.2 Exp", maxOutput: 65536, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwen3-vl-235b-a22b-instruct", displayName: "Qwen3 VL 235B A22B Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { vision: true, functionCall: true } },
+    { id: "qwen3-vl-235b-a22b-thinking", displayName: "Qwen3 VL 235B A22B Thinking", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, vision: true, functionCall: true } },
+    { id: "deepseek-v3.1-terminus", displayName: "DeepSeek V3.1 Terminus", maxOutput: 65536, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwen3-next-80b-a3b-thinking", displayName: "Qwen3 Next 80B A3B Thinking", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwen3-next-80b-a3b-instruct", displayName: "Qwen3 Next 80B A3B Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "deepseek-v3.1", displayName: "DeepSeek V3.1", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true } },
+    { id: "baichuan-m2-32b", displayName: "Baichuan M2 32B", maxOutput: 8192, contextWindowTokens: 64000, abilities: { reasoning: true } },
+    { id: "glm-4.5v", displayName: "GLM-4.5V", maxOutput: 4096, contextWindowTokens: 131072, abilities: { vision: true, functionCall: true } },
+    { id: "glm-4.5", displayName: "GLM-4.5", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true } },
+    { id: "glm-4.5-air", displayName: "GLM-4.5-Air", maxOutput: 4096, contextWindowTokens: 131072 },
+    { id: "qwen3-coder-480b-a35b-instruct", displayName: "Qwen3 Coder 480B A35B", maxOutput: 32768, contextWindowTokens: 262144, abilities: { functionCall: true } },
+    { id: "qwen3-235b-a22b-instruct-2507", displayName: "Qwen3 235B A22B Instruct 2507", maxOutput: 8192, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "kimi-k2-instruct", displayName: "Kimi K2 Instruct", maxOutput: 32768, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "ernie-4.5-300b-a47b", displayName: "ERNIE 4.5 300B A47B", maxOutput: 8192, contextWindowTokens: 32000, abilities: { reasoning: true } },
+    { id: "ernie-4.5-21b-a3b", displayName: "ERNIE 4.5 21B A3B", maxOutput: 8192, contextWindowTokens: 120000 },
+    { id: "qwen3-8b", displayName: "Qwen3 8B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwen3-14b", displayName: "Qwen3 14B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwen3-32b", displayName: "Qwen3 32B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwen3-30b-a3b", displayName: "Qwen3 30B A3B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwen3-235b-a22b", displayName: "Qwen3 235B A22B", maxOutput: 8192, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "qwen2.5-vl-72b-instruct", displayName: "Qwen2.5 VL 72B Instruct", maxOutput: 4096, contextWindowTokens: 125000, abilities: { vision: true } },
+    { id: "qwen2.5-vl-32b-instruct", displayName: "Qwen2.5 VL 32B Instruct", maxOutput: 4096, contextWindowTokens: 125000, abilities: { vision: true } },
+    { id: "qwen2.5-vl-7b-instruct", displayName: "Qwen2.5 VL 7B Instruct", maxOutput: 4096, contextWindowTokens: 125000, abilities: { vision: true } },
+    { id: "qwq-32b", displayName: "QwQ 32B", maxOutput: 8192, contextWindowTokens: 32000, abilities: { reasoning: true } },
+    { id: "deepseek-v3", displayName: "DeepSeek V3 0324", maxOutput: 16384, contextWindowTokens: 131072 },
+    { id: "deepseek-r1", displayName: "DeepSeek R1", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-r1-distill-qwen-32b", displayName: "DeepSeek R1 Distill Qwen 32B", maxOutput: 8192, contextWindowTokens: 32000, abilities: { reasoning: true } },
+    { id: "megrez-3b-instruct", displayName: "Megrez 3B Instruct", maxOutput: 4096, contextWindowTokens: 32000 },
+    { id: "qwen2.5-32b-instruct", displayName: "Qwen2.5 32B Instruct", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "qwen2.5-72b-instruct", displayName: "Qwen2.5 72B Instruct", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "qwen2.5-14b-instruct", displayName: "Qwen2.5 14B Instruct", maxOutput: 4096, contextWindowTokens: 32768 },
+    { id: "qwen2.5-7b-instruct", displayName: "Qwen2.5 7B Instruct", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "qwen2.5-coder-32b-instruct", displayName: "Qwen2.5 Coder 32B Instruct", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "gpt-oss-120b", displayName: "GPT-OSS-120B", maxOutput: 32768, contextWindowTokens: 131072 },
+    { id: "gpt-oss-20b", displayName: "GPT-OSS-20B", maxOutput: 32768, contextWindowTokens: 131072 },
+    { id: "pro-deepseek-r1", displayName: "DeepSeek R1 (Pro)", maxOutput: 32768, contextWindowTokens: 131072, abilities: { reasoning: true } },
+    { id: "pro-deepseek-v3", displayName: "DeepSeek V3 (Pro)", maxOutput: 16384, contextWindowTokens: 131072 },
+  ],
+};

+ 22 - 0
packages/core/src/llm/providers/modelscope.ts

@@ -0,0 +1,22 @@
+import type { InkosProvider } from "./types.js";
+
+export const MODELSCOPE: InkosProvider = {
+  id: "modelscope",
+  label: "魔搭社区 ModelScope",
+  api: "openai-completions",
+  baseUrl: "https://api-inference.modelscope.cn/v1",
+  checkModel: "Qwen/Qwen2.5-72B-Instruct",
+  temperatureRange: [0, 2],
+  defaultTemperature: 0.7,
+  writingTemperature: 1,
+  models: [
+    { id: "Qwen/Qwen3-Next-80B-A3B-Thinking", displayName: "Qwen3 Next 80B A3B Thinking", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "Qwen/Qwen3-Next-80B-A3B-Instruct", displayName: "Qwen3 Next 80B A3B Instruct", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "deepseek-ai/DeepSeek-V3.2", displayName: "DeepSeek V3.2", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, enabled: true },
+    { id: "deepseek-ai/DeepSeek-V3.2-Exp", displayName: "DeepSeek V3.2 Exp", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-ai/DeepSeek-V3.1", displayName: "DeepSeek V3.1", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "deepseek-ai/DeepSeek-R1-0528", displayName: "DeepSeek R1 0528", maxOutput: 4096, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true } },
+    { id: "Qwen/Qwen3-235B-A22B", displayName: "Qwen3 235B A22B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true } },
+    { id: "Qwen/Qwen3-32B", displayName: "Qwen3 32B", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true } },
+  ],
+};

+ 24 - 0
packages/core/src/llm/providers/qiniu.ts

@@ -0,0 +1,24 @@
+import type { InkosProvider } from "./types.js";
+
+export const QINIU: InkosProvider = {
+  id: "qiniu",
+  label: "七牛云 AI",
+  api: "openai-completions",
+  baseUrl: "https://api.qnaigc.com/v1",
+  checkModel: "deepseek-v3",
+  temperatureRange: [0, 2],
+  defaultTemperature: 0.7,
+  writingTemperature: 1,
+  models: [
+    { id: "deepseek-v3", displayName: "DeepSeek V3", maxOutput: 4096, contextWindowTokens: 131072, abilities: { functionCall: true }, enabled: true },
+    { id: "deepseek-r1", displayName: "DeepSeek R1", maxOutput: 4096, contextWindowTokens: 65536, abilities: { reasoning: true }, enabled: true },
+    { id: "minimax/minimax-m2.1", displayName: "MiniMax M2.1", maxOutput: 131072, contextWindowTokens: 204800, abilities: { reasoning: true, functionCall: true, search: true }, enabled: true, releasedAt: "2025-12-24" },
+    { id: "minimax/minimax-m2", displayName: "MiniMax M2", maxOutput: 131072, contextWindowTokens: 204800, abilities: { reasoning: true, functionCall: true, search: true }, enabled: true, releasedAt: "2025-10-27" },
+    { id: "deepseek/deepseek-math-v2", displayName: "DeepSeek Math V2", maxOutput: 131072, contextWindowTokens: 163840, abilities: { reasoning: true }, enabled: true, releasedAt: "2025-11-27" },
+    { id: "meituan/longcat-flash-chat", displayName: "LongCat Flash Chat", maxOutput: 65536, contextWindowTokens: 131072, abilities: { reasoning: true, functionCall: true }, enabled: true, releasedAt: "2025-09-01" },
+    { id: "z-ai/glm-4.7", displayName: "GLM-4.7", maxOutput: 128000, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true, search: true }, enabled: true, releasedAt: "2025-12-23" },
+    { id: "z-ai/glm-4.6", displayName: "GLM-4.6", maxOutput: 128000, contextWindowTokens: 200000, abilities: { reasoning: true, functionCall: true, search: true }, enabled: true, releasedAt: "2025-09-30" },
+    { id: "x-ai/grok-4-fast", displayName: "Grok 4 Fast", maxOutput: 4096, contextWindowTokens: 2000000, abilities: { reasoning: true, vision: true, functionCall: true, search: true }, enabled: true, releasedAt: "2025-09-09" },
+    { id: "x-ai/grok-code-fast-1", displayName: "Grok Code Fast 1", maxOutput: 4096, contextWindowTokens: 256000, abilities: { reasoning: true, functionCall: true }, releasedAt: "2025-08-27" },
+  ],
+};

+ 26 - 0
packages/core/src/llm/providers/zeroone.ts

@@ -0,0 +1,26 @@
+import type { InkosProvider } from "./types.js";
+
+export const ZEROONE: InkosProvider = {
+  id: "zeroone",
+  label: "零一万物 (01.AI)",
+  api: "openai-completions",
+  baseUrl: "https://api.lingyiwanwu.com/v1",
+  checkModel: "yi-lightning",
+  temperatureRange: [0, 2],
+  defaultTemperature: 0.3,
+  writingTemperature: 1,
+  models: [
+    { id: "yi-lightning", displayName: "Yi Lightning", maxOutput: 4096, contextWindowTokens: 16384, enabled: true },
+    { id: "yi-vision-v2", displayName: "Yi Vision V2", maxOutput: 4096, contextWindowTokens: 16384, abilities: { vision: true }, enabled: true },
+    { id: "yi-spark", displayName: "Yi Spark", maxOutput: 4096, contextWindowTokens: 16384 },
+    { id: "yi-medium", displayName: "Yi Medium", maxOutput: 4096, contextWindowTokens: 16384 },
+    { id: "yi-medium-200k", displayName: "Yi Medium 200K", maxOutput: 4096, contextWindowTokens: 200000 },
+    { id: "yi-large-turbo", displayName: "Yi Large Turbo", maxOutput: 4096, contextWindowTokens: 16384 },
+    { id: "yi-large-rag", displayName: "Yi Large RAG", maxOutput: 4096, contextWindowTokens: 16384 },
+    { id: "yi-large-fc", displayName: "Yi Large FC", maxOutput: 4096, contextWindowTokens: 32768, abilities: { functionCall: true } },
+    { id: "yi-large", displayName: "Yi Large", maxOutput: 4096, contextWindowTokens: 32768 },
+    { id: "yi-vision", displayName: "Yi Vision", maxOutput: 4096, contextWindowTokens: 16384, abilities: { vision: true } },
+    { id: "yi-large-preview", displayName: "Yi Large Preview", maxOutput: 4096, contextWindowTokens: 16384 },
+    { id: "yi-lightning-lite", displayName: "Yi Lightning Lite", maxOutput: 4096, contextWindowTokens: 16384 },
+  ],
+};