muryshev's picture
update
82b615f
raw
history blame contribute delete
885 Bytes
from typing import List, Optional
from pydantic import BaseModel
from components.llm.common import ChatRequest, Message
class MessageSchema(BaseModel):
role: str
content: str
searchResults: Optional[str] = ''
searchEntities: Optional[List[str]] = []
reasoning: Optional[str] = ''
def to_bl(self) -> Message:
return ChatRequest.model_validate(self.model_dump())
class ChatRequestSchema(BaseModel):
history: List[MessageSchema]
chat_id: Optional[str]
def to_bl(self) -> ChatRequest:
return ChatRequest.model_validate(self.model_dump(exclude={"chat_id"}))
@classmethod
def from_bl(cls, bl: ChatRequest, chat_id: Optional[str] = None) -> "ChatRequestSchema":
return cls.model_validate({
"history": [msg.model_dump() for msg in bl.history],
"chat_id": chat_id
})