fix: validate retrieval-only chat questions before dispatch

This commit is contained in:
2026-10-17 12:17:52 +08:00
parent 1398938437
commit 4efcf83e4c
9 changed files with 217 additions and 16 deletions
+6 -3
View File
@@ -1,11 +1,14 @@
from typing import Literal
from uuid import UUID
from pydantic import BaseModel, Field
from pydantic import BaseModel
from app.schemas.catalog import Input
from app.schemas.retrieval import QueryText
class ChatRequest(BaseModel):
question: str = Field(min_length=1, max_length=2000)
class ChatRequest(Input):
question: QueryText
class SourcePreview(BaseModel):
+4 -2
View File
@@ -1,14 +1,16 @@
from datetime import datetime
from typing import Literal
from typing import Annotated, Literal
from uuid import UUID
from pydantic import BaseModel, Field
from app.schemas.catalog import Category, Input
QueryText = Annotated[str, Field(min_length=1, max_length=500)]
class RetrievalRequest(Input):
query: str = Field(min_length=1, max_length=500)
query: QueryText
mode: Literal["keyword"] = "keyword"
top_k: int = Field(default=5, ge=1, le=20)
category: Category | None = None