Commit 4c2e7342 authored by boshi-xixixi's avatar boshi-xixixi

feat(conversations): 统一对话 ID 与标题,敏感词结构化返回,新增删除接口与 CORS 支持

- schemas:ConversationResponse/ConversationDocOut 增加 title;ConversationDocOut 增加 id(_id 可选)
- schemas:新增 SensitiveWordInfoResponse、DeleteResult;MessageResponse/MessageSendResult 的 sensitive_words_found 改为结构化列表

关联问题:#7 #8 #9 #10 #11 #12
parent aea76f67
......@@ -2,6 +2,19 @@ from typing import List, Optional
from pydantic import BaseModel
from datetime import datetime
class SensitiveWordInfoResponse(BaseModel):
"""敏感词信息结构化模型
字段说明:
- word: 敏感词文本
- category: 一级分类
- subcategory: 二级分类
- severity: 严重程度(数值越大越严重)
"""
word: str
category: Optional[str] = None
subcategory: Optional[str] = None
severity: Optional[int] = None
class MessageCreate(BaseModel):
content: str
......@@ -10,17 +23,20 @@ class MessageResponse(BaseModel):
content: str
timestamp: datetime
contains_sensitive_words: bool
sensitive_words_found: List[str]
sensitive_words_found: List[SensitiveWordInfoResponse]
class ConversationResponse(BaseModel):
id: str
title: Optional[str] = None
messages: List[MessageResponse]
created_at: datetime
updated_at: datetime
class ConversationDocOut(BaseModel):
_id: str
id: str
_id: Optional[str] = None
user_id: Optional[str] = None
title: Optional[str] = None
messages: List[MessageResponse]
created_at: datetime
updated_at: datetime
......@@ -28,7 +44,11 @@ class ConversationDocOut(BaseModel):
class CreatedId(BaseModel):
id: str
class DeleteResult(BaseModel):
deleted: bool
message: Optional[str] = None
class MessageSendResult(BaseModel):
contains_sensitive_words: bool
sensitive_words_found: List[str]
sensitive_words_found: List[SensitiveWordInfoResponse]
assistant_response: str
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment