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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user