Add z.ai/GLM provider via per-process Claude CLI env injection
Route glm:-prefixed models through the CLI/Anthropic path: ResolveModelId strips the glm: prefix, and CreateCliStartInfo activates the z.ai Anthropic-compatible endpoint (ANTHROPIC_BASE_URL/AUTH_TOKEN) only for that process when IsZaiModel matches, leaving every other request's OAuth login untouched. GLM model list is loaded through the existing model cache and exposed via /api/models/glm with a "GLM (z.ai)" optgroup in the agent form. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
e6770bb5f8
commit
0f3d658fd3
8 files changed
+83
-9
No files matched your search
@@ -16,6 +16,7 @@ public static class ModelsEndpoint
|
||||
app.MapGet("/api/models/gemini", HandleGeminiModels);
|
||||
app.MapGet("/api/models/openai", HandleOpenAiModels);
|
||||
app.MapGet("/api/models/minimax", HandleMinimaxModels);
|
||||
app.MapGet("/api/models/glm", HandleGlmModels);
|
||||
app.MapPost("/api/models/refresh", HandleRefresh);
|
||||
}
|
||||
|
||||
@@ -59,6 +60,14 @@ public static class ModelsEndpoint
|
||||
return Results.Json(new { models });
|
||||
}
|
||||
|
||||
private static IResult HandleGlmModels(OpenAiService openAiService)
|
||||
{
|
||||
var models = openAiService.GetGlmModels()
|
||||
.Select(m => new { id = m.Id, displayName = m.DisplayName })
|
||||
.ToList();
|
||||
return Results.Json(new { models });
|
||||
}
|
||||
|
||||
private static async Task<IResult> HandleRefresh(OpenAiService openAiService)
|
||||
{
|
||||
await openAiService.RefreshModelsFromApis();
|
||||
|
||||
Reference in new issue
Block a user