岳阳市网站建设_网站建设公司_全栈开发者_seo优化
2026/1/22 6:55:51 网站建设 项目流程

Open-AutoGLM部署教程:云服务器端口映射配置步骤

Open-AutoGLM – 智谱开源的手机端AI Agent框架。该项目基于视觉语言模型,打造了一个能“看懂屏幕、听懂指令、自动操作”的智能手机助理系统。通过自然语言下达任务,AI即可理解当前界面状态,自主规划并执行点击、滑动、输入等操作,真正实现“动口不动手”的交互体验。

AutoGLM-Phone 是一个基于视觉语言模型的 AI 手机智能助理框架。它能以多模态方式理解屏幕内容,并通过 ADB 自动操控设备。用户只需用自然语言下指令,如“打开小红书搜美食”,模型即可解析意图、理解界面并自动规划、执行操作流程,无需手动点击。Phone Agent 是在此基础上构建的完整应用框架,支持远程调试、敏感操作确认和人工接管机制,适用于自动化测试、辅助操作、远程控制等多种场景。

本文将重点讲解如何在云服务器上部署 Open-AutoGLM 的推理服务,并完成端口映射配置,使本地电脑可通过网络调用云端 AI 模型能力,实现对安卓设备的远程智能控制。

1. 云服务器环境准备与模型部署

要让本地设备调用 AI 能力,首先需要在云服务器上部署模型推理服务。Open-AutoGLM 使用 vLLM 作为后端推理引擎,因此我们需要先搭建运行环境。

1.1 服务器基础环境

建议使用具备 GPU 的云服务器(如 NVIDIA T4 或 A10),操作系统推荐 Ubuntu 20.04+。

安装必要依赖:

sudo apt update sudo apt install -y python3-pip git docker.io nvidia-docker2

确保 CUDA 驱动和 NVIDIA Container Toolkit 已正确安装:

nvidia-smi # 应能看到 GPU 信息 docker run --rm --gpus all nvidia/cuda:12.1-base nvidia-smi # 测试 Docker 调用 GPU

1.2 拉取并运行 vLLM 镜像

Open-AutoGLM 推荐使用 vLLM 提供 OpenAI 兼容 API 接口。我们通过 Docker 启动服务:

docker run -d \ --gpus all \ --shm-size 1g \ -p 8800:8000 \ --name autoglm-vllm \ vllm/vllm-openai:v0.5.5 \ --model zaihui/autoglm-phone-9b \ --dtype half \ --max-model-len 4096 \ --gpu-memory-utilization 0.9

注意

  • -p 8800:8000表示将容器内的 8000 端口映射到主机的 8800 端口
  • --model指定 HuggingFace 上的官方模型
  • --gpu-memory-utilization 0.9提高显存利用率,避免 OOM
  • 若显存不足可尝试添加--quantization awq进行量化加速

启动后可通过以下命令查看日志:

docker logs -f autoglm-vllm

当看到Uvicorn running on http://0.0.0.0:8000字样时,表示服务已就绪。

1.3 验证云端 API 可访问性

在本地电脑或另一台机器上测试接口是否正常:

curl http://<你的云服务器IP>:8800/v1/models

预期返回包含autoglm-phone-9b的 JSON 响应。若无法连接,请检查以下几点:

  • 安全组/防火墙是否放行了8800 端口
  • 云服务商控制台是否开启入站规则(TCP 8800)
  • 本地网络是否允许出站请求

一旦确认 API 可达,说明云端模型服务已成功部署并对外提供服务。

2. 本地控制端环境搭建

接下来我们在本地电脑配置控制端,用于连接手机设备并向云端模型发送推理请求。

2.1 硬件与环境要求

  • 操作系统:Windows 或 macOS
  • Python 版本:建议 Python 3.10+
  • 安卓设备:Android 7.0+ 的真实手机或模拟器
  • ADB 工具:Android Debug Bridge,用于设备通信

2.2 安装 ADB 工具

Windows 用户
  1. 下载 Android SDK Platform Tools
  2. 解压到任意目录(如C:\platform-tools
  3. 添加路径至系统环境变量:
    • Win + R输入sysdm.cpl
    • 进入“高级”→“环境变量”
    • 在“系统变量”中找到Path,点击编辑 → 新建 → 添加解压路径
  4. 打开命令行输入:
adb version

若显示版本号则安装成功。

macOS 用户

在终端执行:

# 假设解压目录为 ~/Downloads/platform-tools export PATH=${PATH}:~/Downloads/platform-tools

可将其写入.zshrc.bash_profile实现永久生效:

echo 'export PATH=${PATH}:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc

再次运行adb version验证。

3. 手机端设置与设备连接

3.1 开启开发者选项与 USB 调试

  1. 进入手机“设置” → “关于手机”
  2. 连续点击“版本号”7次,直到提示“您已进入开发者模式”
  3. 返回设置主菜单 → “开发者选项”
  4. 启用“USB 调试”功能

部分品牌还需额外开启“USB 调试(安全设置)”或“允许通过 USB 安装应用”。

3.2 安装 ADB Keyboard(关键步骤)

由于 AI 代理需自动输入文字,而大多数输入法不支持 ADB 文字注入,必须使用专用输入法。

  1. 下载 ADB Keyboard APK 并安装
  2. 进入“设置” → “语言与输入法” → “默认键盘”
  3. 切换为ADB Keyboard

这样 AI 才能通过命令实现文本输入,例如:

adb shell am broadcast -a ADB_INPUT_TEXT --es msg "hello world"

4. 部署 Open-AutoGLM 控制代码

在本地电脑克隆项目仓库并安装依赖:

# 克隆项目 git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 创建虚拟环境(推荐) python -m venv venv source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate.bat (Windows) # 安装依赖 pip install -r requirements.txt pip install -e .

安装完成后,即可使用main.py启动代理。

5. 设备连接方式详解

5.1 USB 连接方式(稳定推荐)

使用数据线将手机连接电脑,首次连接会弹出授权提示,请点击“允许”。

验证设备是否识别:

adb devices

输出应类似:

List of devices attached ABCDEF1234567890 device

其中ABCDEF1234567890即为设备 ID。

5.2 WiFi 远程连接(适合无线场景)

若想摆脱数据线束缚,可通过 WiFi 连接设备。

第一步:使用 USB 连接并启用 TCP/IP 模式

adb tcpip 5555

此命令让设备监听 5555 端口的 ADB 请求。

第二步:断开 USB,通过 IP 连接

获取手机局域网 IP(可在“设置”→“WLAN”中查看),然后执行:

adb connect 192.168.x.x:5555

连接成功后,再次运行adb devices应能看到 IP 地址形式的设备条目。

提示:WiFi 连接可能因休眠断开,建议关闭手机自动锁屏或保持屏幕常亮。

6. 启动 AI 代理并执行任务

一切准备就绪后,即可启动 AI 代理,让它接管手机操作。

6.1 命令行方式启动

在项目根目录运行:

python main.py \ --device-id ABCDEF1234567890 \ --base-url http://<云服务器公网IP>:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"

参数说明:

  • --device-id:从adb devices获取的设备标识
  • --base-url:指向你云服务器上 vLLM 提供的 OpenAI 兼容接口
  • 最后的字符串:自然语言指令,AI 将据此理解目标并执行操作

执行过程中,你会看到 AI 不断截图上传、分析界面、生成动作指令(如点击坐标、滑动方向),并在设备上实时执行。

6.2 使用 Python API 编程调用

除了命令行,也可在脚本中集成调用:

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}") # 获取设备 IP(仅限已连接设备) ip = conn.get_device_ip() print(f"设备 IP: {ip}") # 断开连接 conn.disconnect("192.168.1.100:5555")

该 API 支持批量设备管理、状态监控、异常处理等高级功能,适合集成进自动化平台。

7. 常见问题与排查建议

7.1 连接失败:adb devices 显示 unauthorized

原因:未授权电脑调试权限
解决:手机上弹出的“允许 USB 调试?”对话框中点击“允许”

7.2 ADB 连接频繁断开(尤其是 WiFi 模式)

原因:手机休眠导致网络中断
建议:

  • 关闭自动锁屏
  • 在开发者选项中关闭“USB 调试超时”
  • 使用 USB 连接更稳定

7.3 模型无响应或返回乱码

可能原因:

  • vLLM 启动参数错误(特别是max-model-len设置过小)
  • 显存不足导致推理崩溃
  • 模型未正确加载(检查日志是否有Loaded model提示)

解决方案:

  • 增加--max-model-len 4096
  • 添加--gpu-memory-utilization 0.9
  • 使用nvidia-smi观察显存占用
  • 查看docker logs autoglm-vllm定位错误

7.4 云服务器端口无法访问

检查项:

  • 是否在云平台安全组中放行8800 端口(或其他自定义映射端口)
  • 本地是否被防火墙拦截
  • 是否误用了内网 IP 而非公网 IP
  • vLLM 容器是否绑定到了0.0.0.0而非127.0.0.1

可用以下命令测试端口连通性:

telnet <公网IP> 8800 # 或 nc -zv <公网IP> 8800

8. 总结

本文详细介绍了 Open-AutoGLM 的完整部署流程,重点围绕云服务器端口映射配置这一核心环节展开。我们完成了以下关键步骤:

  • 在云服务器上使用 Docker 部署 vLLM 推理服务,并通过-p 8800:8000映射端口
  • 在本地电脑安装 ADB 工具链,配置开发环境
  • 设置手机开发者选项与 ADB Keyboard,确保可被远程控制
  • 通过 USB 或 WiFi 方式连接设备
  • 使用main.py调用云端模型,实现自然语言驱动的自动化操作
  • 提供常见问题排查指南,保障部署稳定性

整个系统实现了“本地采集画面 + 云端理解决策 + 本地执行操作”的闭环架构,充分发挥了边缘设备与云计算的协同优势。

现在,你可以尝试更多复杂指令,比如:“登录我的淘宝账号,搜索‘蓝牙耳机’,按销量排序,加入购物车前三个商品”。随着模型不断迭代,未来甚至能处理跨 App 多步骤任务,真正成为你的数字分身。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询