@jeffreycao/copilot-api 1.15.2 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +91 -67
- package/README.zh-CN.md +153 -87
- package/dist/server-DWY7PmxG.js.map +1 -1
- package/dist/token-DArgO8vi.js.map +1 -1
- package/package.json +1 -1
package/README.zh-CN.md
CHANGED
|
@@ -1,13 +1,71 @@
|
|
|
1
1
|
# Copilot API Proxy
|
|
2
2
|
|
|
3
|
+
<p align="center">
|
|
4
|
+
<a href="https://www.npmjs.com/package/@jeffreycao/copilot-api"><img src="https://img.shields.io/npm/v/@jeffreycao/copilot-api.svg" alt="npm version"></a>
|
|
5
|
+
<a href="https://github.com/caozhiyuan/copilot-api/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a>
|
|
6
|
+
<a href="https://github.com/caozhiyuan/copilot-api/stargazers"><img src="https://img.shields.io/github/stars/caozhiyuan/copilot-api.svg" alt="GitHub stars"></a>
|
|
7
|
+
<a href="https://bun.sh"><img src="https://img.shields.io/badge/Bun-%3E%3D1.2.x-orange.svg" alt="Bun >= 1.2.x"></a>
|
|
8
|
+
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-%3E%3D22.13.0-green.svg" alt="Node >= 22.13.0"></a>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
3
11
|
[English](./README.md) | 简体中文
|
|
4
12
|
|
|
13
|
+
## 目录
|
|
14
|
+
|
|
15
|
+
- [Copilot API Proxy](#copilot-api-proxy)
|
|
16
|
+
- [目录](#目录)
|
|
17
|
+
- [重要说明](#重要说明)
|
|
18
|
+
- [项目概览](#项目概览)
|
|
19
|
+
- [快速开始](#快速开始)
|
|
20
|
+
- [功能特性](#功能特性)
|
|
21
|
+
- [前置要求](#前置要求)
|
|
22
|
+
- [安装](#安装)
|
|
23
|
+
- [从源码运行](#从源码运行)
|
|
24
|
+
- [开发模式](#开发模式)
|
|
25
|
+
- [生产模式](#生产模式)
|
|
26
|
+
- [通过 npx 使用](#通过-npx-使用)
|
|
27
|
+
- [配合 Docker 使用](#配合-docker-使用)
|
|
28
|
+
- [Electron 桌面应用](#electron-桌面应用)
|
|
29
|
+
- [桌面应用截图](#桌面应用截图)
|
|
30
|
+
- [与 Claude Code 一起使用](#与-claude-code-一起使用)
|
|
31
|
+
- [通过 `--claude-code` 标志进行交互式配置](#通过---claude-code-标志进行交互式配置)
|
|
32
|
+
- [通过 `settings.json` 手动配置](#通过-settingsjson-手动配置)
|
|
33
|
+
- [与 OpenCode 一起使用](#与-opencode-一起使用)
|
|
34
|
+
- [最小配置](#最小配置)
|
|
35
|
+
- [与 Codex 一起使用](#与-codex-一起使用)
|
|
36
|
+
- [Codex `config.toml` 参考配置](#codex-configtoml-参考配置)
|
|
37
|
+
- [GPT Tool Search](#gpt-tool-search)
|
|
38
|
+
- [插件集成](#插件集成)
|
|
39
|
+
- [Claude Code 插件集成(基于 marketplace)](#claude-code-插件集成基于-marketplace)
|
|
40
|
+
- [Opencode 插件](#opencode-插件)
|
|
41
|
+
- [使用量查看器](#使用量查看器)
|
|
42
|
+
- [Usage Viewer 截图](#usage-viewer-截图)
|
|
43
|
+
- [命令结构](#命令结构)
|
|
44
|
+
- [命令行选项](#命令行选项)
|
|
45
|
+
- [全局选项](#全局选项)
|
|
46
|
+
- [Start 命令选项](#start-命令选项)
|
|
47
|
+
- [Auth 命令选项](#auth-命令选项)
|
|
48
|
+
- [Debug 命令选项](#debug-命令选项)
|
|
49
|
+
- [配置(config.json)](#配置configjson)
|
|
50
|
+
- [API 认证](#api-认证)
|
|
51
|
+
- [API 端点](#api-端点)
|
|
52
|
+
- [OpenAI 兼容端点](#openai-兼容端点)
|
|
53
|
+
- [Codex 后端代理端点](#codex-后端代理端点)
|
|
54
|
+
- [Anthropic 兼容端点](#anthropic-兼容端点)
|
|
55
|
+
- [使用量监控端点](#使用量监控端点)
|
|
56
|
+
- [Admin / 配置端点](#admin--配置端点)
|
|
57
|
+
- [使用示例](#使用示例)
|
|
58
|
+
- [使用建议](#使用建议)
|
|
59
|
+
- [CLAUDE.md 或 AGENTS.md 推荐内容](#claudemd-或-agentsmd-推荐内容)
|
|
60
|
+
|
|
61
|
+
<a id="important-notes"></a>
|
|
62
|
+
|
|
5
63
|
## 重要说明
|
|
6
64
|
|
|
7
65
|
> [!IMPORTANT]
|
|
8
66
|
> **使用前请先注意以下几点:**
|
|
9
67
|
>
|
|
10
|
-
> 1. **Claude Code 配置:** 与 Claude Code 搭配使用时,请将模型 ID 配置为 `claude-opus-4-8`。示例 claude `settings.json` 见 [通过 `settings.json` 手动配置](#manual-configuration-with-settingsjson)。
|
|
68
|
+
> 1. **Claude Code 配置:** 与 Claude Code 搭配使用时,请将模型 ID 配置为 `claude-opus-4-8[1m]`。示例 claude `settings.json` 见 [通过 `settings.json` 手动配置](#manual-configuration-with-settingsjson)。
|
|
11
69
|
>
|
|
12
70
|
> 2. **内置 `copilot`、`codex` 与第三方 provider:** 执行 `npx @jeffreycao/copilot-api@latest auth`,可选择 `copilot`、`codex`、`deepseek`、`custom` 等 provider。
|
|
13
71
|
>
|
|
@@ -15,6 +73,8 @@
|
|
|
15
73
|
|
|
16
74
|
---
|
|
17
75
|
|
|
76
|
+
<a id="project-overview"></a>
|
|
77
|
+
|
|
18
78
|
## 项目概览
|
|
19
79
|
|
|
20
80
|
这是一个小型 AI gateway,可以使用 GitHub Copilot、内置 `codex` provider,也可以使用 DashScope 等已配置的第三方 provider。GitHub Copilot 现在是可选能力:如果本地没有 GitHub token,只要至少配置了一个启用中的 provider,服务仍可按 provider-only 模式启动。
|
|
@@ -23,6 +83,35 @@ AI gateway 会从同一个本地端点暴露 OpenAI / Anthropic 兼容 API,让
|
|
|
23
83
|
|
|
24
84
|
在 GitHub Copilot 路径上,AI gateway 会在可用时优先使用 Copilot 原生的 Anthropic 风格 Messages API,在重工具调用场景下保留更原生的 Claude 行为。
|
|
25
85
|
|
|
86
|
+
<a id="quick-start"></a>
|
|
87
|
+
|
|
88
|
+
## 快速开始
|
|
89
|
+
|
|
90
|
+
最快启动一个可用网关的方式:
|
|
91
|
+
|
|
92
|
+
```sh
|
|
93
|
+
npx @jeffreycao/copilot-api@latest start
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
服务默认监听 `http://localhost:4141`。也可以先登录 GitHub Copilot 或配置第三方 provider:
|
|
97
|
+
|
|
98
|
+
```sh
|
|
99
|
+
npx @jeffreycao/copilot-api@latest auth login
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
验证网关已启动:
|
|
103
|
+
|
|
104
|
+
```sh
|
|
105
|
+
curl http://localhost:4141/v1/models
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
> [!NOTE]
|
|
109
|
+
> token usage 存储需要 Node.js >= 22.13.0 或 Bun。详见[通过 npx 使用](#using-with-npx)。
|
|
110
|
+
|
|
111
|
+
接下来可按你的客户端选择指南:[与 Claude Code 一起使用](#using-with-claude-code)、[与 OpenCode 一起使用](#using-with-opencode)、[与 Codex 一起使用](#using-with-codex),或通过 [Docker](#using-with-docker) 运行。
|
|
112
|
+
|
|
113
|
+
<a id="features"></a>
|
|
114
|
+
|
|
26
115
|
## 功能特性
|
|
27
116
|
|
|
28
117
|
- **OpenAI 与 Anthropic 双兼容**:通过 `/v1/responses`、`/v1/chat/completions`、`/v1/models`、`/v1/embeddings` 和 `/v1/messages` 对外暴露同一个本地 AI gateway。
|
|
@@ -35,6 +124,8 @@ AI gateway 会从同一个本地端点暴露 OpenAI / Anthropic 兼容 API,让
|
|
|
35
124
|
- **灵活的认证与部署选项**:支持交互式登录、直接 token、个人 / Business / Enterprise、GitHub Enterprise、opencode OAuth 和自定义数据目录。
|
|
36
125
|
- **多 provider 路由**:可暴露 `/:provider/...` 路由,也可在顶层 API 上使用 `model: "provider/model"`。
|
|
37
126
|
|
|
127
|
+
<a id="prerequisites"></a>
|
|
128
|
+
|
|
38
129
|
## 前置要求
|
|
39
130
|
|
|
40
131
|
- Bun(>= 1.2.x)
|
|
@@ -42,6 +133,8 @@ AI gateway 会从同一个本地端点暴露 OpenAI / Anthropic 兼容 API,让
|
|
|
42
133
|
- 只有在使用 GitHub Copilot provider 时,才需要已订阅 Copilot 的 GitHub 账号
|
|
43
134
|
- 如果不使用 GitHub Copilot,需要至少一个已配置 provider 的 API key 或 OAuth 登录
|
|
44
135
|
|
|
136
|
+
<a id="installation"></a>
|
|
137
|
+
|
|
45
138
|
## 安装
|
|
46
139
|
|
|
47
140
|
安装依赖:
|
|
@@ -50,11 +143,7 @@ AI gateway 会从同一个本地端点暴露 OpenAI / Anthropic 兼容 API,让
|
|
|
50
143
|
bun install
|
|
51
144
|
```
|
|
52
145
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
```sh
|
|
56
|
-
bun run start start
|
|
57
|
-
```
|
|
146
|
+
<a id="running-from-source"></a>
|
|
58
147
|
|
|
59
148
|
## 从源码运行
|
|
60
149
|
|
|
@@ -72,6 +161,10 @@ bun run dev start
|
|
|
72
161
|
bun run start start
|
|
73
162
|
```
|
|
74
163
|
|
|
164
|
+
> 结尾的 `start` 是传给 `src/main.ts` 的 CLI 子命令,不是笔误:`bun run dev start` 是 watch 模式,`bun run start start` 是生产模式。
|
|
165
|
+
|
|
166
|
+
<a id="using-with-npx"></a>
|
|
167
|
+
|
|
75
168
|
## 通过 npx 使用
|
|
76
169
|
|
|
77
170
|
你可以直接用 npx 运行本项目:
|
|
@@ -104,6 +197,8 @@ npx @jeffreycao/copilot-api@latest auth login --provider dashscope
|
|
|
104
197
|
npx @jeffreycao/copilot-api@latest start
|
|
105
198
|
```
|
|
106
199
|
|
|
200
|
+
<a id="using-with-docker"></a>
|
|
201
|
+
|
|
107
202
|
## 配合 Docker 使用
|
|
108
203
|
|
|
109
204
|
构建镜像:
|
|
@@ -127,6 +222,8 @@ docker run -p 4141:4141 -v $(pwd)/copilot-data:/root/.local/share/copilot-api co
|
|
|
127
222
|
docker run -p 4141:4141 -e GH_TOKEN=your_github_token_here copilot-api
|
|
128
223
|
```
|
|
129
224
|
|
|
225
|
+
<a id="electron-desktop-app"></a>
|
|
226
|
+
|
|
130
227
|
## Electron 桌面应用
|
|
131
228
|
|
|
132
229
|
如果你更喜欢图形界面,仓库里还提供了位于 `desktop/` 的 Electron 桌面应用。它支持 GitHub Copilot 登录、OpenAI Codex OAuth,以及 Kimi、DeepSeek、DashScope、OpenRouter 或自定义 provider 的 API Key 配置。授权或配置 provider 后,可以一键启动或停止本地代理,并在界面里直接查看本地端点、鉴权 Header、可用模型、额度和日志。
|
|
@@ -155,6 +252,8 @@ chmod +x Copilot-API-*-linux-x86_64.AppImage
|
|
|
155
252
|
<img src="./docs/screenshots/desktop-token-usage.png" alt="Copilot API 桌面应用 Token 用量页" width="49%" />
|
|
156
253
|
</p>
|
|
157
254
|
|
|
255
|
+
<a id="using-with-claude-code"></a>
|
|
256
|
+
|
|
158
257
|
## 与 Claude Code 一起使用
|
|
159
258
|
|
|
160
259
|
这个 AI gateway 可以为 [Claude Code](https://docs.anthropic.com/en/claude-code) 提供后端能力。Claude Code 是 Anthropic 提供的实验性面向开发者的对话式 AI 助手。
|
|
@@ -225,6 +324,8 @@ npx @jeffreycao/copilot-api@latest start --claude-code
|
|
|
225
324
|
|
|
226
325
|
也可以参考 IDE 集成说明:[Add Claude Code to your IDE](https://docs.anthropic.com/en/docs/claude-code/ide-integrations)
|
|
227
326
|
|
|
327
|
+
<a id="using-with-opencode"></a>
|
|
328
|
+
|
|
228
329
|
## 与 OpenCode 一起使用
|
|
229
330
|
|
|
230
331
|
OpenCode 已经有直接的 GitHub Copilot provider。本节适用于你希望让 OpenCode 通过 `@ai-sdk/anthropic` 指向这个 AI gateway,并复用本 README 前面提到的 agent 行为时。
|
|
@@ -296,6 +397,8 @@ npx @jeffreycao/copilot-api@latest start
|
|
|
296
397
|
- `options.baseURL` 应设为 `http://localhost:4141/v1`;Anthropic SDK 会自动补上 `/messages`、`/models` 和 `/messages/count_tokens`。
|
|
297
398
|
- 如果你在此代理中启用了 `auth.apiKeys`,请把 `dummy` 替换为真实 key;否则任意占位值都可以。
|
|
298
399
|
|
|
400
|
+
<a id="using-with-codex"></a>
|
|
401
|
+
|
|
299
402
|
## 与 Codex 一起使用
|
|
300
403
|
|
|
301
404
|
这个 AI gateway 也可以为 Codex 提供后端能力。
|
|
@@ -309,6 +412,7 @@ model_provider = "copilot_api"
|
|
|
309
412
|
model_reasoning_summary = "auto"
|
|
310
413
|
model_context_window = 272000
|
|
311
414
|
model_auto_compact_token_limit = 244800
|
|
415
|
+
web_search = "live"
|
|
312
416
|
|
|
313
417
|
[model_providers.copilot_api]
|
|
314
418
|
name = "OpenAI"
|
|
@@ -344,6 +448,8 @@ enabled = false
|
|
|
344
448
|
|
|
345
449
|
该映射只作用于顶层 GitHub Copilot 路由。provider-scoped 路由不会使用 `modelMappings`,因此内置 `/codex` provider 仍会原生处理 `codex-auto-review`。
|
|
346
450
|
|
|
451
|
+
<a id="gpt-tool-search"></a>
|
|
452
|
+
|
|
347
453
|
## GPT Tool Search
|
|
348
454
|
|
|
349
455
|
对于 `gpt-5.4+` 这类 GPT Responses 模型,这个 AI gateway 可以通过一个很小的 MCP bridge 暴露 Responses `tool_search`。Claude Code 和 opencode 都可以使用同一个 bridge,前提是客户端会加载 MCP server,并且 Anthropic Messages 流量会经过这个 AI gateway。
|
|
@@ -391,7 +497,7 @@ AI gateway 内部现在会把 OpenAI Responses `tool_search` 配置成 client-ex
|
|
|
391
497
|
|
|
392
498
|
本项目为 Claude Code 和 opencode 提供了插件集成。
|
|
393
499
|
|
|
394
|
-
|
|
500
|
+
### Claude Code 插件集成(基于 marketplace)
|
|
395
501
|
|
|
396
502
|
Claude Code 集成现在拆分为两个插件:
|
|
397
503
|
|
|
@@ -423,7 +529,7 @@ Claude Code 集成现在拆分为两个插件:
|
|
|
423
529
|
|
|
424
530
|
`tool-search` 插件内置了 [GPT Tool Search](#gpt-tool-search) 一节描述的同一个 MCP bridge,因此安装该插件后,Claude Code 用户无需再手动配置 `tool_search` server。
|
|
425
531
|
|
|
426
|
-
|
|
532
|
+
### Opencode 插件
|
|
427
533
|
|
|
428
534
|
subagent 标记生成器被打包为一个 opencode 插件,位于 `plugin/opencode/subagent-marker.js`。
|
|
429
535
|
|
|
@@ -447,6 +553,8 @@ cp plugin/opencode/subagent-marker.js ~/.config/opencode/plugins/
|
|
|
447
553
|
|
|
448
554
|
该插件会挂接到 `session.created`、`session.deleted`、`chat.message` 和 `chat.headers` 事件上,以无缝提供 subagent marker 能力。
|
|
449
555
|
|
|
556
|
+
<a id="using-the-usage-viewer"></a>
|
|
557
|
+
|
|
450
558
|
## 使用量查看器
|
|
451
559
|
|
|
452
560
|
服务启动后,控制台会输出一个 Copilot 使用量看板 URL。这个看板是一个用于监控 API 用量的 Web 界面。
|
|
@@ -482,6 +590,8 @@ cp plugin/opencode/subagent-marker.js ~/.config/opencode/plugins/
|
|
|
482
590
|
<img src="./docs/screenshots/usage-viewer.png" alt="Copilot API Usage Viewer 页面" width="900" />
|
|
483
591
|
</p>
|
|
484
592
|
|
|
593
|
+
<a id="command-structure"></a>
|
|
594
|
+
|
|
485
595
|
## 命令结构
|
|
486
596
|
|
|
487
597
|
Copilot API 现在使用子命令结构,主要命令包括:
|
|
@@ -490,6 +600,8 @@ Copilot API 现在使用子命令结构,主要命令包括:
|
|
|
490
600
|
- `auth`:仅执行 provider 登录或配置流程,不启动服务。可用于 GitHub Copilot 登录、Codex OAuth,或第三方 provider API key 配置。
|
|
491
601
|
- `debug`:显示诊断信息,包括版本、运行时详情、文件路径以及认证状态,便于排障与支持。
|
|
492
602
|
|
|
603
|
+
<a id="command-line-options"></a>
|
|
604
|
+
|
|
493
605
|
## 命令行选项
|
|
494
606
|
|
|
495
607
|
### 全局选项
|
|
@@ -591,60 +703,6 @@ Copilot API 现在使用子命令结构,主要命令包括:
|
|
|
591
703
|
- `supportPdf`:可选,控制该模型是否支持 PDF/document content。默认 `false`,不支持时会把 PDF 转成提示文本;设为 `true` 时会把 PDF/document 转成 OpenAI Chat Completions 的 file part。
|
|
592
704
|
- `toolContentSupportType`:可选,配置该模型的 tool result content 支持能力,值为 `array`、`image`、`pdf` 的数组。provider 侧未配置时默认只发送 string tool content。若 `supportPdf` 为 `true` 但这里不包含 `pdf`,tool result 里的 file part 会被转成 user role 消息。Copilot 主链路不使用这个 provider 默认,仍按 array + image 且不支持 PDF 的能力处理。
|
|
593
705
|
- `type`:可选,按模型覆盖 provider 的协议类型。支持 `anthropic`、`openai-compatible` 和 `openai-responses`。设置后,provider 的 `/v1/messages` 路由会使用该模型的 type 替代 provider 级别的 type 进行请求路由、认证头解析和上游端点选择。适用于 OpenCode Go 等上游对不同模型同时支持 OpenAI 兼容和 Anthropic Messages API 的 provider。覆盖 type 时,认证头按覆盖后 type 的默认值解析(Anthropic 默认 `x-api-key`;OpenAI 兼容/Responses 默认 `authorization`)。
|
|
594
|
-
|
|
595
|
-
DashScope 模型配置示例:
|
|
596
|
-
```json
|
|
597
|
-
{
|
|
598
|
-
"providers": {
|
|
599
|
-
"dashscope": {
|
|
600
|
-
"type": "openai-compatible",
|
|
601
|
-
"enabled": true,
|
|
602
|
-
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode",
|
|
603
|
-
"apiKey": "sk-your-dashscope-key",
|
|
604
|
-
"pricingCurrency": "CNY",
|
|
605
|
-
"models": {
|
|
606
|
-
"qwen3.7-plus": {
|
|
607
|
-
"temperature": 1,
|
|
608
|
-
"topP": 0.95,
|
|
609
|
-
"topK": 20,
|
|
610
|
-
"extraBody": {
|
|
611
|
-
"preserve_thinking": true
|
|
612
|
-
}
|
|
613
|
-
},
|
|
614
|
-
"glm-5.1": {
|
|
615
|
-
"temperature": 0.7,
|
|
616
|
-
"topP": 0.95,
|
|
617
|
-
"contextCache": true,
|
|
618
|
-
"pricing": {
|
|
619
|
-
"tiers": [
|
|
620
|
-
{
|
|
621
|
-
"maxInputTokens": 32000,
|
|
622
|
-
"input": 6,
|
|
623
|
-
"cachedInput": 1.2,
|
|
624
|
-
"explicitCachedInput": 0.6,
|
|
625
|
-
"cacheCreationInput": 7.5,
|
|
626
|
-
"output": 24
|
|
627
|
-
},
|
|
628
|
-
{
|
|
629
|
-
"maxInputTokens": 200000,
|
|
630
|
-
"input": 8,
|
|
631
|
-
"cachedInput": 1.6,
|
|
632
|
-
"explicitCachedInput": 0.8,
|
|
633
|
-
"cacheCreationInput": 10,
|
|
634
|
-
"output": 28
|
|
635
|
-
}
|
|
636
|
-
]
|
|
637
|
-
},
|
|
638
|
-
"extraBody": {
|
|
639
|
-
"preserve_thinking": true
|
|
640
|
-
}
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
}
|
|
644
|
-
}
|
|
645
|
-
}
|
|
646
|
-
```
|
|
647
|
-
内置 token 价格覆盖 Codex GPT 模型(USD)、DashScope `qwen3.7-max`、`qwen3.7-plus`、`glm-5.1`、`glm-5.2`、`kimi/kimi-k3`(CNY),DeepSeek `deepseek-v4-flash`、`deepseek-v4-pro`(CNY),OpenCode Go 模型(`hy3`、`gpt-5.6-luna`、`glm-5.2`、`grok-4.5`、`deepseek-v4-flash`、`deepseek-v4-pro`、`kimi-k2.7-code`、`kimi-k3`、`mimo-v2.5`、`mimo-v2.5-pro`、`qwen3.7-plus`、`qwen3.7-max`、`minimax-m2.7`、`minimax-m3`,USD),以及 Kimi `k3`、`k3-256k` 模型(USD)。用户配置的 `pricing` 优先于内置价格。DashScope 若上游 usage 中出现 `cache_creation_input_tokens` 字段,cached tokens 按显式缓存读价计费;否则 `cachedInput` 作为隐式缓存读价。DeepSeek 的 `prompt_cache_hit_tokens` 会归入 cached input,`prompt_cache_miss_tokens` 会归入普通 input。
|
|
648
706
|
- **smallModel:** 无工具预热消息的回退模型(例如 Claude Code 的探测请求);默认是 `gpt-5-mini`。网关会对无工具的预热或探测请求强制使用该小模型,以避免消耗 premium 请求。该行为仅在 GitHub Copilot 账户为非 token-based 计费时生效(`token_based_billing` 为 false);对于 token-based 计费账户,预热小模型回退会被跳过,因为不存在需要节省的 premium 请求配额。
|
|
649
707
|
- **contextManagement:** 控制代理是否为 Responses API 附加 `context_management` 压缩指令。`messages` 作用于被翻译成 Responses API 的 Anthropic 风格 `/v1/messages` 请求,包括 `openai-responses` provider 的 Messages 路由,默认值为 `true`。`responses` 作用于 native `/v1/responses` 流量,包括 `provider/model` 别名和内置 `codex` provider,默认值为 `false`。只有在确认客户端支持 context management compaction 后,才建议在 Responses API 下启用 `responses`。启用后,请求体会带上 `context_management`,并在后续轮次中仅保留最新的压缩承载内容。**注意:** 对于 GPT-5.6 及以上模型(如 `gpt-5.6-sol`、`gpt-5.6-terra`、`gpt-5.6-luna`),context management 功能会被强制禁用,因为开启后会破坏这些模型的 prompt 缓存命中。此强制覆盖优先于 `contextManagement` 和 `modelResponsesApiCompactThresholds` 配置。
|
|
650
708
|
- **modelResponsesApiCompactThresholds:** 按模型覆盖 Responses API 的 `compact_threshold`,仅在代理自动附加 `context_management` 时使用。它的优先级高于 `resolveResponsesCompactThreshold` 基于 `max_prompt_tokens * ratio` 的兜底阈值。默认将 `gpt-5.4` 和 `gpt-5.5` 设为 `217600`(`272000 * 0.8`)。未列出的模型继续使用原有兜底逻辑。
|
|
@@ -663,6 +721,8 @@ Copilot API 现在使用子命令结构,主要命令包括:
|
|
|
663
721
|
|
|
664
722
|
编辑此文件后即可自定义 prompts,或替换为你自己的快速模型。修改完成后请重启服务(或重新执行命令),让缓存中的配置刷新生效。
|
|
665
723
|
|
|
724
|
+
<a id="api-authentication"></a>
|
|
725
|
+
|
|
666
726
|
## API 认证
|
|
667
727
|
|
|
668
728
|
- **受保护的普通路由:** 当配置了 `auth.apiKeys` 且非空时,除 `/`、`/usage-viewer` 和 `/usage-viewer/` 以外的普通路由都需要认证。
|
|
@@ -687,6 +747,8 @@ curl http://localhost:4141/admin/config/model-mappings \
|
|
|
687
747
|
-H "x-api-key: your_admin_api_key"
|
|
688
748
|
```
|
|
689
749
|
|
|
750
|
+
<a id="api-endpoints"></a>
|
|
751
|
+
|
|
690
752
|
## API 端点
|
|
691
753
|
|
|
692
754
|
服务端提供多个 OpenAI / Anthropic 兼容端点。请求会根据所选模型和 `provider/model` 别名路由到 GitHub Copilot、内置 `codex` provider 或已配置的 provider。
|
|
@@ -695,20 +757,20 @@ curl http://localhost:4141/admin/config/model-mappings \
|
|
|
695
757
|
|
|
696
758
|
这些端点模拟 OpenAI API 结构。
|
|
697
759
|
|
|
698
|
-
| 端点
|
|
699
|
-
|
|
|
700
|
-
| `POST /v1/responses`
|
|
760
|
+
| 端点 | 方法 | 说明 |
|
|
761
|
+
| --------------------------- | ---- | -------------------------------------------------------------------------------------------------------- |
|
|
762
|
+
| `POST /v1/responses` | `POST` | OpenAI 中用于生成模型响应的高级接口。支持 `openai-responses` provider 的 `provider/model` 别名。 |
|
|
701
763
|
| `POST /v1/chat/completions` | `POST` | 为给定聊天对话创建模型响应。支持 `openai-compatible` provider 的 `provider/model` 别名;目标 provider 已配置时可在没有 Copilot 的情况下使用。 |
|
|
702
|
-
| `GET /v1/models`
|
|
703
|
-
| `POST /v1/embeddings`
|
|
764
|
+
| `GET /v1/models` | `GET` | 列出 Copilot 模型以及已启用 provider 的 `provider/model-id` 模型。来自 Codex 客户端(`User-Agent` 以 `codex` 开头)的请求会转发到 Codex Models 上游。 |
|
|
765
|
+
| `POST /v1/embeddings` | `POST` | 创建表示输入文本的向量嵌入。 |
|
|
704
766
|
|
|
705
767
|
### Codex 后端代理端点
|
|
706
768
|
|
|
707
769
|
这些端点要求已有可用的 Codex 登录态。每个端点同时提供无版本前缀和 `/v1` 两种路径。
|
|
708
770
|
|
|
709
|
-
| 端点
|
|
710
|
-
|
|
|
711
|
-
| `POST /alpha/search`<br>`POST /v1/alpha/search`
|
|
771
|
+
| 端点 | 方法 | 说明 |
|
|
772
|
+
| ---------------------------------------------------------- | ---- | ---------------------------------------------------------------------------------------------------- |
|
|
773
|
+
| `POST /alpha/search`<br>`POST /v1/alpha/search` | `POST` | 将 JSON 请求体和查询参数透明转发到 Codex Alpha Search 上游。 |
|
|
712
774
|
| `POST /images/generations`<br>`POST /v1/images/generations` | `POST` | 将 JSON 图片生成请求转发到 Codex Images 上游。请求未携带 `Content-Type` 时,网关默认补充 `application/json`。 |
|
|
713
775
|
| `POST /images/edits`<br>`POST /v1/images/edits` | `POST` | 将图片编辑请求转发到 Codex Images 上游。请使用 `multipart/form-data`,并让 HTTP 客户端自动生成 `boundary`;网关会保留传入的 content type,并以流式方式转发上传请求体。 |
|
|
714
776
|
|
|
@@ -718,14 +780,14 @@ curl http://localhost:4141/admin/config/model-mappings \
|
|
|
718
780
|
|
|
719
781
|
这些端点设计为兼容 Anthropic Messages API。provider 级的 models、Responses、alpha-search 和 images 路由同时支持无版本前缀与 `/v1` 两种路径;Messages 路由仍使用 `/v1`。
|
|
720
782
|
|
|
721
|
-
| 端点
|
|
722
|
-
|
|
|
723
|
-
| `POST /v1/messages`
|
|
724
|
-
| `POST /v1/messages/count_tokens`
|
|
725
|
-
| `POST /:provider/v1/messages`
|
|
726
|
-
| `GET /:provider/models`<br>`GET /:provider/v1/models`
|
|
727
|
-
| `POST /:provider/v1/messages/count_tokens`
|
|
728
|
-
| `POST /:provider/responses`<br>`POST /:provider/v1/responses` | `POST` | 将 OpenAI Responses 请求代理到已配置的 `openai-responses` provider(含 `codex`)。
|
|
783
|
+
| 端点 | 方法 | 说明 |
|
|
784
|
+
| ------------------------------------------------------------- | ---- | ---------------------------------------------------------------------------------------------------- |
|
|
785
|
+
| `POST /v1/messages` | `POST` | 为给定对话创建模型响应。支持已配置 provider 的 `provider/model` 别名,包括通过 `openai-compatible` provider 做翻译。 |
|
|
786
|
+
| `POST /v1/messages/count_tokens` | `POST` | 计算一组消息的 token 数。支持已配置 provider 的 `provider/model` 别名。 |
|
|
787
|
+
| `POST /:provider/v1/messages` | `POST` | 将 Anthropic Messages 请求代理到已配置的 Anthropic provider,或翻译到 OpenAI 兼容 / OpenAI Responses provider。 |
|
|
788
|
+
| `GET /:provider/models`<br>`GET /:provider/v1/models` | `GET` | 将模型列表请求代理到已配置的 provider。对 `codex` 默认返回内置模型目录;Codex 客户端(`User-Agent` 以 `codex` 开头)会转发到 Codex Models 上游。 |
|
|
789
|
+
| `POST /:provider/v1/messages/count_tokens` | `POST` | 为 provider 路由请求在本地计算 token 数。 |
|
|
790
|
+
| `POST /:provider/responses`<br>`POST /:provider/v1/responses` | `POST` | 将 OpenAI Responses 请求代理到已配置的 `openai-responses` provider(含 `codex`)。 |
|
|
729
791
|
| `POST /:provider/alpha/search`<br>`POST /:provider/v1/alpha/search` | `POST` | 代理 alpha-search 请求。对 `codex` 转发到 Codex Alpha Search 上游;其他 provider 转发到 `{baseUrl}/v1/alpha/search`。 |
|
|
730
792
|
| `POST /:provider/images/generations`<br>`POST /:provider/v1/images/generations` | `POST` | 代理图片生成。对 `codex` 使用 Codex Images 上游;其他 provider 转发到 `{baseUrl}/v1/images/generations`(15 分钟超时)。 |
|
|
731
793
|
| `POST /:provider/images/edits`<br>`POST /:provider/v1/images/edits` | `POST` | 代理图片编辑。对 `codex` 使用 Codex Images 上游;其他 provider 以 multipart/流式方式转发到 `{baseUrl}/v1/images/edits`(15 分钟超时)。 |
|
|
@@ -734,19 +796,21 @@ curl http://localhost:4141/admin/config/model-mappings \
|
|
|
734
796
|
|
|
735
797
|
用于监控 Copilot 用量与额度的新端点。
|
|
736
798
|
|
|
737
|
-
| 端点
|
|
738
|
-
|
|
|
739
|
-
| `GET /usage`
|
|
740
|
-
| `GET /token`
|
|
799
|
+
| 端点 | 方法 | 说明 |
|
|
800
|
+
| -------------- | ---- | ------------------------------------------------- |
|
|
801
|
+
| `GET /usage` | `GET` | 获取详细的 Copilot 使用统计与额度信息。 |
|
|
802
|
+
| `GET /token` | `GET` | 获取当前 API 正在使用的 Copilot token。 |
|
|
741
803
|
|
|
742
804
|
### Admin / 配置端点
|
|
743
805
|
|
|
744
806
|
这些端点用于本地管理操作,只接受 `auth.adminApiKey`。
|
|
745
807
|
|
|
746
|
-
| 端点
|
|
747
|
-
|
|
|
748
|
-
| `GET /admin/config/model-mappings`
|
|
749
|
-
| `POST /admin/config/model-mappings`
|
|
808
|
+
| 端点 | 方法 | 说明 |
|
|
809
|
+
| ------------------------------------ | ---- | --------------------------------------------------------------- |
|
|
810
|
+
| `GET /admin/config/model-mappings` | `GET` | 返回当前 `config.json` 路径以及生效中的 `modelMappings` 映射。 |
|
|
811
|
+
| `POST /admin/config/model-mappings` | `POST` | 只更新 `config.json` 里的 `modelMappings` 字段,并回传更新后的结果。 |
|
|
812
|
+
|
|
813
|
+
<a id="example-usage"></a>
|
|
750
814
|
|
|
751
815
|
## 使用示例
|
|
752
816
|
|
|
@@ -785,13 +849,15 @@ curl http://localhost:4141/dashscope/v1/messages \
|
|
|
785
849
|
-d '{"model":"qwen3.6-plus","max_tokens":1024,"messages":[{"role":"user","content":"hello"}]}'
|
|
786
850
|
```
|
|
787
851
|
|
|
852
|
+
<a id="usage-tips"></a>
|
|
853
|
+
|
|
788
854
|
## 使用建议
|
|
789
855
|
|
|
790
856
|
<a id="claudemd-or-agentsmd-recommended-content"></a>
|
|
791
857
|
|
|
792
858
|
### CLAUDE.md 或 AGENTS.md 推荐内容
|
|
793
859
|
|
|
794
|
-
|
|
860
|
+
与 `agent-inject` 插件 `CLAUDE_PLUGIN_ENABLE_QUESTION_RULES=1` 注入的提醒一致,供不使用该插件时手动添加。加入 Claude Code 的 `CLAUDE.md` 或 opencode/codex 的 `AGENTS.md`:
|
|
795
861
|
|
|
796
862
|
```
|
|
797
863
|
- Prohibited from directly asking questions to users, MUST use question tool.
|