from pydantic import UUID4, Field from rag_demo.preprocessing.base import VectorBaseDocument class Query(VectorBaseDocument): content: str metadata: dict = Field(default_factory=dict) class Config: category = "query" @classmethod def from_str(cls, query: str) -> "Query": return Query(content=query.strip("\n ")) def replace_content(self, new_content: str) -> "Query": return Query( id=self.id, content=new_content, metadata=self.metadata, ) class EmbeddedQuery(Query): embedding: list[float] class Config: category = "query"