Files
AIRegulation-DocAnalysis/backend/app/schemas/rag.py
T

47 lines
1.2 KiB
Python
Raw Normal View History

"""Define schema models for rag."""
2026-05-14 15:07:34 +08:00
from pydantic import BaseModel
from typing import Optional
# Group related schema definitions so validation rules stay consistent.
2026-05-14 15:07:34 +08:00
class RagChatRequest(BaseModel):
"""Define the Rag Chat Request API model."""
2026-05-14 15:07:34 +08:00
query: str
top_k: int = 5
2026-05-20 23:34:08 +08:00
session_id: Optional[str] = None
filters: Optional[str] = None
2026-07-02 22:03:39 +08:00
# Optional document text to inject directly as LLM conversation context.
# When provided the document content is prepended to the query so the LLM
# can answer questions about it without requiring vector-store indexing.
context_text: Optional[str] = None
context_filename: Optional[str] = None
2026-05-14 15:07:34 +08:00
class RetrievedDoc(BaseModel):
"""Define the Retrieved Doc API model."""
2026-05-14 15:07:34 +08:00
id: str
doc_name: str
clause_id: Optional[str] = None
score: float
content: str
preview: str
class SourceInfo(BaseModel):
"""Define the Source Info API model."""
2026-05-14 15:07:34 +08:00
name: str
clause: Optional[str] = None
class QuickQuestion(BaseModel):
"""Define the Quick Question API model."""
2026-05-14 15:07:34 +08:00
id: str
question: str
category: str
class QuickQuestionsResponse(BaseModel):
"""Define the Quick Questions Response API model."""
2026-05-14 15:07:34 +08:00
questions: list[QuickQuestion]