This commit is contained in:
2026-03-29 05:31:19 +08:00
parent 4db5de796a
commit 645358862a
10 changed files with 134 additions and 106 deletions
+16 -27
View File
@@ -18,9 +18,10 @@
│ ├── engine.py
│ ├── main.py
│ ├── model_catalog.py
│ ├── start_api.py
│ ├── start_openai.py
│ └── schemas.py
├── .dockerignore
├── .env.example
├── config.json
├── docker-compose.yml
├── Dockerfile
@@ -53,20 +54,14 @@
## 配置项
可通过 `.env` 配置,建议先复制 `.env.example`:
项目只读取一个配置文件:`config.json`。
- `MODEL_CONFIG_FILE`:模型配置文件路径,默认 `config.json`
- `MODEL_KEY`:要启动的模型键,留空时使用 `config.json` 中 `default_model`
- `MODEL_NAME`:兜底模型名(仅在不使用配置文件时生效)
- `OPENAI_HOST`:OpenAI 协议服务监听地址,默认 `0.0.0.0`
- `OPENAI_PORT`:OpenAI 协议服务监听端口,默认 `8001`
- `TENSOR_PARALLEL_SIZE`:张量并行数,双卡建议为 `2`
- `GPU_MEMORY_UTILIZATION`:单卡显存利用率,建议 `0.90~0.95`
- `MAX_MODEL_LEN`:模型最大上下文长度
- `MAX_NUM_SEQS`:并发序列数量
- `MAX_TOKENS`:单请求最大生成长度
- `DTYPE`:精度类型,默认 `bfloat16`
- `API_KEY`:可选接口访问密钥
- `services.api.host` / `services.api.port`:自定义推理服务监听地址与端口(默认 `0.0.0.0:8000`)
- `services.openai.host` / `services.openai.port`:OpenAI 协议服务监听地址与端口(默认 `0.0.0.0:8001`)
- `api_key`:接口访问密钥(同时用于 8000 与 8001)
- `tensor_parallel_size`:张量并行数,双卡建议 `2`
- `dtype`:推理精度,默认 `bfloat16`
- `selected_model`:当前生效模型,留空时回退到 `default_model`
## config.json 说明
@@ -78,7 +73,7 @@
启动时会按以下优先级选模型:
1. `.env` 中 `MODEL_KEY`
1. `config.json` 中 `selected_model`
2. `config.json` 中 `default_model`
模型被选中后,会自动覆盖运行参数,包括:
@@ -93,27 +88,21 @@
## 部署步骤
1. 准备环境变量:
1. 修改 `config.json` 中的 `selected_model` 与服务参数。
```bash
cp .env.example .env
```
2. 修改 `.env` 中的 `MODEL_KEY`,选择要启动的模型。
3. 构建并启动容器:
2. 构建并启动容器:
```bash
docker compose up -d --build
```
4. 验证自定义推理服务:
3. 验证自定义推理服务:
```bash
curl http://localhost:8000/health
```
5. 验证 OpenAI 协议服务:
4. 验证 OpenAI 协议服务:
```bash
curl http://localhost:8001/v1/models
@@ -132,14 +121,14 @@ curl -X POST "http://localhost:8000/v1/generate" \
```bash
curl -X POST "http://localhost:8001/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${API_KEY}" \
-H "Authorization: Bearer <config.json中的api_key>" \
-d "{\"model\":\"Qwen3.5-35B-A3B-GPTQ-Int4\",\"messages\":[{\"role\":\"user\",\"content\":\"你好,介绍一下你自己\"}],\"temperature\":0.7}"
```
## OpenClaw 调用说明
- Base URL 使用 `http://<服务器IP>:8001/v1`
- API Key 使用 `.env` 中 `API_KEY` 对应值
- API Key 使用 `config.json` 中 `api_key`
- 模型名使用 `config.json` 中 `served_model_name`
- 若使用工具调用,`config.json` 中应配置 `tool_call_parser` 与 `enable_auto_tool_choice`