工具使用
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Command Code OpenAI Bridge
|
||||
|
||||
Command Code OpenAI Bridge 是一个仅在本机运行的 OpenAI Chat Completions 兼容服务。它把 OpenAI 客户端发送的文本对话转交给 Command Code CLI 执行,并将最终 assistant 回复以标准 Chat Completions 格式返回。
|
||||
Command Code OpenAI Bridge 是一个仅在本机运行的 OpenAI 兼容服务。它把 Chat Completions 文本对话与 function calling 决策转交给 Command Code CLI 执行,并提供 Responses API 文本子集。
|
||||
|
||||
默认 API 地址:`http://127.0.0.1:18000/v1`
|
||||
|
||||
@@ -12,7 +12,7 @@ Command Code OpenAI Bridge 是一个仅在本机运行的 OpenAI Chat Completion
|
||||
2. 保留消息的角色、顺序和完整文本,将全部会话历史序列化后通过 stdin 传给 Command Code。
|
||||
3. 在启动服务的终端中显示模型状态、turn、工具调用、工具结果、stderr、最终回答和耗时。
|
||||
4. 从 Command Code 的 NDJSON 结构化结果中提取 `finalText`。
|
||||
5. 只把最终回复和可用的 token usage 返回给 API 客户端。
|
||||
5. 把最终回复、外部 function tool calls 和可用的 token usage 返回给 API 客户端。
|
||||
|
||||
服务不保存跨请求会话。每次调用都使用 `--no-session`,对话历史由客户端维护并在请求中完整提供。
|
||||
|
||||
@@ -20,16 +20,17 @@ Command Code OpenAI Bridge 是一个仅在本机运行的 OpenAI Chat Completion
|
||||
|
||||
- 提供 `GET /health`、`GET /v1/models` 和 `POST /v1/chat/completions`。
|
||||
- 支持字符串形式的 `content` 和 OpenAI 文本 part 数组。
|
||||
- 接受 `stream: true`,但 Command Code 调用仍为非流式;完整结果生成后再一次性封装为 SSE 事件返回。
|
||||
- Chat Completions 支持标准 function tools、工具选择、assistant tool calls 和 tool 结果消息;工具由客户端执行。
|
||||
- 接受 `stream: true`;普通 Chat 实时转发文本 delta,function calling 在完整决策校验后发送工具调用 SSE。
|
||||
- 支持中文、Unicode、Markdown、代码块和较长文本。
|
||||
- 模型名称通过 YAML 配置映射到实际 Command Code 模型。
|
||||
- 请求内容通过 stdin 传输,不受命令行参数长度限制。
|
||||
- 同时只运行一个 Command Code 请求;忙碌时返回 HTTP 429。
|
||||
- 同时只运行一个 Command Code 请求;其余请求进入有限 FIFO 队列,队列已满时返回 HTTP 429。
|
||||
- 客户端断开、请求取消、总超时和 Ctrl+C 会终止当前子进程组。
|
||||
- 单次 Command Code 失败后,HTTP 服务可继续处理后续请求。
|
||||
- Authorization 请求头会被忽略,服务强制绑定 `127.0.0.1`。
|
||||
|
||||
当前只支持文本 Chat Completions。`stream: true` 是客户端兼容层,不会实时输出 Command Code 的生成过程。图片、音频、function calling、Responses API 和服务端会话均未实现。
|
||||
当前只接受文本消息和文本输入。普通 Chat SSE 实时转发 Command Code 文本 delta;function calling 会等待完整决策通过 JSON 与参数 Schema 校验后发送 `tool_calls`。Responses 只实现文本子集。图片、音频、文件输入、Computer Use、托管工具和服务端 Chat 会话均未实现。
|
||||
|
||||
## 技术实现
|
||||
|
||||
@@ -50,6 +51,7 @@ src/
|
||||
├── server.ts # HTTP 路由、单请求状态和错误处理
|
||||
├── openai.ts # 请求校验、消息转换和响应生成
|
||||
├── command-code.ts # CLI 检查、子进程管理和最终结果提取
|
||||
├── tool-calling.ts # 外部 function calling 决策解析与参数校验
|
||||
├── renderer.ts # Command Code 事件的终端显示
|
||||
└── config.ts # YAML 配置读取与校验
|
||||
|
||||
@@ -71,7 +73,7 @@ command-code status --json
|
||||
./scripts/start.sh
|
||||
```
|
||||
|
||||
默认配置位于 `config.yaml`,配置示例位于 `config.example.yaml`。常用配置包括监听端口、Command Code 可执行文件、工作目录、总超时、请求体上限、最大 turn 数、权限模式和模型映射。
|
||||
默认配置位于 `config.yaml`,配置示例位于 `config.example.yaml`。常用配置包括监听端口、Command Code 可执行文件、工作目录、总超时、请求体上限、等待队列上限、最大 turn 数、权限模式和模型映射。
|
||||
|
||||
调用示例:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user