open-AutoGLM部署

AutoGLM-Phone 是智谱 AI 推出的端侧智能体模型,具备通过自然语言指令直接操作手机 GUI(图形用户界面)的能力。它可以模拟人类操作,自动执行如"点外卖"、"查价格"、"发朋友圈"等跨应用任务。

本指南将带你完成从 算力 云服务器 搭建Docker 环境配置vLLM 模型加速部署本地 ADB 联调 的全流程。通过本教程,你将构建一套属于自己的 AI 手机操作助手。

open-AutoGLM GitHub地址 :github.com/zai-org/Ope...

视频教程:www.bilibili.com/video/BV1dW...

一、注册算力云服务器账号

1.注册

注册账号:访问下方链接注册,可获取专属算力优惠券:

2.选购

2.1 显卡选择

建议选择显存 40G 左右的显卡(如 A40, A100-40G, 或 4090),以确保模型加载和推理的稳定性。

2.2 计费模式

推荐选择"按小时租用",灵活划算。

2.3 带宽配置

  • 强烈建议将带宽拉满(最大值)。
  • 原因:模型文件和 Docker 镜像体积巨大,低带宽会导致下载耗时极长。
  • 注意:部分区域带宽速率一天仅允许修改一次,请谨慎操作。
  • 预算有限也可选择 32Mbps(免费)下载速率在4M。

2.4 镜像选择

直接选择ubuntu22.04系统

2.5 端口映射

创建实例后,请务必查看控制台提供的外网 端口容器内端口 的对应关系。后续启动服务时,需根据此映射关系设置 -p 参数。

二、服务器环境配置 (Docker)

连接上服务器(SSH)后,首先需要配置 Docker 环境。

官方文档:docs.docker.com/engine/inst...

1. 清理旧版本

如果系统自带了旧版 Docker,建议先卸载以避免冲突:

arduino 复制代码
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

2. 安装 Docker Engine

按照以下步骤安装最新版 Docker:

bash 复制代码
# 1. 更新索引并安装依赖
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

# 2. 安装 Docker
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 3. 验证安装
docker --version

3. 配置国内镜像加速(推荐)

为了提升拉取镜像的速度,建议配置国内加速源。

bash 复制代码
# 编辑配置文件
sudo vim /etc/docker/daemon.json

在文件中按 i 键进入编辑模式,粘贴以下内容:

json 复制代码
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://noohub.ru",
        "https://huecker.io",
        "https://dockerhub.timeweb.cloud"
    ]
}

保存退出(按 Esc 输入 :wq 回车),然后重启服务:

perl 复制代码
sudo service docker restart
# 验证配置是否生效
sudo docker info | grep Mirrors -A 4

三、模型下载

我们需要将 ZhipuAI/AutoGLM-Phone-9B 模型下载到服务器的 /opt/model 目录。推荐使用 ModelScope(魔搭社区)进行下载。

1. 使用 ModelScope 下载(推荐)

bash 复制代码
# 1. 安装下载工具
pip install modelscope

# 2. 创建目录并下载
mkdir -p /opt/model
modelscope download --model 'ZhipuAI/AutoGLM-Phone-9B' --local_dir '/opt/model'

2. 使用 Git LFS 下载

bash 复制代码
git lfs install
cd /opt/model
git clone https://www.modelscope.cn/ZhipuAI/AutoGLM-Phone-9B.git

3. 使用 Python SDK 下载

ini 复制代码
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('ZhipuAI/AutoGLM-Phone-9B')

四、部署 vLLM 推理服务

我们将使用 vLLM 框架来加速模型的推理。

1. 准备 NVIDIA Container Toolkit

bash 复制代码
# 1. 检查宿主机驱动(应显示显卡信息表)
#报错或找不到命令:说明你宿主机还没装显卡驱动,请先安装 NVIDIA 驱动。可根据教程自行下载。https://blog.csdn.net/a772304419/article/details/146601092
nvidia-smi 


# 2. 配置 NVIDIA 容器库
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# 3. 安装工具包并配置 Docker
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# 4. 生成配置文件
sudo nvidia-ctk runtime configure --runtime=docker
# 5. 重启
sudo systemctl restart docker

2. 启动vLLM 容器

下载并运行 vLLM 镜像,将模型路径映射到容器内部。

bash 复制代码
# 拉取镜像
docker pull vllm/vllm-openai:v0.12.0

# 启动容器
# 注意:-p 8800:8000 表示将宿主机的8800端口映射到容器的8000端口
# 请根据你在"第一部分"中查看的实际外网端口情况修改 8800
docker run -it \
 --entrypoint /bin/bash \
 --gpus all \
 -p 8800:8000 \
 --ipc=host \
 -v /opt/model:/app/model \
 --name autoglm \
 vllm/vllm-openai:v0.12.0

3. 在容器内启动服务

进入容器终端后,执行以下命令:

css 复制代码
# 1. 安装依赖 (忽略冲突警告)
pip install -U transformers --pre 

# 2. 启动 API Server (严格复制以下命令)
python3 -m vllm.entrypoints.openai.api_server \
 --served-model-name autoglm-phone-9b \
 --allowed-local-media-path /   \
 --mm-encoder-tp-mode data \
 --mm_processor_cache_type shm \
 --mm_processor_kwargs "{"max_pixels":5000000}" \
 --max-model-len 25480  \
 --chat-template-content-format string \
 --limit-mm-per-prompt "{"image":10}" \
 --model /app/model \
 --port 8000

注:--model 参数需指向容器内挂载的路径 /app/model 或者具体的子文件夹名。

4. 验证服务

模型服务启动后,可以使用检查脚本验证部署是否成功:

bash 复制代码
python scripts/check_deployment_cn.py --base-url http://你的IP:你的端口/v1 --model 模型名称

脚本将发送测试请求并展示模型的推理结果,你可以根据输出判断模型部署是否正常工作。

基于给定的任务, 预期输出如下。如果思维链长度很短, 或者出现了乱码, 很可能是模型部署失败, 请仔细检查文档要求的配置和依赖。

markdown 复制代码
<think>用户想要比较这个洗发水在京东和淘宝上的价格,然后选择最便宜的平台下单。当前在小红书app上,显示的是一个关于LUMMI MOOD洗发水的帖子。

我需要:
1. 先启动京东app,搜索这个洗发水
2. 查看京东的价格
3. 再启动淘宝app,搜索这个洗发水
4. 查看淘宝的价格
5. 比较价格后,选择最便宜的京东或淘宝下单

首先,我需要从当前的小红书界面退出,然后启动京东app。</think>
<answer>do(action="Launch", app="京东")

参数说明:

  • --base-url: 模型服务地址(根据实际部署地址修改)
  • --model: 模型名称
  • --messages-file: 可选,指定自定义测试消息文件(默认使用 scripts/sample_messages.json

五、客户端与真机连接 (本地电脑)

服务端准备就绪后,我们需要在本地电脑配置控制端,通过 ADB 控制安卓手机,并调用云端的 AI 模型。

硬件与环境准备

  • 操作系统:Windows / macOS

  • Python:建议 Python 3.10+

  • 安卓设备:Android 7.0+ 手机或模拟器。

  • ADB 工具

    • 下载地址:Android Platform Tools

    • 配置 环境变量 (以 Windows 为例):点击查看教程

      • 解压下载的包。
      • Win + R 输入 sysdm.cpl -> 高级 -> 环境变量。
      • System Path 中添加 ADB 解压路径。
      • 命令行输入 adb version 验证。
    • MacOS 配置方法 :在 Terminal 或者任何命令行工具里

ruby 复制代码
# 假设解压后的目录为 ~/Downlaods/platform-tools。如果不是请自行调整命令。
export PATH=${PATH}:~/Downloads/platform-tools
  1. 手机端设置

  2. 开启开发者模式:设置 -> 关于手机 -> 连续点击"版本号"直至提示已开启。

  3. 开启 USB 调试:设置 -> 开发者选项 -> 勾选"USB 调试"。

  4. 安装 ADB Keyboard

    1. 下载并安装ADB Keyboard apk
    2. 在手机"语言与输入法"设置中,将默认输入法切换为 ADB Keyboard。

部署控制端代码 (Open-AutoGLM)

在本地电脑上下载控制代码:

bash 复制代码
# 1. 克隆仓库
git clone https://github.com/zai-org/Open-AutoGLM
cd Open-AutoGLM

# 2. 安装依赖
pip install -r requirements.txt 
pip install -e .

连接设备

确保手机通过 USB 连接电脑,或处于同一 WiFi 下。

  • USB 方式
bash 复制代码
adb devices
# 输出应包含 device ID
  • WiFi 远程方式:
perl 复制代码
# 需先用 USB 连接开启 tcpip
adb tcpip 5555
# 断开 USB,连接手机 IP
adb connect 192.168.x.x:5555

六、启动 AI 代理

一切准备就绪,现在让 AI 接管手机。

命令行运行

在本地 Open-AutoGLM 目录下运行:

csharp 复制代码
python main.py \
  --device-id <你的设备ID或IP:5555> \
  --base-url http://<云服务器IP>:<映射端口>/v1 \
  --model "autoglm-phone-9b" \
  "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"
  • --device-id : 通过 adb devices 获取的 ID。
  • --base-url: 替换为你云服务器的公网 IP 和映射出的端口(例如 8800)。
  • 最后的字符串: 就是你给 AI 下达的自然语言指令。

python API 远程连接

python 复制代码
from phone_agent.adb import ADBConnection, list_devices

# 创建连接管理器
conn = ADBConnection()

# 连接远程设备
success, message = conn.connect("192.168.1.100:5555")
print(f"连接状态: {message}")

# 列出已连接设备
devices = list_devices()
for device in devices:
    print(f"{device.device_id} - {device.connection_type.value}")

# 在 USB 设备上启用 TCP/IP
success, message = conn.enable_tcpip(5555)
ip = conn.get_device_ip()
print(f"设备 IP: {ip}")

# 断开连接
conn.disconnect("192.168.1.100:5555")
  1. 常见问题排查

  • 连接被拒绝:检查云服务器防火墙是否放行了对应端口。
  • ADB 掉线:WiFi 连接不稳定,尝试使用 USB 线连接。
  • 模型乱码/无响应:检查 vLLM 启动参数是否完全一致,尤其是显存和 max-model-len 设置。
相关推荐
Emma歌小白3 小时前
把代码上传到 GitHub Gist
github
逛逛GitHub3 小时前
挖到 5 个很哇塞的 AI 开源项目,快来瞧瞧。
github
CoderJia程序员甲3 小时前
GitHub 热榜项目 - 日榜(2025-12-11)
git·ai·开源·llm·github
码界奇点3 小时前
基于Python与GitHub Actions的正方教务成绩自动推送系统设计与实现
开发语言·python·车载系统·自动化·毕业设计·github·源代码管理
测试人社区-小明6 小时前
量子计算对测试未来的潜在影响:软件测试的范式变革
opencv·测试工具·pycharm·机器人·自动化·github·量子计算
uhakadotcom6 小时前
Tomli 全面教程:常用 API 串联与实战指南
前端·面试·github
lin62534227 小时前
Android仿小米视频播放器的缩放滚轮
android·git·github
mit6.8247 小时前
[Solution] Github Permission denied (publickey)
github