一个极简的 Go 代理服务,把 LongCat 的接入方式统一包装成官方 OpenAI Chat Completions 接口。
当前对外暴露的接口:
GET /GET /dashboardGET /api/statsPOST /v1/chat/completionsGET /v1/modelsGET /healthz
当前支持两种 LongCat 上游模式:
LONGCAT_UPSTREAM_FORMAT=openai直接转发到https://api.longcat.chat/openai/v1/chat/completionsLONGCAT_UPSTREAM_FORMAT=anthropic转发到https://api.longcat.chat/anthropic/v1/messages,并把请求和响应转换为 OpenAI 官方格式
程序默认读取当前目录下的 key.txt,每行一个 LongCat Key,例如:
lc-xxx-1
lc-xxx-2
lc-xxx-3go run .或构建后运行:
go build .
./longcat_api2apiWindows:
go build .
.\longcat_api2api.exe程序默认会读取当前目录下的 config.json。
也可以通过环境变量指定其他配置文件:
$env:CONFIG_FILE = "custom-config.json"
.\longcat_api2api.exe优先级:
- 环境变量覆盖配置文件
- 配置文件覆盖内置默认值
客户端鉴权支持两种请求头:
Authorization: Bearer <your-client-api-key>X-API-Key: <your-client-api-key>
配置方式:
- 在
config.json的api_keys数组里配置一个或多个客户端 key - 或使用环境变量
CLIENT_API_KEYS=key1,key2,key3
行为说明:
api_keys为空时,不启用客户端鉴权api_keys有值时,/api/stats、/v1/models、/v1/chat/completions需要鉴权/和/dashboard允许直接打开,前端会弹出认证层,调用/api/auth/login校验 API Key 并写入登录 Cookie,再用该会话请求受保护的数据接口GET /healthz保持不鉴权,方便健康检查
CONFIG_FILE配置文件路径,默认config.jsonADDR服务监听地址,默认:8080PORT仅在未设置ADDR时生效,例如8080KEY_FILEkey 文件路径,默认key.txtCLIENT_API_KEYS客户端鉴权 key,多个值用英文逗号分隔LONGCAT_UPSTREAM_FORMAT上游格式,openai或anthropic,默认openaiLONGCAT_OPENAI_BASEOpenAI 风格上游地址,默认https://api.longcat.chat/openaiLONGCAT_ANTHROPIC_BASEAnthropic 风格上游地址,默认https://api.longcat.chat/anthropicHTTP_TIMEOUT上游超时时间,支持秒数或 Go duration,默认120sKEY_COOLDOWNkey 进入冷却后的时长,默认90sDATA_FILE本地统计数据文件,默认data/stats.jsonAUTO_SAVE_INTERVAL本地数据自动保存周期,默认5s
浏览器打开:
http://127.0.0.1:8080/或者:
http://127.0.0.1:8080/dashboard可视化展示:
- 总 Key、活跃、冷却中、禁用
- RPM、总请求、总输入 Token、总输出 Token
- 成功请求、失败请求、成功率、运行时长
- 模型调用热度
- HTTP 状态分布
- 最近实时日志
统计数据会自动持久化到本地 JSON 文件中,默认路径为:
data/stats.json持久化内容包括:
- Key 状态
- 总请求数、成功数、失败数
- 总输入 Token、总输出 Token
- 模型调用统计
- HTTP 状态码统计
- 最近日志
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "LongCat-Flash-Chat",
"messages": [
{"role": "system", "content": "你是一个助手"},
{"role": "user", "content": "你好"}
]
}'流式:
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "LongCat-Flash-Chat",
"stream": true,
"messages": [
{"role": "user", "content": "给我一句自我介绍"}
]
}'- 当前未实现
tool_calls请求体转换,只做基础 finish reason 映射 - 当前未实现 Responses API,只实现
chat.completions