TradingAgents/docs/fix-model-parameter-mapping.md

2.3 KiB

修復模型參數傳遞問題

問題描述

用戶在前端選擇了不同的模型(如 Claude、Grok 等),但後端實際調用的一直是 gpt-5-mini-2025-08-07

根本原因

前端和後端的 API 欄位命名不一致:

前端 (舊) 後端 (預期)
shallow_thinking_agent quick_think_llm
deep_thinking_agent deep_think_llm

由於欄位名稱不匹配,後端無法接收到前端發送的模型參數,因此使用了預設值 gpt-5-mini-2025-08-07

修復內容

1. 更新前端類型定義 (frontend/lib/types.ts)

// 舊
export interface AnalysisRequest {
  shallow_thinking_agent?: string;
  deep_thinking_agent?: string;
  ...
}

// 新
export interface AnalysisRequest {
  quick_think_llm?: string;
  deep_think_llm?: string;
  quick_think_base_url?: string;
  deep_think_base_url?: string;
  quick_think_api_key?: string;
  deep_think_api_key?: string;
  embedding_base_url?: string;
  embedding_api_key?: string;
  ...
}

2. 更新表單組件 (frontend/components/analysis/AnalysisForm.tsx)

  • 更新 formSchema 中的欄位定義
  • 更新 defaultValues 中的欄位名稱
  • 更新表單欄位的 name 屬性

後端參數映射 (backend/app/models/schemas.py)

後端 schema 定義:

class AnalysisRequest(BaseModel):
    deep_think_llm: Optional[str] = Field(default="gpt-5-mini-2025-08-07")
    quick_think_llm: Optional[str] = Field(default="gpt-5-mini-2025-08-07")
    quick_think_base_url: Optional[str] = Field(default="https://api.openai.com/v1")
    deep_think_base_url: Optional[str] = Field(default="https://api.openai.com/v1")
    quick_think_api_key: Optional[str] = None
    deep_think_api_key: Optional[str] = None
    embedding_base_url: Optional[str] = Field(default="https://api.openai.com/v1")
    embedding_api_key: Optional[str] = None

驗證

修復後,前端發送的請求應該正確包含:

  • quick_think_llm: 用戶選擇的快速思維模型
  • deep_think_llm: 用戶選擇的深層思維模型
  • 對應的 Base URL 和 API Key

後端現在能正確接收並使用這些參數。

額外修正

同時移除了 Google Gemini 的 API 端點選項,因為項目不再使用 Gemini 服務。