finai/backend/app/schemas/chat.py

53 lines
1.1 KiB
Python

from datetime import datetime
from pydantic import BaseModel, Field
class ConversationCreate(BaseModel):
title: str = "新会话"
class ConversationResponse(BaseModel):
id: int
title: str
created_at: datetime
last_message_at: datetime | None
class ChatStreamRequest(BaseModel):
question: str = ""
conversation_id: int | None = None
attachment_ids: list[int] = Field(default_factory=list)
class ReferenceResponse(BaseModel):
source_title: str
snippet: str | None = None
page_no: str | None = None
section: str | None = None
source_url: str | None = None
class AttachmentResponse(BaseModel):
id: int
file_type: str
data_url: str | None = None
class MessageResponse(BaseModel):
id: int
conversation_id: int
question: str
answer: str | None
status: str
token_usage: int
pu_usage: int
created_at: datetime
references: list[ReferenceResponse]
attachments: list[AttachmentResponse] = Field(default_factory=list)
class FeedbackCreate(BaseModel):
rating: str = Field(pattern="^(up|down|correct)$")
comment: str | None = None