Provider-Abstraktion: Agents unterstützen jetzt OpenAI + Anthropic
Backend: - ChatEndpoint: Globaler OpenAI-Fallback entfernt, Key-Check pro Provider - TelegramService/CronjobService: Provider-Weiche statt hardcoded Anthropic - AnthropicService: Preparer/Review/Finalizer sind Provider-aware - OpenAiService: Neue ChatNonStreaming()-Methode für agentic loop - ToolService: send_to_session lädt Key des Ziel-Agents - SubAgentContext: Provider-Feld hinzugefügt - ChatService: BuildSubAgentContext setzt Provider Frontend: - Key-Switch-Modal: 'Kein Key'-Option zum Entfernen der Zuweisung - ApiKeysEndpoint: keyId='none' löscht Key-Zuweisung
This commit is contained in:
1 parent
1effc6d00f
commit
02f5fe2faf
11 files changed
+422
-69
No files matched your search
@@ -524,6 +524,22 @@ public static class ApiKeysEndpoint
|
||||
var userId = ctx.GetUserId();
|
||||
if (userId == null) { ctx.Response.StatusCode = 401; return; }
|
||||
|
||||
var agentId = ctx.Request.Query["agentId"].FirstOrDefault();
|
||||
if (string.IsNullOrEmpty(agentId))
|
||||
{
|
||||
ctx.Response.StatusCode = 400;
|
||||
await ctx.Response.WriteAsJsonAsync(new { error = "agentId required" });
|
||||
return;
|
||||
}
|
||||
|
||||
// "none" = Key-Zuweisung entfernen
|
||||
if (keyId == "none")
|
||||
{
|
||||
await db.SetAgentApiKey(userId, agentId, null);
|
||||
await ctx.Response.WriteAsJsonAsync(new { ok = true, keyId = (string)null, agentId, name = "Kein Key" });
|
||||
return;
|
||||
}
|
||||
|
||||
var key = await db.GetApiKey(keyId);
|
||||
if (key == null)
|
||||
{
|
||||
@@ -540,14 +556,6 @@ public static class ApiKeysEndpoint
|
||||
return;
|
||||
}
|
||||
|
||||
var agentId = ctx.Request.Query["agentId"].FirstOrDefault();
|
||||
if (string.IsNullOrEmpty(agentId))
|
||||
{
|
||||
ctx.Response.StatusCode = 400;
|
||||
await ctx.Response.WriteAsJsonAsync(new { error = "agentId required" });
|
||||
return;
|
||||
}
|
||||
|
||||
await db.SetAgentApiKey(userId, agentId, keyId);
|
||||
await ctx.Response.WriteAsJsonAsync(new { ok = true, keyId, agentId, name = key.Name });
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user