AidGenSE
💡注意
该版本是 AidGenSE 的一个临时版本,下一个发布的版本是正式版,接口调用方式会有细微改动,使用案例也会更丰富
介绍
AidGenSE 是基于 AidGen SDK 封装的适配了 OpenAI HTTP 协议的生成式 AI HTTP 服务。开发者可以通过 HTTP 方式调用生成式 AI 并快速集成到自己的应用中。
💡注意
Model Farm 支持的大语言模型均通过 AidGen 实现在高通芯片NPU上的推理加速。
支持情况
硬件支持情况
CPU | GPU | NPU | |
---|---|---|---|
高通 | ✅ | ✅ | ✅ |
联发科 (MTK) | ✅ | ✅ | 🚧 |
瑞芯微 | ✅ | ✅ | 🚧 |
✅:已支持 🚧:计划支持
💡注意
关于高通NPU可支持的大模型种类可以访问 Model Farm 进行查看
快速开始
安装部署
安装 AidLux APP (Linux 设备可以跳过此步骤)
该 AidLux APP 是一个精简最小化版的应用,请联系阿加犀技术支持获取安装
服务部署
💡注意
Android 环境需要在 AidLux APP 中操作。在 AidLux APP 的命令行中执行下面操作。 用户也可以通过拷屏方式在电脑端访问安卓界面进行操作,具体请参考常见问题——拷屏安卓设备
bash
# ----------------------工具安装---------------------- #
# 下载aidllm工具
wget http://117.176.129.180:65323/llm/install/v2/aidllm_1.2.0_arm64.aid.gpg
# 安装aidllm
sudo aid-pkg -i -d aidllm_1.2.0_arm64.aid.gpg
# 安装 API 服务
sudo aidllm install api
# ----------------------支持的模型查询---------------------- #
sudo aidllm remote-list
# 输出内容如下
Current Soc : 8550
Name Url CreateTime
----- --------- ---------
aplux_deepseekr1-1.5B aplux/aplux_deepseekr1-1.5B 2025-03-05 14:51:23
aplux_qwen2-1.5B aplux/aplux_qwen2-1.5B 2025-03-05 14:52:03
aplux_qwen2-7B aplux/aplux_qwen2-7B 2025-03-05 14:52:37
aplux_qwen2.5-3B aplux/aplux_qwen2.5-3B 2025-03-05 14:52:23
aplux_qwen2-0.5B aplux/aplux_qwen2-0.5B 2025-03-05 14:51:40
# ----------------------下载并查看对应模型---------------------- #
# e.g. 拉取 qwen2-7B模型:sudo aidllm pull aplux/aplux_qwen2-7B
sudo aidllm pull <Url>
# 查看本地已下载的模型
sudo aidllm list
bash
# ----------------------工具安装---------------------- #
# AidLux APP 已经预装了 aidllm 工具
# 安装 API 服务
sudo aidllm install api
# ----------------------支持的模型查询---------------------- #
sudo aidllm remote-list
# 输出内容如下
Current Soc : 8550
Name Url CreateTime
----- --------- ---------
aplux_deepseekr1-1.5B aplux/aplux_deepseekr1-1.5B 2025-03-05 14:51:23
aplux_qwen2-1.5B aplux/aplux_qwen2-1.5B 2025-03-05 14:52:03
aplux_qwen2-7B aplux/aplux_qwen2-7B 2025-03-05 14:52:37
aplux_qwen2.5-3B aplux/aplux_qwen2.5-3B 2025-03-05 14:52:23
aplux_qwen2-0.5B aplux/aplux_qwen2-0.5B 2025-03-05 14:51:40
# ----------------------下载并查看对应模型---------------------- #
# e.g. 拉取 qwen2-7B模型:sudo aidllm pull aplux/aplux_qwen2-7B
sudo aidllm pull <Url>
# 查看本地已下载的模型
sudo aidllm list
UI 服务部署 (可选项)
💡注意
Android 环境需要在 AidLux APP 中操作。在 AidLux APP 的命令行中执行下面操作。 用户也可以通过拷屏方式在电脑端访问安卓界面进行操作,具体请参考常见问题——拷屏安卓设备
bash
# 安装 UI 前端
sudo aidllm install ui
启动服务
启动大模型 API 服务
bash
# 当提示 Api server start successfully,表示 API 启动成功
sudo aidllm api start
# 当本地存在多个模型时,可以指定模型启动,e.g. sudo aidllm api start -m aplux_qwen2.5-3B
sudo aidllm api start -m <model_name>
- 查询状态:
sudo aidllm api status
- 停止服务:
sudo aidllm api stop
- 重启服务:
sudo aidllm api restart
启动 UI 服务器 (可选项)
bash
# 当提示 UI server start successfully,表示 UI 服务启动成功
sudo aidllm ui start
- 查询状态:
sudo aidllm ui status
- 停止服务:
sudo aidllm ui stop
访问 Demo 网页
使用浏览器访问网址:http://ip:51104/ 可以看到如下界面:
提示
IP 地址为硬件设备的 IP 地址
接口文档
例子
使用 Python 调用
服务启动
bash
sudo aidllm api start -m aplux_qwen2-7B
Python调用
python
import os
import requests
import json
def stream_chat_completion(messages, model="aplux_qwen2-7B"):
url = "http://127.0.0.1:8888/v1/chat/completions"
headers = {
"Content-Type": "application/json"
}
payload = {
"model": model,
"messages": messages,
"stream": True # 打开流式
}
# 发起带 stream=True 的请求
response = requests.post(url, headers=headers, json=payload, stream=True)
response.raise_for_status()
# 逐行读取并解析 SSE 格式
for line in response.iter_lines():
if not line:
continue
# print(line)
line_data = line.decode('utf-8')
# SSE 每一行以 "data: " 前缀开头
if line_data.startswith("data: "):
data = line_data[len("data: "):]
# 结束标志
if data.strip() == "[DONE]":
break
try:
chunk = json.loads(data)
except json.JSONDecodeError:
# 解析出错时打印并跳过
print("无法解析JSON:", data)
continue
# 取出模型输出的 token
content = chunk["choices"][0]["delta"].get("content")
if content:
print(content, end="", flush=True)
if __name__ == "__main__":
# 示例对话
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "你好。"}
]
print("Assistant:", end=" ")
stream_chat_completion(messages)
print() # 换行