Merge branch 'pr-203'

This commit is contained in:
decolua committed 2026-02-27 09:33:14 +07:00
commit 0e285a9ed3
7 files changed
+46 -4

No files matched your search

@@ -120,6 +120,15 @@ const PROVIDER_MODELS_CONFIG = {
parseResponse: (data) => data.data || []
},
alicode: {
url: "https://coding.dashscope.aliyuncs.com/v1/models",
method: "GET",
headers: { "Content-Type": "application/json" },
authHeader: "Authorization",
authPrefix: "Bearer ",
parseResponse: (data) => data.data || []
},
// OpenAI-compatible API key providers
deepseek: createOpenAIModelsConfig("https://api.deepseek.com/models"),
groq: createOpenAIModelsConfig("https://api.groq.com/openai/v1/models"),
@@ -1,5 +1,6 @@
import { getProviderConnectionById, updateProviderConnection } from "@/lib/localDb";
import { isOpenAICompatibleProvider, isAnthropicCompatibleProvider } from "@/shared/constants/providers";
import { getDefaultModel } from "open-sse/config/providerModels.js";
import {
GEMINI_CONFIG,
ANTIGRAVITY_CONFIG,
@@ -308,6 +309,16 @@ async function testApiKeyConnection(connection) {
const valid = res.status !== 401 && res.status !== 403;
return { valid, error: valid ? null : "Invalid API key" };
}
case "alicode": {
// Aliyun Coding Plan uses OpenAI-compatible API
const res = await fetch("https://coding.dashscope.aliyuncs.com/v1/chat/completions", {
method: "POST",
headers: { "Authorization": `Bearer ${connection.apiKey}`, "content-type": "application/json" },
body: JSON.stringify({ model: getDefaultModel("alicode"), max_tokens: 1, messages: [{ role: "user", content: "test" }] }),
});
const valid = res.status !== 401 && res.status !== 403;
return { valid, error: valid ? null : "Invalid API key" };
}
case "deepseek": {
const res = await fetch("https://api.deepseek.com/models", { headers: { Authorization: `Bearer ${connection.apiKey}` } });
return { valid: res.ok, error: res.ok ? null : "Invalid API key" };