first commit
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Any
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class ChatMessage(BaseModel):
|
||||
role: str
|
||||
content: str
|
||||
|
||||
|
||||
class ChatRequest(BaseModel):
|
||||
message: str
|
||||
history: list[ChatMessage] = Field(default_factory=list)
|
||||
|
||||
|
||||
class SourceDocument(BaseModel):
|
||||
source_id: str
|
||||
source_type: str
|
||||
title: str
|
||||
source_url: str
|
||||
snippet: str
|
||||
published_at: datetime | None = None
|
||||
score: float | None = None
|
||||
|
||||
|
||||
class ChatResponse(BaseModel):
|
||||
answer: str
|
||||
model: str
|
||||
sources: list[SourceDocument]
|
||||
tool_results: list[dict[str, Any]] = Field(default_factory=list)
|
||||
|
||||
|
||||
class IndexResponse(BaseModel):
|
||||
indexed_knowledge_documents: int
|
||||
indexed_menu_documents: int
|
||||
menu_items_loaded: int
|
||||
|
||||
|
||||
class KnowledgeDocument(BaseModel):
|
||||
doc_id: str
|
||||
title: str
|
||||
text: str
|
||||
source_type: str
|
||||
source_url: str
|
||||
published_at: datetime | None = None
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class MenuItem(BaseModel):
|
||||
item_id: str
|
||||
name: str
|
||||
category: str
|
||||
description: str
|
||||
ingredients: list[str]
|
||||
price: int | None = None
|
||||
price_label: str
|
||||
size: str | None = None
|
||||
photo_url: str
|
||||
source_url: str
|
||||
scraped_at: datetime
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class MenuSnapshot(BaseModel):
|
||||
source_url: str
|
||||
scraped_at: datetime
|
||||
total_items: int
|
||||
items: list[MenuItem]
|
||||
|
||||
Reference in New Issue
Block a user