fix: 修正 OpenAI/Anthropic Provider 初始化参数顺序

修复 manager.go 中两处调用 NewOpenAIProvider 和 NewAnthropicProvider
时参数顺序错误的问题。原代码将 baseURL 和 apiKey 参数传反,导致
API key 被当作 URL 使用,引发 "unsupported protocol scheme" 错误。

Changed:
- LoadProvidersFromDB: 调整参数顺序为 (apiKey, baseURL, "")
- GetActiveProvider: 调整参数顺序为 (apiKey, baseURL, "")
This commit is contained in:
selfrelease
2026-06-22 18:02:23 +08:00
parent 56401ec7ee
commit fe2c6fb2e4
7 changed files with 329 additions and 18 deletions
+20 -2
View File
@@ -19,13 +19,23 @@ import (
type AnalysisTemplateHandler struct {
pool *pgxpool.Pool
manager *llm.Manager
provider string
provider string // 保留作为 fallback
}
func NewAnalysisTemplateHandler(pool *pgxpool.Pool, manager *llm.Manager, provider string) *AnalysisTemplateHandler {
manager.SetPool(pool)
return &AnalysisTemplateHandler{pool: pool, manager: manager, provider: provider}
}
// getProvider 获取当前激活的 provider
func (h *AnalysisTemplateHandler) getProvider(ctx context.Context) (llm.Provider, error) {
provider, err := h.manager.GetActiveProvider(ctx)
if err == nil {
return provider, nil
}
return h.manager.GetProvider(h.provider)
}
func (h *AnalysisTemplateHandler) ListTemplates(w http.ResponseWriter, r *http.Request) {
orgID := r.URL.Query().Get("org_id")
query := `SELECT id, name, report_type, COALESCE(description,''), COALESCE(icon,''), steps, sort_order
@@ -236,7 +246,15 @@ func (h *AnalysisTemplateHandler) GenerateReport(w http.ResponseWriter, r *http.
}
startTime := time.Now()
body, err := h.manager.ChatStream(r.Context(), h.provider, llmReq)
// 获取激活的 provider
provider, err := h.getProvider(r.Context())
if err != nil {
response.InternalError(w, "获取模型提供商失败")
return
}
body, err := h.manager.ChatStream(r.Context(), provider, llmReq)
if err != nil {
response.Error(w, http.StatusBadGateway, 50202, "模型服务不可用: "+err.Error())
return