| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- from pydantic import BaseModel
- from typing import Optional, List
- class FoodRecognizeRequest(BaseModel):
- image_url: str
- prompt: str = "识别图片中的主要食材,返回 JSON 格式:[{name, confidence, category}]"
- class FoodsItem(BaseModel):
- name: str
- confidence: float
- category: str = "unknown"
- class FoodRecognizeResponse(BaseModel):
- foods: List[FoodsItem]
- raw_response: str = ""
- trace_id: str = ""
- class MenuGenerateRequest(BaseModel):
- selected_foods: str
- participants: str
- date: str
- allergies: Optional[str] = None
- avoid_foods: Optional[str] = None
- health_goals: Optional[str] = None
- spice_level: Optional[int] = None
- cuisine_pref: Optional[str] = None
- # CR-C / AC-23:Java AiGateway 下发的午/晚餐标准菜数 D(N)。
- # 默认 None 让旧调用方 100% 兼容;菜数硬保证在 Java normalizeMenu,此处仅软引导 prompt。
- dish_count: Optional[int] = None
- class MenuIngredient(BaseModel):
- name: str
- grams: int
- class MenuDish(BaseModel):
- name: str
- ingredients: List[MenuIngredient]
- cooking_method: str = ""
- nutrition: Optional[dict] = None
- notes: str = ""
- class MenuGenerateResponse(BaseModel):
- menu_json: str = ""
- trace_id: str = ""
|