Files
life-echo/api/app/features/conversation/schemas.py
Sully 53e0065e3e refactor(api): TOML 配置 SSOT、统一错误契约、Auth/事务加固与可观测性 (#33)
配置 SSOT(TOML + .env)
统一错误契约
Auth 与事务边界
Redis / Celery 可靠性:业务 Redis(DB/0)与 Celery broker/backend(DB/1)显式拆分;连接池、sync client
可观测性(OpenTelemetry + LGTM)
2026-05-22 13:44:50 +08:00

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