fix: update Qwen OAuth URLs from chat.qwen.ai to qwen.ai (closes #572) (#683)

* fix: make version update banner clickable to copy install command (closes #598)

* fix: resolve ollama-local baseUrl from providerSpecificData.baseUrl for remote Ollama hosts (closes #578)

* fix: add Ollama Cloud to usage/quota tracking (closes #681)

* fix: update Qwen OAuth URLs from chat.qwen.ai to qwen.ai per issue #572
This commit is contained in:
Anurag Saxena
2026-04-22 10:32:28 +07:00
committed by GitHub
parent 37f7e97348
commit 94ab0d715d
5 changed files with 67 additions and 6 deletions
+29 -1
View File
@@ -163,7 +163,7 @@ const PROVIDER_MODELS_CONFIG = {
siliconflow: createOpenAIModelsConfig("https://api.siliconflow.cn/v1/models"),
hyperbolic: createOpenAIModelsConfig("https://api.hyperbolic.xyz/v1/models"),
ollama: createOpenAIModelsConfig("https://ollama.com/api/tags"),
"ollama-local": createOpenAIModelsConfig("http://localhost:11434/api/tags"),
// ollama-local: url resolved dynamically below via providerSpecificData.baseUrl
nanobanana: createOpenAIModelsConfig("https://api.nanobananaapi.ai/v1/models"),
chutes: createOpenAIModelsConfig("https://llm.chutes.ai/v1/models"),
nvidia: createOpenAIModelsConfig("https://integrate.api.nvidia.com/v1/models"),
@@ -380,6 +380,34 @@ export async function GET(request, { params }) {
});
}
// Handle ollama-local: resolve URL from providerSpecificData.baseUrl if provided,
// otherwise fall back to default localhost address.
if (connection.provider === "ollama-local") {
const baseUrl = connection.providerSpecificData?.baseUrl;
const url = baseUrl
? `${baseUrl.replace(/\/$/, "")}/api/tags`
: "http://localhost:11434/api/tags";
const response = await fetch(url, {
method: "GET",
headers: { "Content-Type": "application/json" },
});
if (!response.ok) {
const errorText = await response.text();
console.log(`Error fetching models from ollama-local:`, errorText);
return NextResponse.json(
{ error: `Failed to fetch models: ${response.status}` },
{ status: response.status }
);
}
const data = await response.json();
const models = parseOpenAIStyleModels(data);
return NextResponse.json({
provider: connection.provider,
connectionId: connection.id,
models,
});
}
const config = PROVIDER_MODELS_CONFIG[connection.provider];
if (!config) {
return NextResponse.json(