feat: add graceful shutdown endpoint and cli service management
- Add /shutdown endpoint for graceful server shutdown - Add 'aha ps' command to list running services - Add comprehensive API documentation for shutdown endpoint - Enhance CLI with --allow-remote-shutdown flag - Implement process management module with service discovery - Add graceful shutdown handling for Ctrl+C signals
This commit is contained in:
+59
-5
@@ -113,11 +113,11 @@ aha run -m qwen3asr-0.6b -i "audio.wav" --weight-path /path/to/model
|
||||
|
||||
### serv - 启动服务
|
||||
|
||||
仅启动 HTTP 服务,不下载模型。必须通过 `--weight-path` 指定本地模型路径。
|
||||
使用指定模型启动 HTTP 服务。`--weight-path` 是可选的 - 如果不指定,默认使用 `~/.aha/{model_id}`。
|
||||
|
||||
**语法:**
|
||||
```bash
|
||||
aha serv [OPTIONS] --model <MODEL> --weight-path <WEIGHT_PATH>
|
||||
aha serv [OPTIONS] --model <MODEL> [--weight-path <WEIGHT_PATH>]
|
||||
```
|
||||
|
||||
**选项:**
|
||||
@@ -127,21 +127,69 @@ aha serv [OPTIONS] --model <MODEL> --weight-path <WEIGHT_PATH>
|
||||
| `-a, --address <ADDRESS>` | 服务监听地址 | 127.0.0.1 |
|
||||
| `-p, --port <PORT>` | 服务监听端口 | 10100 |
|
||||
| `-m, --model <MODEL>` | 模型类型(必选) | - |
|
||||
| `--weight-path <WEIGHT_PATH>` | 本地模型权重路径(必选) | - |
|
||||
| `--weight-path <WEIGHT_PATH>` | 本地模型权重路径(可选) | ~/.aha/{model_id} |
|
||||
| `--allow-remote-shutdown` | 允许远程关机请求(不推荐) | false |
|
||||
|
||||
**示例:**
|
||||
|
||||
```bash
|
||||
# 使用默认模型路径启动服务 (~/.aha/{model_id})
|
||||
aha serv -m qwen3vl-2b
|
||||
|
||||
# 使用本地模型启动服务
|
||||
aha serv -m qwen3vl-2b --weight-path /path/to/model
|
||||
|
||||
# 指定端口启动
|
||||
aha serv -m qwen3vl-2b --weight-path /path/to/model -p 8080
|
||||
aha serv -m qwen3vl-2b -p 8080
|
||||
|
||||
# 指定监听地址
|
||||
aha serv -m qwen3vl-2b --weight-path /path/to/model -a 0.0.0.0
|
||||
aha serv -m qwen3vl-2b -a 0.0.0.0
|
||||
|
||||
# 启用远程关机(不推荐用于生产环境)
|
||||
aha serv -m qwen3vl-2b --allow-remote-shutdown
|
||||
```
|
||||
|
||||
### ps - 列出运行中的服务
|
||||
|
||||
列出所有当前正在运行的 AHA 服务,显示进程 ID、端口和状态。
|
||||
|
||||
**语法:**
|
||||
```bash
|
||||
aha ps [OPTIONS]
|
||||
```
|
||||
|
||||
**选项:**
|
||||
|
||||
| 选项 | 说明 | 默认值 |
|
||||
|------|------|--------|
|
||||
| `-c, --compact` | 紧凑输出格式(仅显示服务 ID) | false |
|
||||
|
||||
**示例:**
|
||||
|
||||
```bash
|
||||
# 列出所有运行中的服务(表格格式)
|
||||
aha ps
|
||||
|
||||
# 紧凑输出(仅服务 ID)
|
||||
aha ps -c
|
||||
```
|
||||
|
||||
**输出格式:**
|
||||
|
||||
```
|
||||
Service ID PID Model Port Address Status
|
||||
-------------------------------------------------------------------------------------
|
||||
56860@10100 56860 N/A 10100 127.0.0.1 Running
|
||||
```
|
||||
|
||||
**字段说明:**
|
||||
- `Service ID`: 服务唯一标识符,格式为 `pid@port`
|
||||
- `PID`: 进程 ID
|
||||
- `Model`: 模型名称(如果未检测到则显示 N/A)
|
||||
- `Port`: 服务端口号
|
||||
- `Address`: 服务监听地址
|
||||
- `Status`: 服务状态(Running、Stopping、Unknown)
|
||||
|
||||
### download - 下载模型
|
||||
|
||||
仅下载指定模型,不启动服务。
|
||||
@@ -254,6 +302,12 @@ aha -m qwen3vl-2b -a 0.0.0.0 -p 8080
|
||||
- **格式**: OpenAI Chat Completion 格式
|
||||
- **流式支持**: 不支持
|
||||
|
||||
### 关机接口
|
||||
- **端点**: `POST /shutdown`
|
||||
- **功能**: 优雅地关闭服务器
|
||||
- **安全性**: 默认仅允许本地访问,使用 `--allow-remote-shutdown` 标志启用远程访问(不推荐)
|
||||
- **格式**: JSON 响应
|
||||
|
||||
## 向后兼容性
|
||||
|
||||
为了保持与旧版本的兼容性,以下两种使用方式是等效的:
|
||||
|
||||
Reference in New Issue
Block a user