recommend.py 642 B

1234567891011121314151617181920212223242526272829
  1. from pydantic import BaseModel
  2. from typing import Optional
  3. class RecommendItem(BaseModel):
  4. type: str # product / activity / article
  5. id: int
  6. name: str
  7. description: str = ""
  8. cover_image: str = ""
  9. price: Optional[float] = None
  10. url: str = ""
  11. score: float = 0.0
  12. reason: str = ""
  13. class RecommendRequest(BaseModel):
  14. user_id: int
  15. query: str = ""
  16. tags: list[str] = []
  17. types: Optional[list[str]] = None
  18. limit: int = 5
  19. context: Optional[dict] = None
  20. class RecommendResponse(BaseModel):
  21. items: list[RecommendItem]
  22. source: str = "" # sql / vector / hybrid
  23. trace_id: str = ""