db1eae6e745d26b99185b7be8c6537e972060382
Some checks failed
CI / lint-and-compile (push) Has been cancelled
Lingma OpenAI Gateway
把本地 Lingma 能力封装为 OpenAI 兼容接口,支持:
GET /v1/modelsPOST /v1/chat/completionsstream=true(SSE)- Bearer API Key 鉴权
1. 准备目录
mkdir -p bin
cp ../Lingma bin/Lingma
chmod +x bin/Lingma
2. 配置环境变量
cp .env.example .env
至少修改:
API_KEYSLINGMA_USERNAMELINGMA_PASSWORD
如果你的 Lingma 路径不同,修改:
LINGMA_BIN
可选(企业专属域):
DEDICATED_DOMAIN_URL
3. Docker 运行
docker compose up -d --build
查看日志:
docker compose logs -f
4. 调用示例
模型列表
curl -s http://127.0.0.1:8317/v1/models \
-H "Authorization: Bearer sk-DXKFFEL0A1bN8Teqz"
说明:
id保持 Lingma 原始模型 key(兼容 OpenAI 客户端)name提供可读名称(如qwen3.6-plus)- 调用
/v1/chat/completions时,model既可传id,也可直接传name
非流式聊天
curl -s http://127.0.0.1:8317/v1/chat/completions \
-H "Authorization: Bearer sk-DXKFFEL0A1bN8Teqz" \
-H "Content-Type: application/json" \
-d '{
"model": "dashscope_qmodel",
"messages": [
{"role": "user", "content": "写一个 python hello world"}
]
}'
流式聊天
curl -N http://127.0.0.1:8317/v1/chat/completions \
-H "Authorization: Bearer sk-DXKFFEL0A1bN8Teqz" \
-H "Content-Type: application/json" \
-d '{
"model": "dashscope_qmodel",
"stream": true,
"messages": [
{"role": "user", "content": "介绍一下你自己"}
]
}'
5. 统计与监控
支持调用次数与 token(估算值)统计:
GET /internal/stats(需 Bearer)GET /metrics(Prometheus 文本格式)
示例:
curl -s http://127.0.0.1:8317/internal/stats \
-H "Authorization: Bearer sk-xxx"
curl -s http://127.0.0.1:8317/metrics
说明:
usage.prompt_tokens/completion_tokens为估算值(按字节近似换算)。- 非流式响应里会附带
usage字段。
6. 容器内自动登录
已内置自动登录能力(Playwright + Chromium)。
你可以主动触发:
curl -s -X POST http://127.0.0.1:8317/internal/auto-login/start \
-H "Authorization: Bearer sk-DXKFFEL0A1bN8Teqz"
查看状态:
curl -s http://127.0.0.1:8317/internal/auto-login/status \
-H "Authorization: Bearer sk-DXKFFEL0A1bN8Teqz"
说明:
- 若未登录,
/v1/models与/v1/chat/completions也会尝试自动登录。 - 账号密码来自
.env(LINGMA_USERNAME/LINGMA_PASSWORD)。 - 建议仅在受控环境使用,并妥善保护
.env。
7. agent 模式
在 v1 中,若 model 传 agent 或 lingma-agent,会走 agent 模式。
curl -s http://127.0.0.1:8317/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "agent",
"messages": [
{"role": "user", "content": "分析这个项目目录结构"}
]
}'
Description
Languages
Python
98.8%
Shell
0.9%
Dockerfile
0.3%