entidi2608's picture
update: llm
b45d362
from pydantic import BaseModel
from typing import List, Optional, Any, Dict
from datetime import datetime
class AppState(BaseModel):
embeddings: Optional[Any] = None
vectorstore: Optional[Any] = None
llm: Optional[Any] = None
process_input_llm: Optional[Any] = None
qa_chain: Optional[Any] = None
device: str = "cpu"
google_api_key: Optional[str] = None
dict: Dict = {}
redis: Optional[Any] = None
retriever: Optional[Any] = None
weaviateDB: Optional[Any] = None
# mongoDB: Optional[Any] = None
reranker: Optional[Any] = None
class QueryRequest(BaseModel):
chat_id: str
input: str
class Message(BaseModel):
role: str
content: str
timestamp: datetime
class SourceDocument(BaseModel):
source: str
page_content_preview: str
class AnswerResponse(BaseModel):
answer: str
sources: Optional[List[SourceDocument]] = None
processing_time: float
class ChatHistoryResponse(BaseModel): # Model cho response của API này
chat_id: str
history: List[Message]
created_at: datetime
updated_at: datetime
user_id: str
class MessageItem(BaseModel):
role: str
content: str
timestamp: datetime
class ConversationResponse(BaseModel):
conversation_id: str
created_at: datetime
updated_at: datetime
messages: List[MessageItem]