- Бэкенд: FastAPI + SQLAlchemy async + PostgreSQL, JWT-аутентификация, Qdrant multi-tenant векторное хранилище, Celery воркер - Фронтенд: React + Vite + TypeScript SPA (логин, регистрация, дашборд, поиск по коллекциям, настройки) - Инфраструктура: docker-compose, Helm-чарт, GitHub Actions CI, Prometheus/Grafana мониторинг - Embedding через OpenRouter (nvidia/llama-nemotron-embed-vl-1b-v2:free) - LLM: google/gemma-4-31b-it:free через OpenRouter
18 lines
321 B
Python
18 lines
321 B
Python
from pydantic import BaseModel
|
|
|
|
|
|
class SearchRequest(BaseModel):
|
|
collection_id: str
|
|
query: str
|
|
generate_answer: bool = True
|
|
|
|
|
|
class SourceItem(BaseModel):
|
|
ticket_id: str
|
|
score: float
|
|
category: str
|
|
|
|
|
|
class SearchResponse(BaseModel):
|
|
answer: str | None = None
|
|
sources: list[SourceItem] = []
|