Przeglądaj źródła

fix(langgraph): menu/generate 加 max_tokens=1200 + 精简模板,菜单生成 60s+ 降至 ~17s

Xiaogang Liao 1 miesiąc temu
rodzic
commit
9c11bc345e
1 zmienionych plików z 4 dodań i 1 usunięć
  1. 4 1
      cfc-langgraph/app/api/meal.py

+ 4 - 1
cfc-langgraph/app/api/meal.py

@@ -30,7 +30,7 @@ MENU_GENERATE_TEMPLATE = """请为{participant_count}人生成{date}的一日三
 {constraints_text}
 {constraints_text}
 
 
 请返回 JSON 格式:
 请返回 JSON 格式:
-{{"meals": [{{"type": "breakfast", "name": "早餐", "dishes": [{{"name": "菜品名", "ingredients": [{{"name": "食材", "grams": 100}}], "cooking_method": "烹饪方法", "nutrition": {{"calories": 200, "protein": 10, "carbs": 30, "fat": 5}}, "notes": "备注"}}]}}]}}
+{{"meals": [{{"type": "breakfast", "name": "早餐", "dishes": [{{"name": "菜品名", "ingredients": [{{"name": "食材", "grams": 100}}], "cooking_method": "做法一句话", "nutrition": {{"calories": 200}}}]}}]}}
 
 
 要求:
 要求:
 1. 早/午/晚各至少1-2道菜
 1. 早/午/晚各至少1-2道菜
@@ -140,11 +140,14 @@ async def generate_menu(req: MenuGenerateRequest):
                 constraints_text=constraints_text,
                 constraints_text=constraints_text,
             )
             )
 
 
+        # max_tokens=1200:menu/generate 完整输出约 800-1200 token(已去掉 protein/carbs/fat/notes),
+        # 避免 LLM 写满 3000+ token 导致 60s+ 超时;实测 1000 token ≈ 17s,1200 兜底安全
         llm = ChatOpenAI(
         llm = ChatOpenAI(
             model=settings.llm_model,
             model=settings.llm_model,
             api_key=settings.llm_api_key,
             api_key=settings.llm_api_key,
             base_url=settings.llm_base_url,
             base_url=settings.llm_base_url,
             temperature=0.7,
             temperature=0.7,
+            max_tokens=1200,
         )
         )
 
 
         response = llm.invoke([
         response = llm.invoke([