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 需要传入屏幕截图的 URLbase64。你有几种处理方式:

方式 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的分享