feat: 优化 chat 接口并修复 function 消息处理
主要变更: - 使用原生 Request 对象接收请求数据 - 先记录原始 client_request(完整 JSON)到数据库 - 然后解析为 IncomingRequest 对象进行验证 - 添加请求解析的错误处理 修复问题: - ChatMessage 的 content 改为 Optional[str],支持空值 - 添加 name 字段支持 function 角色的工具名称 - 添加 tool_calls 字段支持 assistant 消息的工具调用 - 修复 function 类型消息 content 为空时报错的问题 优化改进: - 保留完整的原始客户端请求 - 更好的数据完整性和可追溯性 - 代码清理:移除重复的 import 语句 测试验证: - 多轮工具调用对话正常工作 - function 消息空 content 正常处理 - 所有单元测试通过 (20/20) - 完全兼容 OpenAI API 消息格式 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,9 @@ from typing import List, Dict, Any, Optional
|
||||
class ChatMessage(BaseModel):
|
||||
"""Represents a single message in the chat history."""
|
||||
role: str
|
||||
content: str
|
||||
content: Optional[str] = None
|
||||
name: Optional[str] = None # For function role messages
|
||||
tool_calls: Optional[List[Dict[str, Any]]] = None # For assistant messages with tool calls
|
||||
|
||||
class Function(BaseModel):
|
||||
"""Represents the function definition within a tool."""
|
||||
|
||||
Reference in New Issue
Block a user