diff --git a/README.md b/README.md index a92ea86..d1195ad 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,34 @@ # LLM Proxy - OpenAI API 代理和训练数据收集工具 -一个透明的 HTTP 代理服务器,用于拦截和保存 LLM API 请求,自动导出为 JSONL 格式的训练数据。 +一个透明的 HTTP 代理服务器,用于拦截和保存 LLM API 请求,自动导出为 JSONL 格式的训练数据。项目仓库: -## 功能特性 +https://gitea.spdis.space/spdis/LLMPoxy.git + +## 功能特性(当前状态) - ✅ **透明代理**:拦截所有 `/v1/` 开头的 LLM API 请求 - ✅ **零配置**:无需在代理中配置 API Key,直接使用客户端的 Key -- ✅ **多提供商支持**:支持 OpenAI、Anthropic、GLM、OpenRouter 等所有 OpenAI 兼容的 API +- ✅ **多提供商支持(标准 OpenAI 兼容)**:支持 OpenAI / DeepSeek / OpenRouter 等标准 OpenAI 接口 - ✅ **智能解析**:自动识别和解析 LLM 请求,忽略其他请求 - ✅ **思考过程保存**:自动保存模型的推理内容(reasoning) -- ✅ **多轮对话支持**:完整保存对话上下文 +- ✅ **多轮对话支持(Cherry Studio 已实战验证)**:自动根据首个 system + 首轮 user 推断对话 ID,将多次请求归并为同一条对话 - ✅ **JSONL 导出**:一键导出为标准训练数据格式 - ✅ **SQLite 存储**:轻量级数据库,无需额外配置 +## 已完成的支持 + +- ✅ Cherry Studio 这类“每次请求带完整 history”的 OpenAI API 调用范式: + - 自动识别多轮对话并归并 conversation + - 完整捕获系统提示词、用户消息、思考过程(reasoning / reasoning_content)、工具调用(tool_calls)和工具返回(tool) + - 导出的 JSONL 中,按时间顺序拼接对话,避免重复的 system / user 消息 + +## 待办 / 规划 + +- ⏳ 适配 Trae 等自动化 IDE: + - 分析 Trae 的请求模式(包括内部调度、子模型调用、工具链) + - 在不破坏现有 Cherry Studio 方案的前提下,扩展 host/path 识别规则 + - 验证多子模型、多工具链场景下的数据结构是否适合作为训练样本 + ## 安装 ### 1. 克隆项目 @@ -58,14 +74,7 @@ networksetup -setsecurewebproxy Wi-Fi 127.0.0.1 8080 在浏览器或系统设置中配置 HTTP/HTTPS 代理为 `127.0.0.1:8080` -### 使用客户端 - -#### Trae - -1. 启动代理服务器 -2. 配置系统代理(见上) -3. 在 Trae 中正常使用,配置任何 API 提供商和 Key -4. 所有请求自动被拦截和保存 +### 使用客户端(当前推荐) #### CherryStudio