update WhichModel enum

This commit is contained in:
jhqxxx
2026-03-31 18:45:01 +08:00
parent c5551e7fb8
commit 741869d6dd
44 changed files with 691 additions and 812 deletions
+22 -44
View File
@@ -15,7 +15,7 @@ http://127.0.0.1:10100
You can customize this when starting the service:
```bash
aha cli -m qwen3-0.6b -a 0.0.0.0 -p 8080
aha cli -m Qwen/Qwen3-0.6B -a 0.0.0.0 -p 8080
```
### Authentication
@@ -109,7 +109,7 @@ GET /models
"object": "list",
"data": [
{
"id": "qwen3-0.6b",
"id": "Qwen/Qwen3-0.6B",
"object": "model",
"created": null,
"owned_by": "Qwen"
@@ -132,7 +132,7 @@ GET /models
|-------|------|-------------|
| `object` | string | Fixed value: "list" |
| `data` | array | Array of model objects (currently contains one loaded model) |
| `id` | string | Model identifier in kebab-case (e.g., "qwen3-0.6b") |
| `id` | string | Model identifier in kebab-case (e.g., "Qwen/Qwen3-0.6B") |
| `object` | string | Fixed value: "model" |
| `created` | integer\|null | Unix timestamp (currently null) |
| `owned_by` | string | Model owner/organization name |
@@ -156,7 +156,7 @@ POST /chat/completions
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `model` | string | Yes | Model identifier (e.g., "qwen3-0.6b") |
| `model` | string | Yes | Model identifier (e.g., "Qwen/Qwen3-0.6B") |
| `messages` | array | Yes | Array of message objects |
| `temperature` | number | No | Sampling temperature (0-2, default: 1) |
| `top_p` | number | No | Nucleus sampling (0-1, default: 1) |
@@ -197,7 +197,7 @@ Supported content types:
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"messages": [
{"role": "user", "content": "Hello!"}
]
@@ -210,7 +210,7 @@ curl http://127.0.0.1:10100/chat/completions \
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain Rust in one sentence."}
@@ -226,7 +226,7 @@ curl http://127.0.0.1:10100/chat/completions \
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3vl-2b",
"model": "Qwen/Qwen3-VL-2B-Instruct",
"messages": [
{
"role": "user",
@@ -245,7 +245,7 @@ curl http://127.0.0.1:10100/chat/completions \
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ocr",
"model": "deepseek-ai/DeepSeek-OCR",
"messages": [
{
"role": "user",
@@ -264,7 +264,7 @@ curl http://127.0.0.1:10100/chat/completions \
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "glm-asr-nano-2512",
"model": "ZhipuAI/GLM-ASR-Nano-2512",
"messages": [
{
"role": "user",
@@ -286,7 +286,7 @@ curl http://127.0.0.1:10100/chat/completions \
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"messages": [
{"role": "user", "content": "Tell me a story"}
],
@@ -312,7 +312,7 @@ data: [DONE]
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"choices": [
{
"index": 0,
@@ -329,13 +329,6 @@ data: [DONE]
}
```
#### Supported Models
- Text: `qwen3-0.6b`, `minicpm4-0.5b`
- Vision: `qwen2.5vl-3b`, `qwen2.5vl-7b`, `qwen3vl-2b`, `qwen3vl-4b`, `qwen3vl-8b`, `qwen3vl-32b`
- OCR: `deepseek-ocr`, `hunyuan-ocr`, `paddleocr-vl`
- ASR: `glm-asr-nano-2512`, `fun-asr-nano-2512`, `qwen3asr-0.6b`, `qwen3asr-1.7b`
### Audio Speech
Generate speech from text (Text-to-Speech).
@@ -349,7 +342,7 @@ POST /audio/speech
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `model` | string | Yes | Model identifier (e.g., "voxcpm1.5") |
| `model` | string | Yes | Model identifier (e.g., "OpenBMB/VoxCPM-1.5") |
| `messages` | array | Yes | Array of message objects |
#### Example
@@ -358,7 +351,7 @@ POST /audio/speech
curl http://127.0.0.1:10100/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "voxcpm1.5",
"model": "OpenBMB/VoxCPM-1.5",
"messages": [
{
"role": "user",
@@ -375,10 +368,6 @@ curl http://127.0.0.1:10100/audio/speech \
Returns audio data in base64 WAV format.
#### Supported Models
- `voxcpm`, `voxcpm1.5`
### Audio Transcriptions
Transcribe audio files to text (Automatic Speech Recognition).
@@ -433,7 +422,7 @@ Both endpoints use the same handler and return identical responses. The `/v1/aud
curl -X POST http://127.0.0.1:10100/audio/transcriptions \
-H "Authorization: Bearer NO_NEED" \
-F file="@./audio.wav" \
-F model="qwen3asr-0.6b"
-F model="Qwen/Qwen3-ASR-0.6B"
```
**With language specification:**
@@ -442,7 +431,7 @@ curl -X POST http://127.0.0.1:10100/audio/transcriptions \
curl -X POST http://127.0.0.1:10100/v1/audio/transcriptions \
-H "Authorization: Bearer NO_NEED" \
-F file="@./chinese_audio.wav" \
-F model="qwen3asr-0.6b" \
-F model="Qwen/Qwen3-ASR-0.6B" \
-F language="zh"
```
@@ -452,7 +441,7 @@ curl -X POST http://127.0.0.1:10100/v1/audio/transcriptions \
curl -X POST http://127.0.0.1:10100/v1/audio/transcriptions \
-H "Authorization: Bearer NO_NEED" \
-F file="@./audio.wav" \
-F model="qwen3asr-0.6b" \
-F model="Qwen/Qwen3-ASR-0.6B" \
-F temperature="0.0"
```
@@ -490,13 +479,6 @@ curl -X POST http://127.0.0.1:10100/v1/audio/transcriptions \
}
```
#### Supported Models
- `qwen3asr-0.6b`
- `qwen3asr-1.7b`
- `glm-asr-nano-2512`
- `fun-asr-nano-2512`
#### File Upload Limit
Maximum audio file size: 100 MB
@@ -514,7 +496,7 @@ POST /images/remove_background
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `model` | string | Yes | Model identifier (e.g., "rmbg2.0") |
| `model` | string | Yes | Model identifier (e.g., "AI-ModelScope/RMBG-2.0") |
| `messages` | array | Yes | Array of message objects |
#### Example
@@ -525,7 +507,7 @@ POST /images/remove_background
curl http://127.0.0.1:10100/images/remove_background \
-H "Content-Type: application/json" \
-d '{
"model": "rmbg2.0",
"model": "AI-ModelScope/RMBG-2.0",
"messages": [
{
"role": "user",
@@ -543,7 +525,7 @@ curl http://127.0.0.1:10100/images/remove_background \
curl http://127.0.0.1:10100/images/remove_background \
-H "Content-Type: application/json" \
-d '{
"model": "rmbg2.0",
"model": "AI-ModelScope/RMBG-2.0",
"messages": [
{
"role": "user",
@@ -559,10 +541,6 @@ curl http://127.0.0.1:10100/images/remove_background \
Returns the processed image in base64 PNG format.
#### Supported Models
- `rmbg2.0`
### Graceful Shutdown
Gracefully shut down the AHA server. This endpoint initiates a graceful shutdown process that:
@@ -605,7 +583,7 @@ When remote shutdown is not allowed:
By default, the shutdown endpoint only allows requests from localhost (127.0.0.1). To enable remote shutdown, start the server with the `--allow-remote-shutdown` flag:
```bash
aha serv -m qwen3-0.6b --allow-remote-shutdown
aha serv -m Qwen/Qwen3-0.6B --allow-remote-shutdown
```
**Warning:** Enabling remote shutdown is not recommended for production use unless properly secured.
@@ -671,7 +649,7 @@ client = OpenAI(
)
response = client.chat.completions.create(
model="qwen3-0.6b",
model="Qwen/Qwen3-0.6B",
messages=[
{"role": "user", "content": "Hello!"}
]
@@ -691,7 +669,7 @@ const client = new OpenAI({
});
const response = await client.chat.completions.create({
model: 'qwen3-0.6b',
model: 'Qwen/Qwen3-0.6B',
messages: [{ role: 'user', content: 'Hello!' }]
});
+22 -40
View File
@@ -15,7 +15,7 @@ http://127.0.0.1:10100
您可以在启动服务时自定义:
```bash
aha cli -m qwen3-0.6b -a 0.0.0.0 -p 8080
aha cli -m Qwen/Qwen3-0.6B -a 0.0.0.0 -p 8080
```
### 身份验证
@@ -109,7 +109,7 @@ GET /models
"object": "list",
"data": [
{
"id": "qwen3-0.6b",
"id": "Qwen/Qwen3-0.6B",
"object": "model",
"created": null,
"owned_by": "Qwen"
@@ -132,7 +132,7 @@ GET /models
|------|------|------|
| `object` | string | 固定值:"list" |
| `data` | array | 模型对象数组(当前仅包含一个已加载的模型) |
| `id` | string | 模型标识符(kebab-case,如 "qwen3-0.6b" |
| `id` | string | 模型标识符(kebab-case,如 "Qwen/Qwen3-0.6B" |
| `object` | string | 固定值:"model" |
| `created` | integer\|null | Unix 时间戳(当前为 null |
| `owned_by` | string | 模型所有者/组织名称 |
@@ -156,7 +156,7 @@ POST /chat/completions
| 参数 | 类型 | 必需 | 描述 |
|------|------|------|------|
| `model` | string | 是 | 模型标识符(如 "qwen3-0.6b" |
| `model` | string | 是 | 模型标识符(如 "Qwen/Qwen3-0.6B" |
| `messages` | array | 是 | 消息对象数组 |
| `temperature` | number | 否 | 采样温度(0-2,默认:1) |
| `top_p` | number | 否 | 核采样(0-1,默认:1) |
@@ -197,7 +197,7 @@ POST /chat/completions
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"messages": [
{"role": "user", "content": "你好!"}
]
@@ -210,7 +210,7 @@ curl http://127.0.0.1:10100/chat/completions \
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"messages": [
{"role": "system", "content": "你是一个有用的助手。"},
{"role": "user", "content": "用一句话解释 Rust。"}
@@ -226,7 +226,7 @@ curl http://127.0.0.1:10100/chat/completions \
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3vl-2b",
"model": "Qwen/Qwen3-VL-2B-Instruct",
"messages": [
{
"role": "user",
@@ -245,7 +245,7 @@ curl http://127.0.0.1:10100/chat/completions \
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ocr",
"model": "deepseek-ai/DeepSeek-OCR",
"messages": [
{
"role": "user",
@@ -264,7 +264,7 @@ curl http://127.0.0.1:10100/chat/completions \
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "glm-asr-nano-2512",
"model": "ZhipuAI/GLM-ASR-Nano-2512",
"messages": [
{
"role": "user",
@@ -286,7 +286,7 @@ curl http://127.0.0.1:10100/chat/completions \
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"messages": [
{"role": "user", "content": "给我讲个故事"}
],
@@ -312,7 +312,7 @@ data: [DONE]
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"choices": [
{
"index": 0,
@@ -329,12 +329,6 @@ data: [DONE]
}
```
#### 支持的模型
- 文本:`qwen3-0.6b``minicpm4-0.5b`
- 视觉:`qwen2.5vl-3b``qwen2.5vl-7b``qwen3vl-2b``qwen3vl-4b``qwen3vl-8b``qwen3vl-32b`
- OCR`deepseek-ocr``hunyuan-ocr``paddleocr-vl`
- ASR`glm-asr-nano-2512``fun-asr-nano-2512``qwen3asr-0.6b``qwen3asr-1.7b`
### 语音生成
@@ -349,7 +343,7 @@ POST /audio/speech
| 参数 | 类型 | 必需 | 描述 |
|------|------|------|------|
| `model` | string | 是 | 模型标识符(如 "voxcpm1.5" |
| `model` | string | 是 | 模型标识符(如 "OpenBMB/VoxCPM-0.5B1.5" |
| `messages` | array | 是 | 消息对象数组 |
#### 示例
@@ -358,7 +352,7 @@ POST /audio/speech
curl http://127.0.0.1:10100/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "voxcpm1.5",
"model": "OpenBMB/VoxCPM-0.5B1.5",
"messages": [
{
"role": "user",
@@ -375,9 +369,6 @@ curl http://127.0.0.1:10100/audio/speech \
以 base64 WAV 格式返回音频数据。
#### 支持的模型
- `voxcpm``voxcpm1.5`
### 语音转写
@@ -433,7 +424,7 @@ POST /v1/audio/transcriptions
curl -X POST http://127.0.0.1:10100/audio/transcriptions \
-H "Authorization: Bearer NO_NEED" \
-F file="@./audio.wav" \
-F model="qwen3asr-0.6b"
-F model="Qwen/Qwen3-ASR-0.6B"
```
**指定语言:**
@@ -442,7 +433,7 @@ curl -X POST http://127.0.0.1:10100/audio/transcriptions \
curl -X POST http://127.0.0.1:10100/v1/audio/transcriptions \
-H "Authorization: Bearer NO_NEED" \
-F file="@./chinese_audio.wav" \
-F model="qwen3asr-0.6b" \
-F model="Qwen/Qwen3-ASR-0.6B" \
-F language="zh"
```
@@ -452,7 +443,7 @@ curl -X POST http://127.0.0.1:10100/v1/audio/transcriptions \
curl -X POST http://127.0.0.1:10100/v1/audio/transcriptions \
-H "Authorization: Bearer NO_NEED" \
-F file="@./audio.wav" \
-F model="qwen3asr-0.6b" \
-F model="Qwen/Qwen3-ASR-0.6B" \
-F temperature="0.0"
```
@@ -490,12 +481,6 @@ curl -X POST http://127.0.0.1:10100/v1/audio/transcriptions \
}
```
#### 支持的模型
- `qwen3asr-0.6b`
- `qwen3asr-1.7b`
- `glm-asr-nano-2512`
- `fun-asr-nano-2512`
#### 文件上传限制
@@ -514,7 +499,7 @@ POST /images/remove_background
| 参数 | 类型 | 必需 | 描述 |
|------|------|------|------|
| `model` | string | 是 | 模型标识符(如 "rmbg2.0" |
| `model` | string | 是 | 模型标识符(如 "AI-ModelScope/RMBG-2.0" |
| `messages` | array | 是 | 消息对象数组 |
#### 示例
@@ -525,7 +510,7 @@ POST /images/remove_background
curl http://127.0.0.1:10100/images/remove_background \
-H "Content-Type: application/json" \
-d '{
"model": "rmbg2.0",
"model": "AI-ModelScope/RMBG-2.0",
"messages": [
{
"role": "user",
@@ -543,7 +528,7 @@ curl http://127.0.0.1:10100/images/remove_background \
curl http://127.0.0.1:10100/images/remove_background \
-H "Content-Type: application/json" \
-d '{
"model": "rmbg2.0",
"model": "AI-ModelScope/RMBG-2.0",
"messages": [
{
"role": "user",
@@ -559,9 +544,6 @@ curl http://127.0.0.1:10100/images/remove_background \
以base64 PNG 格式返回处理后的图像。
#### 支持的模型
- `rmbg2.0`
### 优雅关机
@@ -605,7 +587,7 @@ POST /shutdown
默认情况下,关机端点仅允许来自 localhost (127.0.0.1) 的请求。要启用远程关闭,请使用 `--allow-remote-shutdown` 标志启动服务器:
```bash
aha serv -m qwen3-0.6b --allow-remote-shutdown
aha serv -m Qwen/Qwen3-0.6B --allow-remote-shutdown
```
**警告:** 除非有适当的安全措施,否则不建议在生产环境中启用远程关闭。
@@ -671,7 +653,7 @@ client = OpenAI(
)
response = client.chat.completions.create(
model="qwen3-0.6b",
model="Qwen/Qwen3-0.6B",
messages=[
{"role": "user", "content": "你好!"}
]
@@ -691,7 +673,7 @@ const client = new OpenAI({
});
const response = await client.chat.completions.create({
model: 'qwen3-0.6b',
model: 'Qwen/Qwen3-0.6B',
messages: [{ role: 'user', content: '你好!' }]
});
+3
View File
@@ -6,6 +6,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### 2026-03-31
- aha model name use modelscope id replace
- update WhichModel enum
- Usage add time info
- dependencies delete aha_openai_dive,chrono
### v0.2.5 (2026-03-30)
+4 -1
View File
@@ -6,7 +6,10 @@
本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/spec/v2.0.0.html)。
### 2026-03-31
- 删除 aha_openai_dive,chrono 依赖
- aha模型名称使用 modelscope id 替换
- 更新 WhichModel 枚举
- Usage 增加时间信息
- 删除 aha_openai_dive, chrono 依赖
### v0.2.5 (2026-03-30)
- 新增 LFM2.5VL-1.6B
+35 -55
View File
@@ -51,16 +51,16 @@ aha cli [OPTIONS] --model <MODEL>
```bash
# Download model and start service (default port 10100)
aha cli -m qwen3vl-2b
aha cli -m Qwen/Qwen3-VL-2B-Instruct
# Specify port and save directory
aha cli -m qwen3vl-2b -p 8080 --save-dir /data/models
aha cli -m Qwen/Qwen3-VL-2B-Instruct -p 8080 --save-dir /data/models
# Use local model (skip download)
aha cli -m qwen3vl-2b --weight-path /path/to/model
aha cli -m Qwen/Qwen3-VL-2B-Instruct --weight-path /path/to/model
# Backward compatible way (equivalent to cli subcommand)
aha -m qwen3vl-2b
aha -m Qwen/Qwen3-VL-2B-Instruct
# use gguf-path and mmproj-path
aha cli -m qwen3.5-gguf --gguf-path /path/to/xxx.gguf --mmproj-path /path/to/mmproj-xxx.gguf
@@ -89,34 +89,34 @@ aha run [OPTIONS] --model <MODEL> --input <INPUT> [--input <INPUT2>] [--weight-p
```bash
# VoxCPM1.5 text-to-speech (single input)
aha run -m voxcpm1.5 -i "太阳当空照" -o output.wav --weight-path /path/to/model
aha run -m OpenBMB/VoxCPM1.5 -i "太阳当空照" -o output.wav --weight-path /path/to/model
# VoxCPM1.5 read input from file (single input)
aha run -m voxcpm1.5 -i "file://./input.txt" --weight-path /path/to/model
aha run -m OpenBMB/VoxCPM1.5 -i "file://./input.txt" --weight-path /path/to/model
# MiniCPM4 text generation (single input)
aha run -m minicpm4-0.5b -i "你好" --weight-path /path/to/model
aha run -m OpenBMB/MiniCPM4-0.5B -i "你好" --weight-path /path/to/model
# DeepSeek OCR image recognition (single input)
aha run -m deepseek-ocr -i "image.jpg" --weight-path /path/to/model
aha run -m deepseek-ai/DeepSeek-OCR -i "image.jpg" --weight-path /path/to/model
# RMBG2.0 background removal (single input)
aha run -m RMBG2.0 -i "photo.png" -o "no_bg.png" --weight-path /path/to/model
aha run -m AI-ModelScope/RMBG-2.0 -i "photo.png" -o "no_bg.png" --weight-path /path/to/model
# GLM-ASR speech recognition (two inputs: prompt text + audio file)
aha run -m glm-asr-nano-2512 -i "请转写这段音频" -i "audio.wav" --weight-path /path/to/model
aha run -m ZhipuAI/GLM-ASR-Nano-2512 -i "请转写这段音频" -i "audio.wav" --weight-path /path/to/model
# Fun-ASR speech recognition (two inputs: prompt text + audio file)
aha run -m fun-asr-nano-2512 -i "语音转写:" -i "audio.wav" --weight-path /path/to/model
aha run -m FunAudioLLM/Fun-ASR-Nano-2512 -i "语音转写:" -i "audio.wav" --weight-path /path/to/model
# qwen3 text generation (single input)
aha run -m qwen3-0.6b -i "你好" --weight-path /path/to/model
aha run -m Qwen/Qwen3-0.6B -i "你好" --weight-path /path/to/model
# qwen2.5vl image understanding (two inputs: prompt text + image file)
aha run -m qwen2.5vl-3b -i "请分析图片并提取所有可见文本内容,按从左到右、从上到下的布局,返回纯文本" -i "image.jpg" --weight-path /path/to/model
aha run -m Qwen/Qwen2.5-VL-3B-Instruct -i "请分析图片并提取所有可见文本内容,按从左到右、从上到下的布局,返回纯文本" -i "image.jpg" --weight-path /path/to/model
# Qwen3-ASR speech recognition (single input: audio file)
aha run -m qwen3asr-0.6b -i "audio.wav" --weight-path /path/to/model
aha run -m Qwen/Qwen3-ASR-0.6B -i "audio.wav" --weight-path /path/to/model
# Qwen3.5-GGUF without mmproj (single input: prompt text)
aha run -m qwen3.5-gguf -i 你如何看待AI --gguf-path /path/to/xxx.gguf
@@ -152,19 +152,19 @@ aha serv [OPTIONS] --model <MODEL> [--weight-path <WEIGHT_PATH>] [--gguf-path <G
```bash
# Start service with default model path (~/.aha/{model_id})
aha serv -m qwen3vl-2b
aha serv -m Qwen/Qwen3-VL-2B-Instruct
# Start service with local model
aha serv -m qwen3vl-2b --weight-path /path/to/model
aha serv -m Qwen/Qwen3-VL-2B-Instruct --weight-path /path/to/model
# Start with specified port
aha serv -m qwen3vl-2b -p 8080
aha serv -m Qwen/Qwen3-VL-2B-Instruct -p 8080
# Specify listen address
aha serv -m qwen3vl-2b -a 0.0.0.0
aha serv -m Qwen/Qwen3-VL-2B-Instruct -a 0.0.0.0
# Enable remote shutdown (not recommended for production)
aha serv -m qwen3vl-2b --allow-remote-shutdown
aha serv -m Qwen/Qwen3-VL-2B-Instruct --allow-remote-shutdown
```
### ps - List running services
@@ -229,16 +229,16 @@ aha download [OPTIONS] --model <MODEL>
```bash
# Download model to default directory
aha download -m qwen3vl-2b
aha download -m Qwen/Qwen3-VL-2B-Instruct
# Specify save directory
aha download -m qwen3vl-2b -s /data/models
aha download -m Qwen/Qwen3-VL-2B-Instruct -s /data/models
# Specify download retry count
aha download -m qwen3vl-2b --download-retries 5
aha download -m Qwen/Qwen3-VL-2B-Instruct --download-retries 5
# Download MiniCPM4-0.5B model
aha download -m minicpm4-0.5b -s models
aha download -m OpenBMB/MiniCPM4-0.5B -s models
```
### delete - Delete downloaded model
@@ -260,10 +260,10 @@ aha delete [OPTIONS] --model <MODEL>
```bash
# Delete RMBG2.0 model from default location
aha delete -m rmbg2.0
aha delete -m AI-ModelScope/RMBG-2.0
# Delete Qwen3-VL-2B model
aha delete --model qwen3vl-2b
aha delete --model Qwen/Qwen3-VL-2B-Instruct
```
**Behavior:**
@@ -311,12 +311,12 @@ Example:
```json
[
{
"name": "qwen3vl-2b",
"name": "Qwen/Qwen3-VL-2B-Instruct",
"model_id": "Qwen/Qwen3-VL-2B-Instruct",
"type": "llm"
},
{
"name": "deepseek-ocr",
"name": "deepseek-ai/DeepSeek-OCR",
"model_id": "deepseek-ai/DeepSeek-OCR",
"type": "ocr"
}
@@ -328,27 +328,7 @@ Example:
- `ocr`: Optical Character Recognition models
- `asr`: Automatic Speech Recognition models
- `image`: Image processing models
## Supported Models
| Model ID | Model Name | Description |
|----------|------------|-------------|
| `minicpm4-0.5b` | OpenBMB/MiniCPM4-0.5B | OpenBMB MiniCPM4 0.5B model |
| `qwen2.5vl-3b` | Qwen/Qwen2.5-VL-3B-Instruct | Qwen 2.5 VL 3B model |
| `qwen2.5vl-7b` | Qwen/Qwen2.5-VL-7B-Instruct | Qwen 2.5 VL 7B model |
| `qwen3-0.6b` | Qwen/Qwen3-0.6B | Qwen 3 0.6B model |
| `qwen3vl-2b` | Qwen/Qwen3-VL-2B-Instruct | Qwen 3 VL 2B model |
| `qwen3vl-4b` | Qwen/Qwen3-VL-4B-Instruct | Qwen 3 VL 4B model |
| `qwen3vl-8b` | Qwen/Qwen3-VL-8B-Instruct | Qwen 3 VL 8B model |
| `qwen3vl-32b` | Qwen/Qwen3-VL-32B-Instruct | Qwen 3 VL 32B model |
| `deepseek-ocr` | deepseek-ai/DeepSeek-OCR | DeepSeek OCR model |
| `hunyuan-ocr` | Tencent-Hunyuan/HunyuanOCR | Tencent Hunyuan OCR model |
| `paddleocr-vl` | PaddlePaddle/PaddleOCR-VL | Baidu PaddleOCR VL model |
| `RMBG2.0` | AI-ModelScope/RMBG-2.0 | RMBG 2.0 background removal model |
| `voxcpm` | OpenBMB/VoxCPM-0.5B | OpenBMB VoxCPM 0.5B speech synthesis model |
| `voxcpm1.5` | OpenBMB/VoxCPM1.5 | OpenBMB VoxCPM 1.5 speech synthesis model |
| `glm-asr-nano-2512` | ZhipuAI/GLM-ASR-Nano-2512 | Zhipu AI ASR Nano 2512 speech recognition model |
| `fun-asr-nano-2512` | FunAudioLLM/Fun-ASR-Nano-2512 | FunAudioLLM ASR Nano 2512 speech recognition model |
- `tts` Text to speech
## Common Use Cases
@@ -356,31 +336,31 @@ Example:
```bash
# One command to download and start service
aha -m qwen3vl-2b
aha -m Qwen/Qwen3-VL-2B-Instruct
```
### Scenario 2: Start service with existing model
```bash
# Assuming model is downloaded to /data/models/Qwen/Qwen3-VL-2B-Instruct
aha serv -m qwen3vl-2b --weight-path /data/models/Qwen/Qwen3-VL-2B-Instruct
aha serv -m Qwen/Qwen3-VL-2B-Instruct --weight-path /data/models/Qwen/Qwen3-VL-2B-Instruct
```
### Scenario 3: Pre-download model
```bash
# Download model to specified directory for later use
aha download -m qwen3vl-2b -s /data/models
aha download -m Qwen/Qwen3-VL-2B-Instruct -s /data/models
# Later start with local model
aha serv -m qwen3vl-2b --weight-path /data/models/Qwen/Qwen3-VL-2B-Instruct
aha serv -m Qwen/Qwen3-VL-2B-Instruct --weight-path /data/models/Qwen/Qwen3-VL-2B-Instruct
```
### Scenario 4: Custom service port and address
```bash
# Start service on 0.0.0.0:8080, allow external access
aha -m qwen3vl-2b -a 0.0.0.0 -p 8080
aha -m Qwen/Qwen3-VL-2B-Instruct -a 0.0.0.0 -p 8080
```
## API Endpoints
@@ -421,10 +401,10 @@ To maintain compatibility with older versions, the following two usage methods a
```bash
# New way (recommended)
aha cli -m qwen3vl-2b
aha cli -m Qwen/Qwen3-VL-2B-Instruct
# Old way (backward compatible)
aha -m qwen3vl-2b
aha -m Qwen/Qwen3-VL-2B-Instruct
```
## Notes
+35 -55
View File
@@ -51,16 +51,16 @@ aha cli [OPTIONS] --model <MODEL>
```bash
# 下载模型并启动服务(默认端口 10100)
aha cli -m qwen3vl-2b
aha cli -m Qwen/Qwen3-VL-2B-Instruct
# 指定端口和保存目录
aha cli -m qwen3vl-2b -p 8080 --save-dir /data/models
aha cli -m Qwen/Qwen3-VL-2B-Instruct -p 8080 --save-dir /data/models
# 使用本地模型(不下载)
aha cli -m qwen3vl-2b --weight-path /path/to/model
aha cli -m Qwen/Qwen3-VL-2B-Instruct --weight-path /path/to/model
# 向后兼容方式(等同于 cli 子命令)
aha -m qwen3vl-2b
aha -m Qwen/Qwen3-VL-2B-Instruct
# 指定gguf-path和mmproj-path
aha cli -m qwen3.5-gguf --gguf-path /path/to/xxx.gguf --mmproj-path /path/to/mmproj-xxx.gguf
@@ -90,34 +90,34 @@ aha run [OPTIONS] --model <MODEL> --input <INPUT> [--input <INPUT2>] [--weight-p
```bash
# VoxCPM1.5 文字转语音(单个输入)
aha run -m voxcpm1.5 -i "太阳当空照" -o output.wav --weight-path /path/to/model
aha run -m OpenBMB/VoxCPM1.5 -i "太阳当空照" -o output.wav --weight-path /path/to/model
# VoxCPM1.5 从文件读取输入(单个输入)
aha run -m voxcpm1.5 -i "file://./input.txt" --weight-path /path/to/model
aha run -m OpenBMB/VoxCPM1.5 -i "file://./input.txt" --weight-path /path/to/model
# MiniCPM4 文本生成(单个输入)
aha run -m minicpm4-0.5b -i "你好" --weight-path /path/to/model
aha run -m OpenBMB/MiniCPM4-0.5B -i "你好" --weight-path /path/to/model
# DeepSeek OCR 图片识别(单个输入)
aha run -m deepseek-ocr -i "image.jpg" --weight-path /path/to/model
aha run -m deepseek-ai/DeepSeek-OCR -i "image.jpg" --weight-path /path/to/model
# RMBG2.0 背景移除(单个输入)
aha run -m RMBG2.0 -i "photo.png" -o "no_bg.png" --weight-path /path/to/model
aha run -m AI-ModelScope/RMBG-2.0 -i "photo.png" -o "no_bg.png" --weight-path /path/to/model
# GLM-ASR 语音识别(两个输入:提示文本 + 音频文件)
aha run -m glm-asr-nano-2512 -i "请转写这段音频" -i "audio.wav" --weight-path /path/to/model
aha run -m ZhipuAI/GLM-ASR-Nano-2512 -i "请转写这段音频" -i "audio.wav" --weight-path /path/to/model
# Fun-ASR 语音识别(两个输入:提示文本 + 音频文件)
aha run -m fun-asr-nano-2512 -i "语音转写:" -i "audio.wav" --weight-path /path/to/model
aha run -m FunAudioLLM/Fun-ASR-Nano-2512 -i "语音转写:" -i "audio.wav" --weight-path /path/to/model
# qwen3 文本生成(单个输入)
aha run -m qwen3-0.6b -i "你好" --weight-path /path/to/model
aha run -m Qwen/Qwen3-0.6B -i "你好" --weight-path /path/to/model
# qwen2.5vl 图像理解(两个输入:提示文本 + 图片文件)
aha run -m qwen2.5vl-3b -i "请分析图片并提取所有可见文本内容,按从左到右、从上到下的布局,返回纯文本" -i "image.jpg" --weight-path /path/to/model
aha run -m Qwen/Qwen2.5-VL-3B-Instruct -i "请分析图片并提取所有可见文本内容,按从左到右、从上到下的布局,返回纯文本" -i "image.jpg" --weight-path /path/to/model
# Qwen3-ASR 语音识别(单个输入:音频文件)
aha run -m qwen3asr-0.6b -i "audio.wav" --weight-path /path/to/model
aha run -m Qwen/Qwen3-ASR-0.6B -i "audio.wav" --weight-path /path/to/model
# Qwen3.5-GGUF 无mmproj (单个输入:提示文本)
aha run -m qwen3.5-gguf -i 你如何看待AI --gguf-path /path/to/xxx.gguf
@@ -152,19 +152,19 @@ aha serv [OPTIONS] --model <MODEL> [--weight-path <WEIGHT_PATH>] [--gguf-path <G
```bash
# 使用默认模型路径启动服务 (~/.aha/{model_id})
aha serv -m qwen3vl-2b
aha serv -m Qwen/Qwen3-VL-2B-Instruct
# 使用本地模型启动服务
aha serv -m qwen3vl-2b --weight-path /path/to/model
aha serv -m Qwen/Qwen3-VL-2B-Instruct --weight-path /path/to/model
# 指定端口启动
aha serv -m qwen3vl-2b -p 8080
aha serv -m Qwen/Qwen3-VL-2B-Instruct -p 8080
# 指定监听地址
aha serv -m qwen3vl-2b -a 0.0.0.0
aha serv -m Qwen/Qwen3-VL-2B-Instruct -a 0.0.0.0
# 启用远程关机(不推荐用于生产环境)
aha serv -m qwen3vl-2b --allow-remote-shutdown
aha serv -m Qwen/Qwen3-VL-2B-Instruct --allow-remote-shutdown
```
### ps - 列出运行中的服务
@@ -229,16 +229,16 @@ aha download [OPTIONS] --model <MODEL>
```bash
# 下载模型到默认目录
aha download -m qwen3vl-2b
aha download -m Qwen/Qwen3-VL-2B-Instruct
# 指定保存目录
aha download -m qwen3vl-2b -s /data/models
aha download -m Qwen/Qwen3-VL-2B-Instruct -s /data/models
# 指定下载重试次数
aha download -m qwen3vl-2b --download-retries 5
aha download -m Qwen/Qwen3-VL-2B-Instruct --download-retries 5
# 下载 MiniCPM4-0.5B 模型
aha download -m minicpm4-0.5b -s models
aha download -m OpenBMB/MiniCPM4-0.5B -s models
```
### delete - 删除已下载的模型
@@ -260,10 +260,10 @@ aha delete [OPTIONS] --model <MODEL>
```bash
# 删除 RMBG2.0 模型
aha delete -m rmbg2.0
aha delete -m AI-ModelScope/RMBG-2.0
# 删除 Qwen3-VL-2B 模型
aha delete --model qwen3vl-2b
aha delete --model Qwen/Qwen3-VL-2B-Instruct
```
**行为说明:**
@@ -311,12 +311,12 @@ aha list -j
```json
[
{
"name": "qwen3vl-2b",
"name": "Qwen/Qwen3-VL-2B-Instruct",
"model_id": "Qwen/Qwen3-VL-2B-Instruct",
"type": "llm"
},
{
"name": "deepseek-ocr",
"name": "deepseek-ai/DeepSeek-OCR",
"model_id": "deepseek-ai/DeepSeek-OCR",
"type": "ocr"
}
@@ -328,27 +328,7 @@ aha list -j
- `ocr`:光学字符识别模型
- `asr`:自动语音识别模型
- `image`:图像处理模型
## 支持的模型
| 模型标识 | 模型名称 | 说明 |
|---------|---------|------|
| `minicpm4-0.5b` | OpenBMB/MiniCPM4-0.5B | 面壁智能 MiniCPM4 0.5B 模型 |
| `qwen2.5vl-3b` | Qwen/Qwen2.5-VL-3B-Instruct | 通义千问 2.5 VL 3B 模型 |
| `qwen2.5vl-7b` | Qwen/Qwen2.5-VL-7B-Instruct | 通义千问 2.5 VL 7B 模型 |
| `qwen3-0.6b` | Qwen/Qwen3-0.6B | 通义千问 3 0.6B 模型 |
| `qwen3vl-2b` | Qwen/Qwen3-VL-2B-Instruct | 通义千问 3 VL 2B 模型 |
| `qwen3vl-4b` | Qwen/Qwen3-VL-4B-Instruct | 通义千问 3 VL 4B 模型 |
| `qwen3vl-8b` | Qwen/Qwen3-VL-8B-Instruct | 通义千问 3 VL 8B 模型 |
| `qwen3vl-32b` | Qwen/Qwen3-VL-32B-Instruct | 通义千问 3 VL 32B 模型 |
| `deepseek-ocr` | deepseek-ai/DeepSeek-OCR | DeepSeek OCR 模型 |
| `hunyuan-ocr` | Tencent-Hunyuan/HunyuanOCR | 腾讯混元 OCR 模型 |
| `paddleocr-vl` | PaddlePaddle/PaddleOCR-VL | 百度飞桨 OCR VL 模型 |
| `RMBG2.0` | AI-ModelScope/RMBG-2.0 | RMBG 2.0 背景移除模型 |
| `voxcpm` | OpenBMB/VoxCPM-0.5B | 面壁智能 VoxCPM 0.5B 语音生成模型 |
| `voxcpm1.5` | OpenBMB/VoxCPM1.5 | 面壁智能 VoxCPM 1.5 语音生成模型 |
| `glm-asr-nano-2512` | ZhipuAI/GLM-ASR-Nano-2512 | 智谱 AI ASR Nano 2512 语音识别模型 |
| `fun-asr-nano-2512` | FunAudioLLM/Fun-ASR-Nano-2512 | 通义百聆 ASR Nano 2512 语音识别模型 |
- `tts`:语音生成
## 常见使用场景
@@ -356,31 +336,31 @@ aha list -j
```bash
# 一条命令下载并启动服务
aha -m qwen3vl-2b
aha -m Qwen/Qwen3-VL-2B-Instruct
```
### 场景 2:使用已有模型启动服务
```bash
# 假设模型已下载到 /data/models/Qwen/Qwen3-VL-2B-Instruct
aha serv -m qwen3vl-2b --weight-path /data/models/Qwen/Qwen3-VL-2B-Instruct
aha serv -m Qwen/Qwen3-VL-2B-Instruct --weight-path /data/models/Qwen/Qwen3-VL-2B-Instruct
```
### 场景 3:预先下载模型
```bash
# 下载模型到指定目录,稍后使用
aha download -m qwen3vl-2b -s /data/models
aha download -m Qwen/Qwen3-VL-2B-Instruct -s /data/models
# 后续启动时直接使用
aha serv -m qwen3vl-2b --weight-path /data/models/Qwen/Qwen3-VL-2B-Instruct
aha serv -m Qwen/Qwen3-VL-2B-Instruct --weight-path /data/models/Qwen/Qwen3-VL-2B-Instruct
```
### 场景 4:自定义服务端口和地址
```bash
# 在 0.0.0.0:8080 启动服务,允许外部访问
aha -m qwen3vl-2b -a 0.0.0.0 -p 8080
aha -m Qwen/Qwen3-VL-2B-Instruct -a 0.0.0.0 -p 8080
```
## API 接口
@@ -420,10 +400,10 @@ aha -m qwen3vl-2b -a 0.0.0.0 -p 8080
```bash
# 新方式(推荐)
aha cli -m qwen3vl-2b
aha cli -m Qwen/Qwen3-VL-2B-Instruct
# 旧方式(向后兼容)
aha -m qwen3vl-2b
aha -m Qwen/Qwen3-VL-2B-Instruct
```
## 注意事项
+3 -3
View File
@@ -191,13 +191,13 @@ Model loading uses a factory function:
```rust
pub fn load_model(
model_type: &str,
model_type: WhichModel,
model_path: &str,
device: &Device,
) -> Result<Box<dyn GenerateModel>> {
match model_type {
"qwen3vl-2b" => Ok(Box::new(qwen3vl::generate::Qwen3VLGenerate::init(...)?)),
"voxcpm1.5" => Ok(Box::new(voxcpm::generate::VoxCPMGenerate::init(...)?)),
WhichModel::Qwen3VL2B => Ok(Box::new(qwen3vl::generate::Qwen3VLGenerate::init(...)?)),
WhichModel::VoxCPM1_5 => Ok(Box::new(voxcpm::generate::VoxCPMGenerate::init(...)?)),
// ... other models
_ => Err(anyhow!("Unsupported model: {}", model_type)),
}
+5 -5
View File
@@ -191,15 +191,15 @@ let result = model.generate(prompt, params)?;
```rust
pub fn load_model(
model_type: &str,
model_type: WhichModel,
model_path: &str,
device: &Device,
) -> Result<Box<dyn GenerateModel>> {
match model_type {
"qwen3vl-2b" => Ok(Box::new(qwen3vl::generate::Qwen3VLGenerate::init(...)?)),
"voxcpm1.5" => Ok(Box::new(voxcpm::generate::VoxCPMGenerate::init(...)?)),
// ... 其他模型
_ => Err(anyhow!("不支持的模型: {}", model_type)),
WhichModel::Qwen3VL2B => Ok(Box::new(qwen3vl::generate::Qwen3VLGenerate::init(...)?)),
WhichModel::VoxCPM1_5 => Ok(Box::new(voxcpm::generate::VoxCPMGenerate::init(...)?)),
// ... other models
_ => Err(anyhow!("Unsupported model: {}", model_type)),
}
}
```
+5 -5
View File
@@ -43,7 +43,7 @@ cargo build --features ffmpeg
```bash
# Run the CLI
cargo run -- -m qwen3-0.6b
cargo run -- -m Qwen/Qwen3-0.6B
# Run tests
cargo test
@@ -52,7 +52,7 @@ cargo test
cargo test test_qwen3vl_generate
# Run with logging
RUST_LOG=debug cargo run -- -m qwen3-0.6b
RUST_LOG=debug cargo run -- -m Qwen/Qwen3-0.6B
# Check code without building
cargo check
@@ -481,7 +481,7 @@ Follow conventional commits:
feat: add NewModel support
fix: correct tensor dimensions in Qwen3VL
docs: update installation guide
test: add integration test for VoxCPM
test: add integration test for NewModel
refactor: simplify model loading logic
perf: improve inference speed by 20%
```
@@ -535,13 +535,13 @@ cargo publish
Enable debug logging:
```bash
RUST_LOG=debug cargo run -- -m qwen3-0.6b
RUST_LOG=debug cargo run -- -m Qwen/Qwen3-0.6B
```
Set specific module logging:
```bash
RUST_LOG=aha::models::qwen3vl=debug cargo run -- -m qwen3-0.6b
RUST_LOG=aha::models::qwen3vl=debug cargo run -- -m Qwen/Qwen3-0.6B
```
### Debugging Tests
+5 -5
View File
@@ -43,7 +43,7 @@ cargo build --features ffmpeg
```bash
# 运行 CLI
cargo run -- -m qwen3-0.6b
cargo run -- -m Qwen/Qwen3-0.6B
# 运行测试
cargo test
@@ -52,7 +52,7 @@ cargo test
cargo test test_qwen3vl_generate
# 启用日志运行
RUST_LOG=debug cargo run -- -m qwen3-0.6b
RUST_LOG=debug cargo run -- -m Qwen/Qwen3-0.6B
# 检查代码而不构建
cargo check
@@ -481,7 +481,7 @@ pub fn generate(&mut self, prompt: &str) -> Result<String> {
feat: 添加 NewModel 支持
fix: 修正 Qwen3VL 中的张量维度
docs: 更新安装指南
test: 添加 VoxCPM 集成测试
test: 添加 NewModel 集成测试
refactor: 简化模型加载逻辑
perf: 将推理速度提高 20%
```
@@ -535,13 +535,13 @@ cargo publish
启用调试日志:
```bash
RUST_LOG=debug cargo run -- -m qwen3-0.6b
RUST_LOG=debug cargo run -- -m Qwen/Qwen3-0.6B
```
设置特定模块日志:
```bash
RUST_LOG=aha::models::qwen3vl=debug cargo run -- -m qwen3-0.6b
RUST_LOG=aha::models::qwen3vl=debug cargo run -- -m Qwen/Qwen3-0.6B
```
### 调试测试
+39 -39
View File
@@ -14,14 +14,14 @@ aha list
```bash
# Download a small text model to start
aha download -m qwen3-0.6b
aha download -m Qwen/Qwen3-0.6B
```
### 3. Start the Service
```bash
# Start the HTTP API server
aha cli -m qwen3-0.6b
aha cli -m Qwen/Qwen3-0.6B
```
The service will start on `http://127.0.0.1:10100`
@@ -34,7 +34,7 @@ In a new terminal:
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"messages": [
{"role": "user", "content": "Hello, AHA!"}
]
@@ -78,13 +78,13 @@ AHA is a local AI inference engine that:
```bash
# Start the service
aha cli -m qwen3-0.6b
aha cli -m Qwen/Qwen3-0.6B
# In another terminal, make a request
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain quantum computing in simple terms."}
@@ -98,13 +98,13 @@ curl http://127.0.0.1:10100/chat/completions \
```bash
# Start a vision model
aha cli -m qwen3vl-2b
aha cli -m Qwen/Qwen3-VL-2B-Instruct
# Analyze an image
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3vl-2b",
"model": "Qwen/Qwen3-VL-2B-Instruct",
"messages": [
{
"role": "user",
@@ -122,13 +122,13 @@ curl http://127.0.0.1:10100/chat/completions \
```bash
# Start an OCR model
aha cli -m deepseek-ocr
aha cli -m deepseek-ai/DeepSeek-OCR
# Extract text from an image
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ocr",
"model": "deepseek-ai/DeepSeek-OCR",
"messages": [
{
"role": "user",
@@ -145,13 +145,13 @@ curl http://127.0.0.1:10100/chat/completions \
```bash
# Start an ASR model
aha cli -m glm-asr-nano-2512
aha cli -m ZhipuAI/GLM-ASR-Nano-2512
# Transcribe audio
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "glm-asr-nano-2512",
"model": "ZhipuAI/GLM-ASR-Nano-2512",
"messages": [
{
"role": "user",
@@ -168,13 +168,13 @@ curl http://127.0.0.1:10100/chat/completions \
```bash
# Start a TTS model
aha cli -m voxcpm1.5
aha cli -m OpenBMB/VoxCPM1.5
# Generate speech
curl http://127.0.0.1:10100/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "voxcpm1.5",
"model": "OpenBMB/VoxCPM1.5",
"messages": [
{
"role": "user",
@@ -191,13 +191,13 @@ curl http://127.0.0.1:10100/audio/speech \
```bash
# Start RMBG2.0 model
aha cli -m rmbg2.0
aha cli -m AI-ModelScope/RMBG-2.0
# Remove background from image
curl http://127.0.0.1:10100/images/remove_background \
-H "Content-Type: application/json" \
-d '{
"model": "rmbg2.0",
"model": "AI-ModelScope/RMBG-2.0",
"messages": [
{
"role": "user",
@@ -213,7 +213,7 @@ curl http://127.0.0.1:10100/images/remove_background \
```bash
# Run inference directly without starting HTTP server
aha run -m qwen3-0.6b \
aha run -m Qwen/Qwen3-0.6B \
-i "Write a haiku about AI" \
--weight-path ~/.aha/Qwen/Qwen3-0.6B
```
@@ -224,21 +224,21 @@ aha run -m qwen3-0.6b \
```bash
# Use port 8080 instead of default 10100
aha cli -m qwen3-0.6b -p 8080
aha cli -m Qwen/Qwen3-0.6B -p 8080
```
### Bind to All Interfaces
```bash
# Allow external access (use with caution)
aha cli -m qwen3-0.6b -a 0.0.0.0 -p 8080
aha cli -m Qwen/Qwen3-0.6B -a 0.0.0.0 -p 8080
```
### Use Local Model
```bash
# Skip download, use existing model
aha serv -m qwen3-0.6b \
aha serv -m Qwen/Qwen3-0.6B \
--weight-path /path/to/model \
-p 8080
```
@@ -247,7 +247,7 @@ aha serv -m qwen3-0.6b \
```bash
# Download model to specific directory
aha download -m qwen3vl-2b -s /data/models
aha download -m Qwen/Qwen3-VL-2B-Instruct -s /data/models
```
## Streaming Responses
@@ -258,7 +258,7 @@ For chat/completions, using no "stream" field or "stream": true enables streamin
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"messages": [
{"role": "user", "content": "Tell me a story"}
],
@@ -269,28 +269,28 @@ curl http://127.0.0.1:10100/chat/completions \
## Model Selection Guide
### For Text Generation
- **qwen3-0.6b**: Fast, lightweight (~1.2 GB)
- **minicpm4-0.5b**: Small, efficient (~1 GB)
- **Qwen/Qwen3-0.6B**: Fast, lightweight (~1.2 GB)
- **OpenBMB/MiniCPM4-0.5B**: Small, efficient (~1 GB)
### For Vision Tasks
- **qwen3vl-2b**: Balanced performance (~4 GB)
- **qwen3vl-8b**: Better quality (~16 GB)
- **Qwen/Qwen3-VL-2B-Instruct**: Balanced performance (~4 GB)
- **Qwen/Qwen3-VL-8B-Instruct**: Better quality (~16 GB)
### For OCR
- **deepseek-ocr**: General purpose
- **hunyuan-ocr**: Good for Chinese text
- **paddleocr-vl**: Lightweight option
- **deepseek-ai/DeepSeek-OCR**: General purpose
- **Tencent-Hunyuan/HunyuanOCR**: Good for Chinese text
- **PaddlePaddle/PaddleOCR-VL**: Lightweight option
### For Speech Recognition
- **glm-asr-nano-2512**: Fast, accurate
- **fun-asr-nano-2512**: Good for Chinese
- **qwen3asr-0.6b**: Lightweight
- **ZhipuAI/GLM-ASR-Nano-2512**: Fast, accurate
- **FunAudioLLM/Fun-ASR-Nano-2512**: Good for Chinese
- **Qwen/Qwen3-ASR-0.6B**: Lightweight
### For Text-to-Speech
- **voxcpm1.5**: High quality Chinese
- **OpenBMB/VoxCPM1.5**: High quality Chinese
### For Background Removal
- **rmbg2.0**: State-of-the-art results
- **AI-ModelScope/RMBG-2.0**: State-of-the-art results
## Tips & Best Practices
@@ -298,7 +298,7 @@ curl http://127.0.0.1:10100/chat/completions \
Begin with smaller models to understand the workflow:
```bash
aha download -m qwen3-0.6b
aha download -m Qwen/Qwen3-0.6B
```
### 2. Use GPU Acceleration
@@ -316,12 +316,12 @@ cargo build --release --features metal
Download models when you have good internet:
```bash
aha download -m qwen3vl-2b
aha download -m Qwen/Qwen3-VL-2B-Instruct
```
Then use them later without internet:
```bash
aha serv -m qwen3vl-2b --weight-path ~/.aha/Qwen/Qwen3-VL-2B-Instruct
aha serv -m Qwen/Qwen3-VL-2B-Instruct --weight-path ~/.aha/Qwen/Qwen3-VL-2B-Instruct
```
### 4. Manage Disk Space
@@ -353,21 +353,21 @@ Activity Monitor
```bash
# Use a different port
aha cli -m qwen3-0.6b -p 8080
aha cli -m Qwen/Qwen3-0.6B -p 8080
```
### Model Download Failed
```bash
# Retry with more attempts
aha download -m qwen3vl-2b --download-retries 5
aha download -m Qwen/Qwen3-VL-2B-Instruct --download-retries 5
```
### Out of Memory
```bash
# Use a smaller model
aha cli -m qwen3-0.6b
aha cli -m Qwen/Qwen3-0.6B
```
## Next Steps
+39 -39
View File
@@ -14,14 +14,14 @@ aha list
```bash
# 从下载一个小型文本模型开始
aha download -m qwen3-0.6b
aha download -m Qwen/Qwen3-0.6B
```
### 3. 启动服务
```bash
# 启动 HTTP API 服务器
aha cli -m qwen3-0.6b
aha cli -m Qwen/Qwen3-0.6B
```
服务将在 `http://127.0.0.1:10100` 上启动
@@ -34,7 +34,7 @@ aha cli -m qwen3-0.6b
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"messages": [
{"role": "user", "content": "你好,AHA"}
],
@@ -79,13 +79,13 @@ AHA 是一个本地 AI 推理引擎,具有以下特点:
```bash
# 启动服务
aha cli -m qwen3-0.6b
aha cli -m Qwen/Qwen3-0.6B
# 在另一个终端中,发起请求
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"messages": [
{"role": "system", "content": "你是一个有用的助手。"},
{"role": "user", "content": "用简单的术语解释量子计算。"}
@@ -99,13 +99,13 @@ curl http://127.0.0.1:10100/chat/completions \
```bash
# 启动视觉模型
aha cli -m qwen3vl-2b
aha cli -m Qwen/Qwen3-VL-2B-Instruct
# 分析图像
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3vl-2b",
"model": "Qwen/Qwen3-VL-2B-Instruct",
"messages": [
{
"role": "user",
@@ -123,13 +123,13 @@ curl http://127.0.0.1:10100/chat/completions \
```bash
# 启动 OCR 模型
aha cli -m deepseek-ocr
aha cli -m deepseek-ai/DeepSeek-OCR
# 从图像中提取文本
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ocr",
"model": "deepseek-ai/DeepSeek-OCR",
"messages": [
{
"role": "user",
@@ -146,13 +146,13 @@ curl http://127.0.0.1:10100/chat/completions \
```bash
# 启动 ASR 模型
aha cli -m glm-asr-nano-2512
aha cli -m ZhipuAI/GLM-ASR-Nano-2512
# 转写音频
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "glm-asr-nano-2512",
"model": "ZhipuAI/GLM-ASR-Nano-2512",
"messages": [
{
"role": "user",
@@ -169,13 +169,13 @@ curl http://127.0.0.1:10100/chat/completions \
```bash
# 启动 TTS 模型
aha cli -m voxcpm1.5
aha cli -m OpenBMB/VoxCPM1.5
# 生成语音
curl http://127.0.0.1:10100/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "voxcpm1.5",
"model": "OpenBMB/VoxCPM1.5",
"messages": [
{
"role": "user",
@@ -192,13 +192,13 @@ curl http://127.0.0.1:10100/audio/speech \
```bash
# 启动 RMBG2.0 模型
aha cli -m rmbg2.0
aha cli -m AI-ModelScope/RMBG-2.0
# 移除图像背景
curl http://127.0.0.1:10100/images/remove_background \
-H "Content-Type: application/json" \
-d '{
"model": "rmbg2.0",
"model": "AI-ModelScope/RMBG-2.0",
"messages": [
{
"role": "user",
@@ -214,7 +214,7 @@ curl http://127.0.0.1:10100/images/remove_background \
```bash
# 直接运行推理,无需启动 HTTP 服务器
aha run -m qwen3-0.6b \
aha run -m Qwen/Qwen3-0.6B \
-i "写一首关于AI的俳句" \
--weight-path ~/.aha/Qwen/Qwen3-0.6B
```
@@ -225,21 +225,21 @@ aha run -m qwen3-0.6b \
```bash
# 使用端口 8080 而不是默认的 10100
aha cli -m qwen3-0.6b -p 8080
aha cli -m Qwen/Qwen3-0.6B -p 8080
```
### 绑定到所有接口
```bash
# 允许外部访问(请谨慎使用)
aha cli -m qwen3-0.6b -a 0.0.0.0 -p 8080
aha cli -m Qwen/Qwen3-0.6B -a 0.0.0.0 -p 8080
```
### 使用本地模型
```bash
# 跳过下载,使用现有模型
aha serv -m qwen3-0.6b \
aha serv -m Qwen/Qwen3-0.6B \
--weight-path /path/to/model \
-p 8080
```
@@ -248,7 +248,7 @@ aha serv -m qwen3-0.6b \
```bash
# 将模型下载到特定目录
aha download -m qwen3vl-2b -s /data/models
aha download -m Qwen/Qwen3-VL-2B-Instruct -s /data/models
```
## 流式响应
@@ -259,7 +259,7 @@ aha download -m qwen3vl-2b -s /data/models
curl http://127.0.0.1:10100/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-0.6b",
"model": "Qwen/Qwen3-0.6B",
"messages": [
{"role": "user", "content": "给我讲个故事"}
],
@@ -270,28 +270,28 @@ curl http://127.0.0.1:10100/chat/completions \
## 模型选择指南
### 文本生成
- **qwen3-0.6b**:快速、轻量级(~1.2 GB
- **minicpm4-0.5b**:小型、高效(~1 GB
- **Qwen/Qwen3-0.6B**:快速、轻量级(~1.2 GB
- **OpenBMB/MiniCPM4-0.5B**:小型、高效(~1 GB
### 视觉任务
- **qwen3vl-2b**:平衡性能(~4 GB
- **qwen3vl-8b**:更高质量(~16 GB
- **Qwen/Qwen3-VL-2B-Instruct**:平衡性能(~4 GB
- **Qwen/Qwen3-VL-8B-Instruct**:更高质量(~16 GB
### OCR
- **deepseek-ocr**:通用
- **hunyuan-ocr**:适合中文文本
- **paddleocr-vl**:轻量级选项
- **deepseek-ai/DeepSeek-OCR**:通用
- **Tencent-Hunyuan/HunyuanOCR**:适合中文文本
- **PaddlePaddle/PaddleOCR-VL**:轻量级选项
### 语音识别
- **glm-asr-nano-2512**:快速、准确
- **fun-asr-nano-2512**:适合中文
- **qwen3asr-0.6b**:轻量级
- **ZhipuAI/GLM-ASR-Nano-2512**:快速、准确
- **FunAudioLLM/Fun-ASR-Nano-2512**:适合中文
- **Qwen/Qwen3-ASR-0.6B**:轻量级
### 文本转语音
- **voxcpm1.5**:高质量中文
- **OpenBMB/VoxCPM1.5**:高质量中文
### 背景移除
- **rmbg2.0**:最先进的结果
- **AI-ModelScope/RMBG-2.0**:最先进的结果
## 提示与最佳实践
@@ -299,7 +299,7 @@ curl http://127.0.0.1:10100/chat/completions \
从小型模型开始了解工作流程:
```bash
aha download -m qwen3-0.6b
aha download -m Qwen/Qwen3-0.6B
```
### 2. 使用 GPU 加速
@@ -317,12 +317,12 @@ cargo build --release --features metal
在网络良好时下载模型:
```bash
aha download -m qwen3vl-2b
aha download -m Qwen/Qwen3-VL-2B-Instruct
```
稍后在没有网络的情况下使用:
```bash
aha serv -m qwen3vl-2b --weight-path ~/.aha/Qwen/Qwen3-VL-2B-Instruct
aha serv -m Qwen/Qwen3-VL-2B-Instruct --weight-path ~/.aha/Qwen/Qwen3-VL-2B-Instruct
```
### 4. 管理磁盘空间
@@ -354,21 +354,21 @@ nvidia-smi # 对于 NVIDIA GPU
```bash
# 使用不同的端口
aha cli -m qwen3-0.6b -p 8080
aha cli -m Qwen/Qwen3-0.6B -p 8080
```
### 模型下载失败
```bash
# 重试更多次数
aha download -m qwen3vl-2b --download-retries 5
aha download -m Qwen/Qwen3-VL-2B-Instruct --download-retries 5
```
### 内存不足
```bash
# 使用更小的模型
aha cli -m qwen3-0.6b
aha cli -m Qwen/Qwen3-0.6B
```
## 后续步骤
+36 -24
View File
@@ -284,24 +284,36 @@ Expected output for `aha list`:
Model Name ModelScope ID
-----------------------------------------------------------
minicpm4-0.5b OpenBMB/MiniCPM4-0.5B
qwen2.5vl-3b Qwen/Qwen2.5-VL-3B-Instruct
qwen2.5vl-7b Qwen/Qwen2.5-VL-7B-Instruct
qwen3-0.6b Qwen/Qwen3-0.6B
qwen3asr-0.6b Qwen/Qwen3-ASR-0.6B
qwen3asr-1.7b Qwen/Qwen3-ASR-1.7B
qwen3vl-4b Qwen/Qwen3-VL-2B-Instruct
qwen3vl-4b Qwen/Qwen3-VL-4B-Instruct
qwen3vl-8b Qwen/Qwen3-VL-8B-Instruct
qwen3vl-32b Qwen/Qwen3-VL-32B-Instruct
deepseek-ocr deepseek-ai/DeepSeek-OCR
hunyuan-ocr Tencent-Hunyuan/HunyuanOCR
paddleocr-vl PaddlePaddle/PaddleOCR-VL
rmbg2.0 AI-ModelScope/RMBG-2.0
voxcpm OpenBMB/VoxCPM-0.5B
voxcpm1.5 OpenBMB/VoxCPM1.5
glm-asr-nano-2512 ZhipuAI/GLM-ASR-Nano-2512
fun-asr-nano-2512 FunAudioLLM/Fun-ASR-Nano-2512
LiquidAI/LFM2-1.2B LiquidAI/LFM2-1.2B ✔
LiquidAI/LFM2.5-1.2B-Instruct LiquidAI/LFM2.5-1.2B-Instruct ✔
LiquidAI/LFM2.5-VL-1.6B LiquidAI/LFM2.5-VL-1.6B ✔
LiquidAI/LFM2-VL-1.6B LiquidAI/LFM2-VL-1.6B ✔
OpenBMB/MiniCPM4-0.5B OpenBMB/MiniCPM4-0.5B ✔
Qwen/Qwen2.5-VL-3B-Instruct Qwen/Qwen2.5-VL-3B-Instruct ✔
Qwen/Qwen2.5-VL-7B-Instruct Qwen/Qwen2.5-VL-7B-Instruct
Qwen/Qwen3-0.6B Qwen/Qwen3-0.6B ✔
Qwen/Qwen3.5-0.8B Qwen/Qwen3.5-0.8B ✔
Qwen/Qwen3.5-2B Qwen/Qwen3.5-2B
Qwen/Qwen3.5-4B Qwen/Qwen3.5-4B
Qwen/Qwen3.5-9B Qwen/Qwen3.5-9B
qwen3.5-gguf qwen3.5-gguf
Qwen/Qwen3-ASR-0.6B Qwen/Qwen3-ASR-0.6B ✔
Qwen/Qwen3-ASR-1.7B Qwen/Qwen3-ASR-1.7B
Qwen/Qwen3-VL-2B-Instruct Qwen/Qwen3-VL-2B-Instruct ✔
Qwen/Qwen3-VL-4B-Instruct Qwen/Qwen3-VL-4B-Instruct
Qwen/Qwen3-VL-8B-Instruct Qwen/Qwen3-VL-8B-Instruct
Qwen/Qwen3-VL-32B-Instruct Qwen/Qwen3-VL-32B-Instruct
deepseek-ai/DeepSeek-OCR deepseek-ai/DeepSeek-OCR ✔
deepseek-ai/DeepSeek-OCR-2 deepseek-ai/DeepSeek-OCR-2
Tencent-Hunyuan/HunyuanOCR Tencent-Hunyuan/HunyuanOCR ✔
PaddlePaddle/PaddleOCR-VL PaddlePaddle/PaddleOCR-VL ✔
PaddlePaddle/PaddleOCR-VL-1.5 PaddlePaddle/PaddleOCR-VL-1.5
AI-ModelScope/RMBG-2.0 AI-ModelScope/RMBG-2.0 ✔
OpenBMB/VoxCPM-0.5B OpenBMB/VoxCPM-0.5B ✔
OpenBMB/VoxCPM1.5 OpenBMB/VoxCPM1.5 ✔
ZhipuAI/GLM-ASR-Nano-2512 ZhipuAI/GLM-ASR-Nano-2512 ✔
FunAudioLLM/Fun-ASR-Nano-2512 FunAudioLLM/Fun-ASR-Nano-2512 ✔
ZhipuAI/GLM-OCR ZhipuAI/GLM-OCR
```
@@ -398,18 +410,18 @@ Approximate download sizes for popular models:
| Model | Size | RAM Usage |
|-------|------|-----------|
| qwen3-0.6b | ~1.2 GB | ~2 GB |
| qwen3vl-2b | ~4 GB | ~6 GB |
| qwen3vl-8b | ~16 GB | ~20 GB |
| qwen3vl-32b | ~64 GB | ~70 GB |
| Qwen/Qwen3-0.6B | ~1.2 GB | ~2 GB |
| Qwen/Qwen3-VL-2B-Instruct | ~4 GB | ~6 GB |
| Qwen/Qwen3-VL-8B-Instruct | ~16 GB | ~20 GB |
| Qwen/Qwen3-VL-32B-Instruct | ~64 GB | ~70 GB |
## Next Steps
After successful installation:
1. Read the [Getting Started Guide](./getting-started.md)
2. Download your first model: `aha download -m qwen3-0.6b`
3. Start the service: `aha cli -m qwen3-0.6b`
2. Download your first model: `aha download -m Qwen/Qwen3-0.6B`
3. Start the service: `aha cli -m Qwen/Qwen3-0.6B`
4. Explore the [API Reference](./api.md)
## See Also
+23 -23
View File
@@ -283,24 +283,24 @@ aha list
Model Name ModelScope ID
-----------------------------------------------------------
minicpm4-0.5b OpenBMB/MiniCPM4-0.5B
qwen2.5vl-3b Qwen/Qwen2.5-VL-3B-Instruct
qwen2.5vl-7b Qwen/Qwen2.5-VL-7B-Instruct
qwen3-0.6b Qwen/Qwen3-0.6B
qwen3asr-0.6b Qwen/Qwen3-ASR-0.6B
qwen3asr-1.7b Qwen/Qwen3-ASR-1.7B
qwen3vl-4b Qwen/Qwen3-VL-2B-Instruct
qwen3vl-4b Qwen/Qwen3-VL-4B-Instruct
qwen3vl-8b Qwen/Qwen3-VL-8B-Instruct
qwen3vl-32b Qwen/Qwen3-VL-32B-Instruct
deepseek-ocr deepseek-ai/DeepSeek-OCR
hunyuan-ocr Tencent-Hunyuan/HunyuanOCR
paddleocr-vl PaddlePaddle/PaddleOCR-VL
rmbg2.0 AI-ModelScope/RMBG-2.0
OpenBMB/MiniCPM4-0.5B OpenBMB/MiniCPM4-0.5B
Qwen/Qwen2.5-VL-3B-Instruct Qwen/Qwen2.5-VL-3B-Instruct
Qwen/Qwen2.5-VL-7B-Instruct Qwen/Qwen2.5-VL-7B-Instruct
Qwen/Qwen3-0.6B Qwen/Qwen3-0.6B
Qwen/Qwen3-ASR-0.6B Qwen/Qwen3-ASR-0.6B
Qwen/Qwen3-ASR-1.7B Qwen/Qwen3-ASR-1.7B
Qwen/Qwen3-VL-4B-Instruct Qwen/Qwen3-VL-2B-Instruct
Qwen/Qwen3-VL-4B-Instruct Qwen/Qwen3-VL-4B-Instruct
Qwen/Qwen3-VL-8B-Instruct Qwen/Qwen3-VL-8B-Instruct
Qwen/Qwen3-VL-32B-Instruct Qwen/Qwen3-VL-32B-Instruct
deepseek-ai/DeepSeek-OCR deepseek-ai/DeepSeek-OCR
Tencent-Hunyuan/HunyuanOCR Tencent-Hunyuan/HunyuanOCR
PaddlePaddle/PaddleOCR-VL PaddlePaddle/PaddleOCR-VL
AI-ModelScope/RMBG-2.0 AI-ModelScope/RMBG-2.0
voxcpm OpenBMB/VoxCPM-0.5B
voxcpm1.5 OpenBMB/VoxCPM1.5
glm-asr-nano-2512 ZhipuAI/GLM-ASR-Nano-2512
fun-asr-nano-2512 FunAudioLLM/Fun-ASR-Nano-2512
OpenBMB/VoxCPM1.5 OpenBMB/VoxCPM1.5
ZhipuAI/GLM-ASR-Nano-2512 ZhipuAI/GLM-ASR-Nano-2512
FunAudioLLM/Fun-ASR-Nano-2512 FunAudioLLM/Fun-ASR-Nano-2512
```
@@ -397,18 +397,18 @@ fun-asr-nano-2512 FunAudioLLM/Fun-ASR-Nano-2512
| 模型 | 大小 | RAM 使用 |
|------|------|----------|
| qwen3-0.6b | ~1.2 GB | ~2 GB |
| qwen3vl-2b | ~4 GB | ~6 GB |
| qwen3vl-8b | ~16 GB | ~20 GB |
| qwen3vl-32b | ~64 GB | ~70 GB |
| Qwen/Qwen3-0.6B | ~1.2 GB | ~2 GB |
| Qwen/Qwen3-VL-2B-Instruct | ~4 GB | ~6 GB |
| Qwen/Qwen3-VL-8B-Instruct | ~16 GB | ~20 GB |
| Qwen/Qwen3-VL-32B-Instruct | ~64 GB | ~70 GB |
## 后续步骤
成功安装后:
1. 阅读[快速入门指南](./getting-started.zh-CN.md)
2. 下载您的第一个模型:`aha download -m qwen3-0.6b`
3. 启动服务:`aha cli -m qwen3-0.6b`
2. 下载您的第一个模型:`aha download -m Qwen/Qwen3-0.6B`
3. 启动服务:`aha cli -m Qwen/Qwen3-0.6B`
4. 探索 [API 参考](./api.zh-CN.md)
## 另见
+31 -38
View File
@@ -4,60 +4,53 @@ aha supports a growing collection of state-of-the-art AI models across multiple
## Language Model
| Model | Parameters | Description | Use Case | License |
|-------|-----------|-------------|----------|---------|
| **Qwen3-0.6B** | 0.6B | Latest generation | Advanced reasoning | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **MiniCPM4-0.5B** | 0.5B | Efficient lightweight | Edge deployment | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **LFM2-1.2B** | 1.2B | Efficient lightweight | Edge deployment | [lfm1.0](https://huggingface.co/LiquidAI/LFM2-1.2B/blob/main/LICENSE) |
| **LFM2.5-1.2B-Instruct** | 1.2B | Efficient lightweight | Edge deployment | [lfm1.0](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct/blob/main/LICENSE) |
| Model | Parameters | Model Id | License |
|-------|-----------|--------|---------|
| **Qwen3-0.6B** | 0.6B | Qwen/Qwen3-0.6B | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **MiniCPM4-0.5B** | 0.5B | OpenBMB/MiniCPM4-0.5B | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **LFM2-1.2B** | 1.2B | LiquidAI/LFM2-1.2B | [lfm1.0](https://huggingface.co/LiquidAI/LFM2-1.2B/blob/main/LICENSE) |
| **LFM2.5-1.2B-Instruct** | 1.2B | LiquidAI/LFM2.5-1.2B-Instruct | [lfm1.0](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct/blob/main/LICENSE) |
## Vision & Multimodal
| Model | Parameters | Description | License |
|-------|-----------|-------------|---------|
| **Qwen2.5-VL-3B** | 3B | Image understanding | [Qwen Research License](https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct/blob/main/LICENSE) |
| **Qwen2.5-VL-7B** | 7B | Image understanding | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3-VL-2B** | 2B | Enhanced multimodal | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3-VL-4B** | 4B | Enhanced multimodal | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3-VL-8B** | 8B | Enhanced multimodal | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3-VL-32B** | 32B | Enhanced multimodal | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3.5-0.8B** | 0.8B | Native Multimodal | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3.5-2B** | 2B | Native Multimodal | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3.5-4B** | 4B | Native Multimodal | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3.5-9B** | 9B | Native Multimodal | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| Model | Parameters | Model Id | License |
|-------|-----------|----------|---------|
| **Qwen2.5-VL** | 3B <br> 7B | Qwen/Qwen2.5-VL-3B-Instruct <br> Qwen/Qwen2.5-VL-7B-Instruct | [Qwen 研究许可协议](https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct/blob/main/LICENSE) <br> [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3-VL** | 2B <br> 4B <br> 8B <br> 32B | Qwen/Qwen3-VL-2B-Instruct <br> Qwen/Qwen3-VL-4B-Instruct <br> Qwen/Qwen3-VL-8B-Instruct <br> Qwen/Qwen3-VL-32B-Instruct | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3.5** | 0.8B <br> 2B <br> 4B <br> 9B | Qwen/Qwen3.5-0.8B <br> Qwen/Qwen3.5-2B <br> Qwen/Qwen3.5-4B <br> Qwen/Qwen3.5-9B | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **LFM2.5-VL-1.6B** | 1.6B | LiquidAI/LFM2.5-VL-1.6B | [lfm1.0](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct/blob/main/LICENSE) |
| **LFM2-VL-1.6B** | 1.6B | LiquidAI/LFM2-VL-1.6B | [lfm1.0](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct/blob/main/LICENSE) |
## OCR
| Model | Languages | Type | Strength | License |
|-------|-----------|------|----------|---------|
| **PaddleOCR-VL** | Multi | Lightweight | General documents | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **PaddleOCR-VL1.5** | Multi | Lightweight | General documents | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Hunyuan-OCR** | Chinese | Deep learning | Complex layouts | [Tencent Hunyuan Community License](https://huggingface.co/tencent/HunyuanOCR/blob/main/LICENSE) |
| **DeepSeek-OCR** | Multi | Scene text | Natural images | [MIT](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md) |
| **GLM-OCR** | 8 | Scene text | complex document | [MIT](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md) |
| Model | Languages | Model Id | License |
|-------|-----------|--------|---------|
| **PaddleOCR-VL** | Multi | PaddlePaddle/PaddleOCR-VL <br> PaddlePaddle/PaddleOCR-VL-1.5 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Hunyuan-OCR** | Chinese | Tencent-Hunyuan/HunyuanOCR | [Tencent Hunyuan Community License](https://huggingface.co/tencent/HunyuanOCR/blob/main/LICENSE) |
| **DeepSeek-OCR** | Multi | deepseek-ai/DeepSeek-OCR <br> deepseek-ai/DeepSeek-OCR-2 | [MIT](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md) |
| **GLM-OCR** | 8 | ZhipuAI/GLM-OCR | [MIT](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md) |
## Speech Recognition (ASR)
| Model | Parameters | Language | Real-time | Speed | License |
|-------|-----------|----------|-----------|-------|---------|
| **Fun-ASR-Nano-2512** | 2G | Chinese/English | Yes | Fast | Not Specified |
| **GLM-ASR-Nano-2512** | 4.5G | Chinese/English | Yes | Fast | [MIT](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md) |
| **Qwen3-ASR-0.6B** | 0.6B | Chinese/English | Yes | Fast | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3-ASR-1.7B** | 1.7B | Chinese/English | Yes | Fast | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| Model | Parameters | Language | Model Id | License |
|-------|-----------|----------|----------|---------|
| **Fun-ASR-Nano-2512** | 2G | Chinese/English | FunAudioLLM/Fun-ASR-Nano-2512 | Not Specified |
| **GLM-ASR-Nano-2512** | 4.5G | Chinese/English | ZhipuAI/GLM-ASR-Nano-2512 | [MIT](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md) |
| **Qwen3-ASR** | 0.6B <br> 1.7B | Chinese/English | Qwen/Qwen3-ASR-0.6B <br> Qwen/Qwen3-ASR-1.7B | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
## Audio Generation
| Model | Parameters | Type | Description | License |
|-------|-----------|------|-------------|---------|
| **VoxCPM-0.5B** | 0.5B | Voice Codec | Neural audio codec | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **VoxCPM1.5** | - | Voice Codec | Enhanced voice generation | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| Model | version | Model Id | License |
|-------|-----------|---------|---------|
| **VoxCPM** | 1<br>1.5 | OpenBMB/VoxCPM-0.5B <br> OpenBMB/VoxCPM1.5 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
## Image Processing
| Model | Type | Description | License |
| Model | Type | Model Id | License |
|-------|------|-------------|---------|
| **RMBG-2.0** | Background Removal | Remove image backgrounds | [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/deed.en) |
| **RMBG-2.0** | Background Removal | AI-ModelScope/RMBG-2.0 | [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/deed.en) |
## Model Sources
+30 -38
View File
@@ -4,60 +4,52 @@ aha 支持多个领域的最先进 AI 模型集合。
## 文本生成
| 模型 | 参数量 | 描述 | 使用场景 | 开源协议 |
|------|--------|------|----------|---------|
| **Qwen3-0.6B** | 0.6B | 最新一代 | 高级推理 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **MiniCPM4-0.5B** | 0.5B | 高效轻量级 | 边缘部署 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **LFM2-1.2B** | 1.2B | 高效轻量级 | 边缘部署 | [lfm1.0](https://huggingface.co/LiquidAI/LFM2-1.2B/blob/main/LICENSE) |
| **LFM2.5-1.2B-Instruct** | 1.2B | 高效轻量级 | 边缘部署 | [lfm1.0](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct/blob/main/LICENSE) |
| 模型 | 参数量 | 模型id | 开源协议 |
|------|--------|------|---------|
| **Qwen3-0.6B** | 0.6B | Qwen/Qwen3-0.6B | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **MiniCPM4-0.5B** | 0.5B | OpenBMB/MiniCPM4-0.5B | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **LFM2-1.2B** | 1.2B | LiquidAI/LFM2-1.2B | [lfm1.0](https://huggingface.co/LiquidAI/LFM2-1.2B/blob/main/LICENSE) |
| **LFM2.5-1.2B-Instruct** | 1.2B | LiquidAI/LFM2.5-1.2B-Instruct | [lfm1.0](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct/blob/main/LICENSE) |
## 视觉与多模态
| 模型 | 参数量 | 描述 | 开源协议 |
|------|--------|------|--------|---------|
| **Qwen2.5-VL-3B** | 3B | 图像理解 | [Qwen 研究许可协议](https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct/blob/main/LICENSE) |
| **Qwen2.5-VL-7B** | 7B | 图像理解 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3-VL-2B** | 2B | 增强多模态 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3-VL-4B** | 4B | 增强多模态 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3-VL-8B** | 8B | 增强多模态 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3-VL-32B** | 32B | 增强多模态 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3.5-0.8B** | 0.8B | 原生多模态 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3.5-2B** | 2B | 原生多模态 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3.5-4B** | 4B | 原生多模态 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3.5-9B** | 9B | 原生多模态 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| 模型 | 参数量 | 模型id | 开源协议 |
|------|--------|------|---------|
| **Qwen2.5-VL** | 3B <br> 7B | Qwen/Qwen2.5-VL-3B-Instruct <br> Qwen/Qwen2.5-VL-7B-Instruct | [Qwen 研究许可协议](https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct/blob/main/LICENSE) <br> [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3-VL** | 2B <br> 4B <br> 8B <br> 32B | Qwen/Qwen3-VL-2B-Instruct <br> Qwen/Qwen3-VL-4B-Instruct <br> Qwen/Qwen3-VL-8B-Instruct <br> Qwen/Qwen3-VL-32B-Instruct | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3.5** | 0.8B <br> 2B <br> 4B <br> 9B | Qwen/Qwen3.5-0.8B <br> Qwen/Qwen3.5-2B <br> Qwen/Qwen3.5-4B <br> Qwen/Qwen3.5-9B | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **LFM2.5-VL-1.6B** | 1.6B | LiquidAI/LFM2.5-VL-1.6B | [lfm1.0](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct/blob/main/LICENSE) |
| **LFM2-VL-1.6B** | 1.6B | LiquidAI/LFM2-VL-1.6B | [lfm1.0](https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct/blob/main/LICENSE) |
## OCR
| 模型 | 语言 | 类型 | 优势 | 开源协议 |
|------|------|------|------|---------|
| **PaddleOCR-VL** | 多语言 | 轻量级 | 通用文档 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **PaddleOCR-VL1.5** | 多语言 | 轻量级 | 通用文档 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Hunyuan-OCR** | 中文 | 深度学习 | 复杂布局 | [腾讯混元社区许可协议](https://huggingface.co/tencent/HunyuanOCR/blob/main/LICENSE) |
| **DeepSeek-OCR** | 多语言 | 场景文字 | 自然图像 | [MIT](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md) |
| **GLM-OCR** | 8 | 场景文字 | 复杂文档 | [MIT](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md) |
| 模型 | 语言 | 模型id | 开源协议 |
|------|------|------|---------|
| **PaddleOCR-VL** | 多语言 | PaddlePaddle/PaddleOCR-VL <br> PaddlePaddle/PaddleOCR-VL-1.5 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Hunyuan-OCR** | 中文 | Tencent-Hunyuan/HunyuanOCR | [腾讯混元社区许可协议](https://huggingface.co/tencent/HunyuanOCR/blob/main/LICENSE) |
| **DeepSeek-OCR** | 多语言 | deepseek-ai/DeepSeek-OCR <br> deepseek-ai/DeepSeek-OCR-2 | [MIT](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md) |
| **GLM-OCR** | 8 | ZhipuAI/GLM-OCR | [MIT](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md) |
## 语音识别 (ASR)
| 模型 | 参数量 | 语言 | 实时 | 速度 | 开源协议 |
|------|--------|------|------|------|---------|
| **Fun-ASR-Nano-2512** | 2512M | 中/英 | 是 | 快速 | 未标明 |
| **GLM-ASR-Nano-2512** | 2512M | 中/英 | 是 | 快速 | [MIT](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md) |
| **Qwen3-ASR-0.6B** | 0.6B | 中/英 | 是 | 快速 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **Qwen3-ASR-1.7B** | 1.7B | 中/英 | 是 | 快速 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| 模型 | 参数量 | 语言 | 模型id | 开源协议 |
|------|--------|------|-----|---------|
| **Fun-ASR-Nano-2512** | - | 中/英 | FunAudioLLM/Fun-ASR-Nano-2512 | 未标明 |
| **GLM-ASR-Nano-2512** | - | 中/英 | ZhipuAI/GLM-ASR-Nano-2512 | [MIT](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/mit.md) |
| **Qwen3-ASR** | 0.6B <br> 1.7B | 中/英 | Qwen/Qwen3-ASR-0.6B <br> Qwen/Qwen3-ASR-1.7B | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
## 语音生成
| 模型 | 参数量 | 类型 | 描述 | 开源协议 |
|------|--------|------|------|---------|
| **VoxCPM-0.5B** | 0.5B | 语音编解码器 | 神经音频编解码 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| **VoxCPM1.5** | - | 语音编解码器 | 增强语音生成 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
| 模型 | 版本 | 模型id | 开源协议 |
|------|--------|------|------|
| **VoxCPM** | 1<br>1.5 | OpenBMB/VoxCPM-0.5B <br> OpenBMB/VoxCPM1.5 | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/blob/main/markdown/apache-2.0.md) |
## 图像处理
| 模型 | 类型 | 描述 | 开源协议 |
|------|------|------|---------|
| **RMBG-2.0** | 背景移除 | 移除图像背景 | [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/deed.zh-hans) |
| 模型 | 类型 | 模型id | 开源协议 |
|------|------|-----|---------|
| **RMBG-2.0** | 背景移除 | AI-ModelScope/RMBG-2.0 | [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/deed.zh-hans) |
## 模型来源