forked from zovos/vk_hackathon
59 lines
1.1 KiB
Python
59 lines
1.1 KiB
Python
from typing import Any
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class Chat(BaseModel):
|
|
id: str
|
|
name: str
|
|
sn: str
|
|
type: str
|
|
is_public: bool | None = None
|
|
members_count: int | None = None
|
|
members: list[dict[str, Any]] | None = None
|
|
|
|
|
|
class Message(BaseModel):
|
|
id: str
|
|
thread_sn: str | None = None
|
|
time: int
|
|
text: str
|
|
sender_id: str
|
|
file_snippets: str
|
|
parts: list[dict[str, Any]] | None = None
|
|
mentions: list[str] | None = None
|
|
member_event: dict[str, Any] | None = None
|
|
is_system: bool
|
|
is_hidden: bool
|
|
is_forward: bool
|
|
is_quote: bool
|
|
|
|
|
|
class ChatData(BaseModel):
|
|
chat: Chat
|
|
overlap_messages: list[Message]
|
|
new_messages: list[Message]
|
|
|
|
|
|
class IndexAPIRequest(BaseModel):
|
|
data: ChatData
|
|
|
|
|
|
class IndexAPIItem(BaseModel):
|
|
page_content: str
|
|
dense_content: str
|
|
sparse_content: str
|
|
message_ids: list[str]
|
|
|
|
|
|
class IndexAPIResponse(BaseModel):
|
|
results: list[IndexAPIItem]
|
|
|
|
|
|
class SparseEmbeddingRequest(BaseModel):
|
|
texts: list[str]
|
|
|
|
|
|
class SparseVector(BaseModel):
|
|
indices: list[int]
|
|
values: list[float]
|