配置 SSOT(TOML + .env) 统一错误契约 Auth 与事务边界 Redis / Celery 可靠性:业务 Redis(DB/0)与 Celery broker/backend(DB/1)显式拆分;连接池、sync client 可观测性(OpenTelemetry + LGTM)
56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
|
|
class CreateConversationResponse(BaseModel):
|
|
id: str
|
|
user_id: str
|
|
started_at: str
|
|
status: str
|
|
|
|
|
|
class ConversationListItemResponse(BaseModel):
|
|
model_config = ConfigDict(populate_by_name=True)
|
|
|
|
id: str
|
|
title: str
|
|
avatar_url: str | None = Field(None, alias="avatarUrl")
|
|
latest_message_preview: str | None = Field(None, alias="latestMessagePreview")
|
|
latest_message_time: int = Field(alias="latestMessageTime")
|
|
started_at: int = Field(alias="startedAt")
|
|
unread_count: int = Field(0, alias="unreadCount")
|
|
is_default_assistant: bool = Field(alias="isDefaultAssistant")
|
|
has_user_message: bool = Field(alias="hasUserMessage")
|
|
|
|
|
|
class ConversationDetailResponse(BaseModel):
|
|
id: str
|
|
user_id: str
|
|
started_at: str
|
|
ended_at: str | None = None
|
|
duration_seconds: int | None = None
|
|
summary: str | None = None
|
|
status: str
|
|
current_topic: str | None = None
|
|
conversation_stage: str | None = None
|
|
|
|
|
|
class EndConversationResponse(BaseModel):
|
|
id: str
|
|
status: str
|
|
ended_at: str
|
|
duration_seconds: int | None = None
|
|
|
|
|
|
class DeleteConversationResponse(BaseModel):
|
|
message: str
|
|
|
|
|
|
class MessageResponse(BaseModel):
|
|
model_config = ConfigDict(extra="allow")
|
|
|
|
|
|
class OrganizeResponse(BaseModel):
|
|
message: str
|
|
conversation_id: str
|
|
segments_count: int
|