-
Notifications
You must be signed in to change notification settings - Fork 55
/
Copy pathquery.py
39 lines (29 loc) · 1021 Bytes
/
query.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from pydantic import BaseModel
from typing import List, Optional, Union
from models.document import BaseDocumentChunk
from models.ingest import EncoderConfig
from models.vector_database import VectorDatabase
from qdrant_client.http.models import Filter as QdrantFilter
Filter = Union[QdrantFilter, dict]
class RequestPayload(BaseModel):
input: str
vector_database: VectorDatabase
index_name: str
encoder: EncoderConfig = EncoderConfig()
session_id: Optional[str] = None
interpreter_mode: Optional[bool] = False
exclude_fields: List[str] = None
filter: Optional[Filter] = None
class ResponseData(BaseModel):
content: str
doc_url: str
page_number: Optional[int]
metadata: Optional[dict] = None
class ResponsePayload(BaseModel):
success: bool
data: List[BaseDocumentChunk]
def model_dump(self, exclude: set = None):
return {
"success": self.success,
"data": [chunk.dict(exclude=exclude) for chunk in self.data],
}