增加工具使用功能

This commit is contained in:
2026-07-03 20:33:22 +08:00
parent 8c05311628
commit 04fefcf488
10 changed files with 662 additions and 71 deletions
+9 -2
View File
@@ -1,6 +1,6 @@
# Simple Chat API
一个使用 FastAPI 和 DeepSeek API 的最小多轮对话服务。每个会话的系统提示词消息历史保存在本地 JSON 文件中。
一个使用 FastAPI 和 DeepSeek API 的多轮 Agent 服务。每个会话的系统提示词消息历史和工具调用过程保存在本地 JSON 文件中。
## 启动
@@ -13,7 +13,7 @@ uv run uvicorn main:app --reload
服务默认运行在 `http://127.0.0.1:8000`,交互式 API 文档位于 `/docs`
服务会自动加载项目根目录的 `.env`,已有系统环境变量优先级更高。可配置 `DEEPSEEK_BASE_URL``DEEPSEEK_MODEL``DEFAULT_SYSTEM_PROMPT``CHAT_DATA_DIR`,完整示例见 `.env.example`。第一版应只使用一个 Uvicorn worker。
服务会自动加载项目根目录的 `.env`,已有系统环境变量优先级更高。可配置 `DEEPSEEK_BASE_URL``DEEPSEEK_MODEL``DEFAULT_SYSTEM_PROMPT``CHAT_DATA_DIR` 和工具调用限制,完整示例见 `.env.example`。第一版应只使用一个 Uvicorn worker。
## 使用
@@ -35,6 +35,13 @@ curl -X POST http://127.0.0.1:8000/sessions/SESSION_ID/messages \
API 返回及存储的每条消息都包含 UTC `created_at`。只有模型完整响应成功后,本轮消息才会写入会话历史。
模型可以按需调用服务端白名单工具:
- `get_current_time`:查询指定 IANA 时区的当前时间。
- `calculate`:计算受限的基础算术表达式,不执行任意 Python 代码。
工具调用无需增加请求参数。服务端会执行工具并把结果返回模型,直到模型生成最终回答。发送消息接口通过 `tools_use` 返回本轮使用的工具名称,完整调用过程可通过历史接口查询;未调用工具时 `tools_use` 为空数组。
获取指定会话的完整历史:
```bash