https://github.com/X-PLUG/mPLUG-Owl/blob/main/README.md
mPLUG-Owl 是由阿里巴巴达摩院 X-PLUG 团队开发的一系列多模态大语言模型(MLLM),它的核心能力是让大语言模型"看懂"图片并与你对话。
Mobile-Agent-v3
Mobile-Agent-v3 确实支持 Windows,而且就是用来控制鼠标点击、操作整个操作系统的,不只是浏览器。
✅ 支持平台
Windows ✅(你要的)
macOS
Linux/Ubuntu
Android(手机)
✅ 核心能力
直接控制鼠标(移动、点击、拖拽)
键盘输入(打字、快捷键)
屏幕视觉理解(看截图,理解界面元素位置)
跨应用操作(不只是浏览器,任何软件都能控制)
系统级操作(打开软件、修改设置、文件管理等)
✅ 技术架构
它由两个核心组件构成 :
GUI-Owl:端到端多模态模型(7B/32B 参数),负责"看屏幕+决策"
Mobile-Agent-v3:多智能体框架,负责"规划-执行-反思"
Mobile-Agent-v3
方式一:ModelScope 魔搭社区(推荐)
链接:https://modelscope.cn/studios/wangjunyang/Mobile-Agent-v3
方式二:阿里云百炼(限时免费 API)
🔗 链接:https://bailian.console.aliyun.com/next?tab=demohouse#/experience/adk-computer-use/pc
特点:
✅ 提供限时免费的 Mobile-Agent-v3 API
✅ 适合想测试 API 调用、集成到自己应用的开发者
好的!你想查 Mobile-Agent-v3 的 API 使用方法。让我搜索一下官方 API 文档和调用方式:
太好了!我找到了 Mobile-Agent-v3 的官方 API 文档。根据搜索结果 ,阿里云提供了通义 UI Agent 的 API 接口,支持 PC 端(Windows) 和 移动端。
Mobile-Agent-v3 / GUI-Owl API 使用方法
接口地址
https://dashscope.aliyuncs.com/api/v2/apps/gui-owl/gui_agent_server
认证方式
Header 中携带 API Key:
Authorization: Bearer sk-your-api-key
Content-Type: application/json
PC 端(Windows)调用示例
这是你最关心的——控制 Windows 桌面:
Python 代码
import time
import requests
import json
import os
# 你的阿里云 API Key(从阿里云百炼控制台获取)
DASHSCOPE_API_KEY = "sk-your-api-key-here" # 替换为你的 key
# API 地址
url = "https://dashscope.aliyuncs.com/api/v2/apps/gui-owl/gui_agent_server"
# 请求头
headers = {
"Authorization": f"Bearer {DASHSCOPE_API_KEY}",
"Content-Type": "application/json"
}
# 会话 ID(首次为空,后续用返回的 session_id 保持对话)
session_id = ""
# 构建请求内容
content = [
{
"type": "data",
"data": {
"messages": [
{
# 屏幕截图的 URL(你需要先截图上传到图床,或转成 base64)
"image": "http://your-screenshot-url.jpg"
},
{
# 你的指令
"instruction": "打开计算器并计算 123+456"
},
{
"session_id": session_id # 保持会话连贯
},
{
"device_type": "pc" # 关键:指定 PC 端
},
{
"pipeline_type": "agent" # 使用 Agent 模式
},
{
"model_name": "pre-gui_owl_7b" # 或 pre-gui_owl_32b
},
{
"thought_language": "chinese" # 思考过程用中文
},
{
# 高级参数配置
"param_list": [
{"add_info": ""},
{"enable_reflector": True}, # 启用反思模块
{"enable_notetaker": True}, # 启用记忆模块
{"worker_model": "pre-gui_owl_7b"},
{"manager_model": "pre-gui_owl_7b"},
{"reflector_model": "pre-gui_owl_7b"},
{"notetaker_model": "pre-gui_owl_7b"}
]
}
]
}
}
]
# 构建完整请求体
payload = {
"app_id": "gui-owl",
"input": [
{
"role": "user",
"content": content
}
]
}
try:
start_time = time.time()
# 发送请求
response = requests.post(url, headers=headers, data=json.dumps(payload))
response.raise_for_status()
# 解析响应
result = response.json()
session_id = result.get('session_id', '') # 保存 session_id 用于下次对话
print(f"响应内容: {json.dumps(result, indent=2, ensure_ascii=False)}")
print(f"耗时: {time.time() - start_time:.2f} 秒")
# 提取关键信息
if 'output' in result:
action = result['output'].get('action', '无操作')
thought = result['output'].get('thought', '无思考过程')
print(f"\n🤖 思考: {thought}")
print(f"🖱️ 操作: {action}")
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
if hasattr(e.response, 'text'):
print(f"错误详情: {e.response.text}")
cURL 示例(快速测试)
curl --location --request POST 'https://dashscope.aliyuncs.com/api/v2/apps/gui-owl/gui_agent_server' \
--header 'Authorization: Bearer sk-your-api-key' \
--header 'Content-Type: application/json' \
--data-raw '{
"app_id": "gui-owl",
"input": [
{
"role": "user",
"content": [
{
"type": "data",
"data": {
"messages": [
{"image": "http://your-screenshot-url.jpg"},
{"instruction": "打开计算器"},
{"session_id": ""},
{"device_type": "pc"},
{"pipeline_type": "agent"},
{"model_name": "pre-gui_owl_7b"},
{"thought_language": "chinese"},
{
"param_list": [
{"add_info": ""},
{"enable_reflector": true},
{"enable_notetaker": true},
{"worker_model": "pre-gui_owl_7b"},
{"manager_model": "pre-gui_owl_7b"},
{"reflector_model": "pre-gui_owl_7b"},
{"notetaker_model": "pre-gui_owl_7b"}
]
}
]
}
}
]
}
]
}'
🔧 关键参数说明
| 参数 | 说明 | 可选值 |
|---|---|---|
device_type |
设备类型 | "pc" (Windows/Mac/Linux) / "mobile" (手机) |
pipeline_type |
运行模式 | "agent" (完整Agent) / "model" (仅模型推理) |
model_name |
模型版本 | pre-gui_owl_7b / pre-gui_owl_32b |
thought_language |
思考语言 | "chinese" / "english" |
enable_reflector |
是否启用反思(自我纠错) | true / false |
enable_notetaker |
是否启用记忆 | true / false |
session_id |
会话 ID(多轮对话用) | 首次为空,后续用返回的值 |
重要提示
1. 截图上传问题
API 需要传入屏幕截图的 URL 或 base64。你有几种处理方式:
方式 A:使用图床(简单)
- 截图 → 上传到阿里云 OSS / 七牛云 / imgur → 获取 URL
方式 B:Base64 编码(直接)
import base64
def image_to_base64(image_path):
with open(image_path, "rb") as f:
return base64.b64encode(f.read()).decode('utf-8')
# 使用 data URI 格式
image_base64 = image_to_base64("screenshot.png")
image_url = f"data:image/png;base64,{image_base64}"
2. API Key 获取
- 登录 阿里云百炼控制台
- 进入 "API Key 管理" 创建 Key
- 确保账户有余额(新用户有免费额度)
3. 响应内容
API 返回的是 思考过程 + 操作指令,例如:
{
"thought": "用户想打开计算器。我看到屏幕左下角有开始菜单,点击后可以搜索计算器。",
"action": "click(x=0.052, y=0.978)", // 归一化坐标 (0-1)
"session_id": "abc-123-xyz"
}
注意:API 只返回"应该点哪里",实际的鼠标控制需要你自己实现(用 pyautogui 等库)。
完整流程(截图 → API → 执行)
import pyautogui
import time
import requests
import base64
from io import BytesIO
def capture_screen():
"""截图并转为 base64"""
screenshot = pyautogui.screenshot()
buffered = BytesIO()
screenshot.save(buffered, format="PNG")
return base64.b64encode(buffered.getvalue()).decode()
def call_mobile_agent(api_key, instruction, session_id="", model="pre-gui_owl_7b"):
"""调用 Mobile-Agent API"""
url = "https://dashscope.aliyuncs.com/api/v2/apps/gui-owl/gui_agent_server"
# 截图
img_base64 = capture_screen()
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
payload = {
"app_id": "gui-owl",
"input": [{
"role": "user",
"content": [{
"type": "data",
"data": {
"messages": [
{"image": f"data:image/png;base64,{img_base64}"},
{"instruction": instruction},
{"session_id": session_id},
{"device_type": "pc"},
{"pipeline_type": "agent"},
{"model_name": model},
{"thought_language": "chinese"},
{"param_list": [
{"enable_reflector": True},
{"enable_notetaker": True}
]}
]
}
}]
}]
}
response = requests.post(url, headers=headers, json=payload)
return response.json()
def execute_action(action_str):
"""解析并执行操作(简单示例)"""
# 解析类似 "click(x=0.5, y=0.5)" 的指令
if "click" in action_str:
# 提取坐标
import re
coords = re.findall(r'[\d.]+', action_str)
if len(coords) >= 2:
x, y = float(coords[0]), float(coords[1])
# 转换为屏幕坐标
screen_w, screen_h = pyautogui.size()
px, py = int(x * screen_w), int(y * screen_h)
pyautogui.click(px, py)
print(f"点击: ({px}, {py})")
# 使用示例
API_KEY = "sk-your-api-key"
# 第一轮
result = call_mobile_agent(API_KEY, "打开计算器")
print(result)
execute_action(result['output']['action'])
# 第二轮(保持会话)
session_id = result.get('session_id', '')
time.sleep(2) # 等待界面响应
result2 = call_mobile_agent(API_KEY, "计算 123+456", session_id=session_id)
execute_action(result2['output']['action'])
《从零构建大模型》
《从零构建大模型》(Build a Large Language Model (From Scratch))
GitHub仓库: LLMs-from-scratch(已获得 43.7k+ Star)
项目特点
- 普通人友好:只需要一台普通笔记本电脑和Python基础,不需要大算力集群
- 完全开源:包含百万行生产级代码和280页技术手册
- 手把手教学:从数据准备、模型架构搭建、训练、微调到部署的全流程
核心技术内容
数据准备:构建数据加载管道,处理文本数据
模型架构:从零编写Transformer架构的所有组件
预训练:在自己的数据上训练基础模型
指令微调:使用人类反馈(RLHF)让模型遵循指令
模型优化:微调和性能优化技巧
实际应用:将模型部署到实际任务中
GitHub仓库:搜索 rasbt/LLMs-from-scratch https://github.com/rasbt/LLMs-from-scratch
中文书籍:图灵教育已出版中文版《从零构建大模型》
根据搜索结果,B站上有多个相关视频,最推荐的是:
《Build a Large Language Model (From Scratch)》配套视频
视频链接: https://www.bilibili.com/video/BV1TZ421j7Ke
UP主: DesyncInfoSec(以及其他搬运/翻译的UP主)
其他相关视频:
麻瓜AI进修所 的带读视频:https://www.bilibili.com/video/BV1TZ421j7Ke(边读边看系列)
从零开始构建大模型 的官方频道视频(58分钟版本)
这个仓库目前已经有 43.7k+ Star(搜索结果中提到不同时间点的数据)
作者还有一个新项目 reasoning-from-scratch(构建推理模型),GitHub地址:https://github.com/rasbt/reasoning-from-scratch
游戏-openclaw
《从零构建大模型》
https://www.ggelua.cn/6982/ https://www.ggelua.cn/youxiwu/menghuan/
https://www.gsewow.com/
通过网盘分享的文件:太乙神来2新版
链接: https://pan.baidu.com/s/1wxURgUjRgxak7WczO0ymrQ 提取码: t4r7
--来自百度网盘超级会员v4的分享