knowledge-base / app /schema /__init__.py
gavinzli's picture
Implement asynchronous mail collection and improve error logging; make query optional in MailReqData
7eea859
raw
history blame
2.14 kB
"""Module containing the data models for the application."""
from typing import Optional, List
from pydantic import BaseModel, Field
class ReqData(BaseModel):
"""
RequestData is a Pydantic model that represents the data structure for a request.
Attributes:
query (str): The query string provided by the user.
chat_id (str): The unique identifier for the chat session.
user_id (str): The unique identifier for the user.
web (Optional[bool]): A flag indicating if the request is from the web. Defaults to False.
"""
query: str
id: Optional[List[str]] = []
site: Optional[List[str]] = []
chat_id: str
user_id: str
web: Optional[bool] = False
class MailReqData(BaseModel):
"""
MailReqData is a data model representing the structure of a mail request.
Attributes:
email (str): The email address of the sender.
query (str): The query or message content sent by the user.
"""
email: str
query: Optional[str] = ""
class ReqFollowUp(BaseModel):
"""
RequestFollowUp is a Pydantic model that represents a request for follow-up.
Attributes:
query (str): The query string that needs follow-up.
contexts (list[str]): A list of context strings related to the query.
"""
query: str
contexts: list[str]
class FollowUpQ(BaseModel):
"""
FollowUpQ model to represent a follow-up question based on context information.
Attributes:
question (list[str]): A list of follow-up questions based on context information.
"""
questions: list[str] = Field(..., description="3 Follow up questions based on context.")
class ChatHistory(BaseModel):
"""
ChatHistory model representing a chat session.
Attributes:
chat_id (str): The unique identifier for the chat session.
user_id (str): The unique identifier for the user.
"""
chat_id: str
user_id: str
class ChatSession(BaseModel):
"""
ChatSession model representing a chat session.
Attributes:
user_id (str): The unique identifier for the user.
"""
user_id: str