PMFlow/backend/app/api/signal_sources_api/schemas.py

47 lines
1.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Schemas for signal source APIs."""
from __future__ import annotations
from typing import Any, Optional
from pydantic import BaseModel, Field
class RecipeRecognitionRequest(BaseModel):
"""食谱识别请求"""
food_name: str = Field(..., description="食物名称")
food_description: Optional[str] = Field(None, description="食物描述")
image_url: Optional[str] = Field(None, description="图片URL")
category: Optional[str] = Field(None, description="分类")
cuisine: Optional[str] = Field(None, description="菜系")
calories: Optional[float] = Field(None, description="热量(千卡)")
protein: Optional[float] = Field(None, description="蛋白质(克)")
fat: Optional[float] = Field(None, description="脂肪(克)")
carbs: Optional[float] = Field(None, description="碳水化合物(克)")
fiber: Optional[float] = Field(None, description="膳食纤维(克)")
intent: str = Field(
default="analyze",
description="意图:analyze-热量分析, save-保存食谱, recommend-推荐菜谱",
)
user_name: Optional[str] = Field(None, description="用户名")
class RecipeRecognitionResponse(BaseModel):
"""响应"""
success: bool
signal_id: Optional[int] = None
project_id: Optional[int] = None
message: str
details: Optional[dict[str, Any]] = None
class RecipeBatchRequest(BaseModel):
"""批量导入请求"""
recipes: list[RecipeRecognitionRequest] = Field(..., description="食谱列表")