response.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from pydantic import BaseModel
  2. from typing import List,Optional,Any
  3. from .request import TextData
  4. class Response(BaseModel):
  5. status: str
  6. ################################################
  7. class VectorData(BaseModel):
  8. text: str
  9. vector: List[float]
  10. class EmbeddingResponse(Response):
  11. vectors: List[VectorData]
  12. ################################################
  13. class SearchResult(BaseModel):
  14. id: str
  15. title: str
  16. author: str
  17. site_name: str
  18. site_domain: str
  19. pub_date: str
  20. article_text: str
  21. score: float
  22. url: str
  23. class SearchResultMeta(BaseModel):
  24. id: str
  25. title: str
  26. pub_date: str
  27. url: str
  28. class SearchResultContent(BaseModel):
  29. id: str
  30. title: str
  31. article_text: str
  32. class SearchResponse(Response):
  33. results: List[SearchResult]
  34. class SearchResponseV2(BaseModel):
  35. meta: List[SearchResultMeta]
  36. content: List[SearchResultContent]
  37. ################################################
  38. class GetDocumentResponse(Response):
  39. title: str
  40. text: str
  41. url: Optional[str]
  42. class GetMDocumentResponse(Response):
  43. results: List[GetDocumentResponse]
  44. ################################################
  45. class StandardResponse(BaseModel):
  46. success: bool
  47. error_code: Optional[int] = None
  48. error_msg: Optional[str] = None
  49. records: Optional[Any] = None