53 lines
1.1 KiB
Python
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
|