Commit Graph

3 Commits

Author SHA1 Message Date
Vertex-AI-Step-Builder
f7508d915b 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>
2025-12-31 09:32:37 +00:00
Vertex-AI-Step-Builder
3f9dbb5448 feat: 实现完整的 OpenAI 兼容工具调用代理功能
新增功能:
- 实现 ResponseParser 模块,支持解析 LLM 响应中的工具调用
- 支持双花括号格式的工具调用 {{...}}
- 工具调用智能解析,处理嵌套 JSON 结构
- 生成符合 OpenAI 规范的 tool_call ID
- 完善的数据库日志记录功能

核心特性:
- 低耦合高内聚的架构设计
- 完整的单元测试覆盖(23个测试全部通过)
- 100% 兼容 OpenAI REST API tools 字段行为
- 支持流式和非流式响应
- 支持 content + tool_calls 混合响应

技术实现:
- response_parser.py: 响应解析器模块
- services.py: 业务逻辑层(工具注入、响应处理)
- models.py: 数据模型定义
- main.py: API 端点和请求处理
- database.py: SQLite 数据库操作

测试覆盖:
- 工具调用解析(各种格式)
- 流式响应处理
- 原生 OpenAI 格式支持
- 边缘情况处理

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 08:46:11 +00:00
Vertex-AI-Step-Builder
0d14c98cf4 feat: Initial commit of LLM Tool Proxy 2025-12-31 06:35:08 +00:00