- 添加 Conversation CRUD 端点(创建/列表/获取/删除) - 添加 Message 操作端点(发送/列表) - 注册 conversations 路由到 API v1 - 修复测试 fixture 的 API 路径前缀 - 添加 async_client fixture alias Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
63 lines
1.5 KiB
Python
63 lines
1.5 KiB
Python
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class ConversationCreate(BaseModel):
|
|
tenant_id: str
|
|
employee_id: str
|
|
user_id: str = Field(..., max_length=200)
|
|
title: str | None = Field(None, max_length=500)
|
|
|
|
|
|
class ConversationUpdate(BaseModel):
|
|
title: str | None = Field(None, max_length=500)
|
|
|
|
|
|
class MessageCreate(BaseModel):
|
|
content: str
|
|
|
|
|
|
class MessageResponse(BaseModel):
|
|
id: str
|
|
conversation_id: str
|
|
role: str
|
|
content: str
|
|
token_count: int | None
|
|
sources: str | None
|
|
created_at: datetime
|
|
|
|
@classmethod
|
|
def from_model(cls, message) -> "MessageResponse":
|
|
return cls(
|
|
id=message.id,
|
|
conversation_id=message.conversation_id,
|
|
role=message.role.value,
|
|
content=message.content,
|
|
token_count=message.token_count,
|
|
sources=message.sources,
|
|
created_at=message.created_at,
|
|
)
|
|
|
|
|
|
class ConversationResponse(BaseModel):
|
|
id: str
|
|
tenant_id: str
|
|
employee_id: str
|
|
user_id: str
|
|
title: str | None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
@classmethod
|
|
def from_model(cls, conv) -> "ConversationResponse":
|
|
return cls(
|
|
id=conv.id,
|
|
tenant_id=conv.tenant_id,
|
|
employee_id=conv.employee_id,
|
|
user_id=conv.user_id,
|
|
title=conv.title,
|
|
created_at=conv.created_at,
|
|
updated_at=conv.updated_at,
|
|
)
|