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

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星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1198609.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPEN引用文献怎么写?CVPR论文标准格式示例

GPEN引用文献怎么写&#xff1f;CVPR论文标准格式示例 GPEN人像修复增强模型镜像 本镜像基于 GPEN人像修复增强模型 构建&#xff0c;预装了完整的深度学习开发环境&#xff0c;集成了推理及评估所需的所有依赖&#xff0c;开箱即用。 1. 镜像环境说明 组件版本核心框架PyT…

告别Dify解析难题|PaddleOCR-VL-WEB助力精准提取复杂排版内容

告别Dify解析难题&#xff5c;PaddleOCR-VL-WEB助力精准提取复杂排版内容 写在前面 你有没有遇到过这样的情况&#xff1a;一份PDF文档里&#xff0c;文字、表格、公式、图表混杂在一起&#xff0c;段落错位、字体不一、排版混乱。把这种文件扔给Dify这类大模型平台&#xff…

如何高效识别复杂文档?基于PaddleOCR-VL-WEB一键部署方案

如何高效识别复杂文档&#xff1f;基于PaddleOCR-VL-WEB一键部署方案 在处理扫描件、PDF、手写稿或跨语言资料时&#xff0c;传统OCR工具常常“看不清”表格结构、读不懂数学公式、分不出段落层级。面对这些复杂文档&#xff0c;我们需要的不只是字符识别能力&#xff0c;更需…

电商搜索实战:用Qwen3-Embedding-4B打造智能检索系统

电商搜索实战&#xff1a;用Qwen3-Embedding-4B打造智能检索系统 在电商平台中&#xff0c;用户能否快速、准确地找到想要的商品&#xff0c;直接决定了转化率和用户体验。传统的关键词匹配方式已经难以满足现代消费者日益复杂的搜索需求——比如“适合夏天穿的轻薄连衣裙”或…

GPEN能否用于直播美颜?实时推理延迟测试案例

GPEN能否用于直播美颜&#xff1f;实时推理延迟测试案例 GPEN人像修复增强模型在静态图像处理中表现出色&#xff0c;能够有效提升人脸图像的清晰度与细节质感。但一个更实际的问题是&#xff1a;它能否走出离线处理的范畴&#xff0c;进入实时场景&#xff1f;比如&#xff0…

零基础也能上手!PyTorch-2.x-Universal镜像保姆级安装教程

零基础也能上手&#xff01;PyTorch-2.x-Universal镜像保姆级安装教程 你是不是也经历过这样的场景&#xff1a;为了跑一个深度学习项目&#xff0c;光是配置环境就花了一整天&#xff1f;依赖冲突、CUDA版本不匹配、pip install卡住不动……这些问题让人头大。今天&#xff0…

AI语音降噪再升级|FRCRN-16k镜像实现秒级推理

AI语音降噪再升级&#xff5c;FRCRN-16k镜像实现秒级推理 你是否经历过这样的场景&#xff1a;在地铁上录制重要语音备忘录&#xff0c;背景是轰鸣的列车声&#xff1b;参加线上会议时&#xff0c;同事家里的狗一直在叫&#xff1b;或者用手机录课&#xff0c;结果风噪让内容几…

《C++ 小程序编写系列》(第六部)

前言&#xff1a;从多态到泛型 ——C 编程的进阶之路 在第五部中&#xff0c;我们通过继承与多态实现了管理员、读者等多角色的权限分离&#xff0c;以及图书、期刊等不同资源的统一管理。但系统仍存在局限性&#xff1a;所有数据类型&#xff08;图书 ID、读者编号、借阅日期…

从图片到JSON:利用DeepSeek-OCR-WEBUI实现SpringBoot表格数据自动提取

从图片到JSON&#xff1a;利用DeepSeek-OCR-WEBUI实现SpringBoot表格数据自动提取 在企业级应用开发中&#xff0c;纸质单据、发票、采购表等结构化文档的数字化处理一直是一个高频且繁琐的任务。传统的人工录入方式不仅效率低&#xff0c;还容易出错。随着AI技术的发展&#…

为何DeepSeek-R1推理更稳定?基于强化学习的数据蒸馏解析

为何DeepSeek-R1推理更稳定&#xff1f;基于强化学习的数据蒸馏解析 1. 模型背景与核心优势 你可能已经注意到&#xff0c;最近一款名为 DeepSeek-R1-Distill-Qwen-1.5B 的模型在多个推理任务中表现异常稳健——无论是解数学题、写代码&#xff0c;还是处理复杂逻辑链&#x…

Qwen1.5-0.5B训练后微调?原生Transformers接入指南

Qwen1.5-0.5B训练后微调&#xff1f;原生Transformers接入指南 1. 背景与目标&#xff1a;为什么用一个模型做两件事&#xff1f; 你有没有遇到过这种情况&#xff1a;想做个情感分析功能&#xff0c;得加载BERT&#xff1b;再加个对话机器人&#xff0c;又得上LLM。结果显存…

Sambert语音服务日志分析:错误排查与性能监控

Sambert语音服务日志分析&#xff1a;错误排查与性能监控 1. 引言&#xff1a;为什么日志分析是语音服务稳定运行的关键 你有没有遇到过这种情况&#xff1a;用户反馈语音合成突然变慢&#xff0c;甚至返回空白音频&#xff0c;而服务进程却显示正常运行&#xff1f;或者在高…

测试镜像优化建议:小而美,适合入门和测试场景

测试镜像优化建议&#xff1a;小而美&#xff0c;适合入门和测试场景 1. 引言&#xff1a;为什么需要轻量化的测试镜像&#xff1f; 在开发和测试过程中&#xff0c;我们常常需要快速验证某个功能、服务或脚本的可行性。这时候&#xff0c;一个启动快、结构简单、易于调试的测…

GPT-OSS-20B推理延迟优化:批处理参数调整案例

GPT-OSS-20B推理延迟优化&#xff1a;批处理参数调整案例 1. 背景与目标&#xff1a;为什么需要优化GPT-OSS-20B的推理延迟&#xff1f; 你有没有遇到过这样的情况&#xff1a;模型部署好了&#xff0c;界面也打开了&#xff0c;但每次提问都要等好几秒才出结果&#xff1f;尤…

Qwen3-Embedding-4B启动报错?环境配置问题解决案例

Qwen3-Embedding-4B启动报错&#xff1f;环境配置问题解决案例 在部署大模型服务时&#xff0c;即使使用了官方推荐的框架和镜像&#xff0c;也常常会遇到意想不到的启动问题。本文聚焦一个真实场景&#xff1a;基于SGlang部署Qwen3-Embedding-4B向量服务时出现启动失败的情况…

PyTorch-2.x Universal镜像实测:科学计算库调用指南

PyTorch-2.x Universal镜像实测&#xff1a;科学计算库调用指南 1. 镜像简介与核心价值 你是不是也经历过这样的场景&#xff1a;刚搭好一个深度学习环境&#xff0c;结果跑代码时发现少装了pandas&#xff0c;画图又缺了matplotlib&#xff0c;调试半天才发现jupyter内核没配…

MinerU环境部署全攻略:Conda+CUDA+Python3.10参数详解

MinerU环境部署全攻略&#xff1a;CondaCUDAPython3.10参数详解 1. 引言&#xff1a;为什么选择这款MinerU镜像&#xff1f; 你是否还在为PDF文档中复杂的排版头疼&#xff1f;多栏文字、嵌套表格、数学公式、插图混杂在一起&#xff0c;手动提取不仅耗时还容易出错。现在&am…

浅谈CPU中的SIMD

目录 1.简介 2.如何检查CPU是否支持SIMD 2.1.命令行快速查询&#xff08;手动检查&#xff09; 2.2.C 代码动态检测&#xff08;程序运行时判断&#xff09; 2.3.各自系统判断 3.C 中利用 SIMD 的方式 3.1.编译器自动向量化 3.2.SIMD Intrinsics 3.3.C 标准并行算法 …

Qwen3-4B推理性能瓶颈?GPU算力深度调优部署实战教程

Qwen3-4B推理性能瓶颈&#xff1f;GPU算力深度调优部署实战教程 1. 为什么你的Qwen3-4B跑不满算力&#xff1f; 你是不是也遇到过这种情况&#xff1a;明明用的是RTX 4090D&#xff0c;显存带宽拉满&#xff0c;CUDA核心数也不少&#xff0c;但部署Qwen3-4B-Instruct-2507时&…

用Qwen-Image-Layered处理老照片,逐层修复更精细

用Qwen-Image-Layered处理老照片&#xff0c;逐层修复更精细 你有没有这样的经历&#xff1a;翻出一张泛黄的老照片&#xff0c;想修复它&#xff0c;却发现划痕、褪色、模糊交织在一起&#xff0c;根本无从下手&#xff1f;传统修图工具要么整体调整&#xff0c;失真严重&…