OpenManus-通过源码方式本地运行OpenManus,含踩坑及处理方案,chrome.exe位置修改

前言:最近 Manus 火得一塌糊涂啊,OpenManus 也一夜之间爆火,那么作为程序员应该来尝尝鲜

1、前期准备

  • FastGithub:如果有科学上网且能正常访问 github 则不需要下载此软件,此软件是提供国内直接访问 github
  • Git:通过 git 远程拉去 github 代码,当然也可以不用安装
  • Anaconda 或者 Miniconda:python 依赖管理工具
  • 科学上网:如果想去谷歌搜索,则需要支持访问 google.com,如果不需要,则配置访问路径为 百度,请往下看

2、进入 github 下载源码

点我进入OpenManus 仓库

阅读官方提供的文档:OpenManus 中文文档

2.1、下载源码

下载源码分两种方式:

  • 第一种是安装了 Git 的,直接通过命令
git clone https://github.com/mannaandpoem/OpenManus.git
  • 第二种是直接下载 zip 包
    下载 ZIP 包直接点击

2.2、准备工作

  • 创建 python 虚拟环境
# 创建虚拟环境
conda create -p D:\dev\py_repo\open_manus python=3.12
# 激活这个环境
conda activate open_manus
  • 支持 function calling 的大模型 API key

这里推荐使用 阿里云百炼平台,百炼开通后180天内送一定额度的 token,基本上是属于免费级别的

获得 API-KEY
在这里插入图片描述
在这里插入图片描述

  • 获取模型

每个模型都有相应的说明,注意看每个模型的注意事项描述,如果说明了不支持 Function calling 的模型,是无法使用到 OpenManus 中的
在这里插入图片描述
比如这个图片中,deepseek-r1 模型就不支持 Function calling

亲测有效的是 qwen-plus 模型,qwq-32b 也是支持的,不过我没亲测

3、使用 PyCharm 打开源码,并配置虚拟环境

这一步主要是为了阅读源码和启动源码,如果不需要阅读源码的可以直接跳过本步骤

  • 配置解释器
    启动 PyCharm 打开源码,并配置刚刚设置的 open_manus conda 环境,我这里已经配置过了,没有配置过第一步显示的是 Add interpreter
    在这里插入图片描述

  • 选择虚拟环境
    在这里插入图片描述
    选择好以后,点击 OK ,等待环境的初始化和加载,大概也就 10 来分钟左右

4、配置 OpenManus 环境

  • 如果是 PyCharm 启动,则直接手动复制 /config/config.example.toml 将复制出来的文件名改为 config.toml 即可
# Global LLM configuration
[llm]
model = "qwen-plus"
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key = "sk-.................................."
max_tokens = 4096
temperature = 0.0

model :一定要是支持 function calling 的模型
base_url:百炼云平台的接口地址,只要是百炼的模型,接口地址几乎是相同的,不用修改
api_key:这个就是之前注册的 api-key,直接复制接口
其他的都不用修改

  • 如果是通过 CMD 启动的,则使用命令复制文件,然后将正确的内容填写进去即可
cp config/config.example.toml config/config.toml

5、依赖拉取

5.1、激活环境

PyCharm 打开 terminal 窗口,激活 conda 环境,注意这里一定要是在项目的根目录下才可以

conda activate open_manus

5.2、安装依赖

pip install -r .\requirements.txt

完整命令截图如下:
在这里插入图片描述

6、各种踩坑

6.1、不支持 function calling

不支持 tool call,选择支持 function calling 的模型

<400> InternalError.Algo.InvalidParameter: The tool call is not supported.

6.2、模型名字错误

检查模型的名字,是否拼写错误

'The model `xxxxxx` does not exist or you do not have access to it.'

6.3、google_search 无法调用

⚠️ Tool 'google_search' encountered a problem: HTTPSConnectionPool(host='www.google.com', port=443): Max retries exceeded with url: /search?q=Google+homepage&num=12&hl=en&start=0&safe=active (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000020960CF1520>, 'Connection to www.google.com timed out. (connect timeout=5)'))
  • 方式1:科学上网全局代理,或者切换稳定的谷歌代理站点
  • 方式2:添加配置,有大佬提交了 pr,支持百度搜索
[llm]
model = "qwen-plus"
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key = "sk-.................................."
max_tokens = 4096
temperature = 0.0# 添加此项代码,走百度搜索
search_agent_config = "baidu"

6.4、循环打印日志 playwright install

2025-03-10 22:07:44.834 | INFO     | app.agent.base:run:137 - Executing step 1/30
2025-03-10 22:07:48.030 | INFO     | app.agent.toolcall:think:53 - ✨ Manus's thoughts: 
2025-03-10 22:07:48.030 | INFO     | app.agent.toolcall:think:54 - 🛠️ Manus selected 1 tools to use
2025-03-10 22:07:48.031 | INFO     | app.agent.toolcall:think:58 - 🧰 Tools being prepared: ['browser_use']
2025-03-10 22:07:48.031 | INFO     | app.agent.toolcall:execute_tool:140 - 🔧 Activating tool: 'browser_use'...
ERROR    [browser] Failed to initialize Playwright browser: BrowserType.launch: Executable doesn't exist at C:\Users\admin\AppData\Local\ms-playwright\chromium-1148\chrome-win\chrome.exe
╔════════════════════════════════════════════════════════════╗
║ Looks like Playwright was just installed or updated.       ║
║ Please run the following command to download new browsers: ║
║                                                            ║
║     playwright install                                     ║
║                                                            ║
║ <3 Playwright Team                                         ║
╚════════════════════════════════════════════════════════════╝
2025-03-10 22:07:48.464 | INFO     | app.agent.toolcall:act:113 - 🎯 Tool 'browser_use' completed its mission! Result: Observed output of cmd `browser_use` executed:
Error: Browser action 'navigate' failed: BrowserType.launch: Executable doesn't exist at C:\Users\admin\AppData\Local\ms-playwright\chromium-1148\chrome-win\chrome.exe
╔════════════════════════════════════════════════════════════╗
║ Looks like Playwright was just installed or updated.       ║
║ Please run the following command to download new browsers: ║
║                                                            ║
║     playwright install                                     ║
║                                                            ║
║ <3 Playwright Team                                         ║
╚════════════════════════════════════════════════════════════╝
2025-03-10 22:07:48.476 | INFO     | app.agent.base:run:137 - Executing step 2/30

首先这个问题是缺少了浏览器,那么需要先下载浏览器组件

python -m playwright install chromiumpip install playwright

安装不上,那么就暴力安装

  • 下载 chromium

下载地址:https://playwright-verizon.azureedge.net/builds/chromium/1148/chromium-win64.zip

  • 解压后放入指定目录

根据错误日志可以看到,程序去这个路径下面寻找 Browser action 'navigate' failed: BrowserType.launch: Executable doesn't exist at C:\Users\admin\AppData\Local\ms-playwright\chromium-1148\chrome-win\chrome.exe,那么就直接把浏览器复制到这个路径下即可

在这里插入图片描述

6.5、其他踩坑

如果你遇到了其他坑,就去这里面搜索问题:

https://github.com/mannaandpoem/OpenManus/issues

总能找到问题的解决办法

7、补充

2025-03-11补充

deepseek-r1 模型均不可用

deepseek-r1 不管是阿里云百炼平台,还是 deepseek 官网,都是不支持 Function calling 的,亲测结果
在这里插入图片描述
deepseek官网唯一支持 Function calling 的模型 deepseek-chat 在官方的描述如下:
在这里插入图片描述
deepseek-chat 模型亲测有效:

提示词:搜索整理昨天的所有AI相关的最新咨询,整理成markdown文件,文件名为:news_ai

经过漫长的等待,最终得到了如下的结果:超时了

修改 chrome.exe 位置

修改位置需要修改源代码,有三处地方需要修改

  • /app/config.py 文件

第四行代码和第 26 行代码修改
在这里插入图片描述

from typing import Dict, Optional  # ,Optional 为添加项class LLMSettings(BaseModel):model: str = Field(..., description="Model name")base_url: str = Field(..., description="API base URL")api_key: str = Field(..., description="API key")max_tokens: int = Field(4096, description="Maximum number of tokens per request")temperature: float = Field(1.0, description="Sampling temperature")api_type: str = Field(..., description="AzureOpenai or Openai")api_version: str = Field(..., description="Azure Openai version if AzureOpenai")chrome_instance_path: Optional[str] = Field(None, description="Local Chrome installation path") # 为添加项
  • browser_use_tool.py 修改

将 _ensure_browser_initialized 函数替换为如下代码

    async def _ensure_browser_initialized(self) -> BrowserContext:"""Ensure browser and context are initialized."""if self.browser is None:# 舍弃本句代码# self.browser = BrowserUseBrowser(BrowserConfig(headless=False))# 新增如下代码llm_config = config.llm['default']chrome_instance_path = llm_config.chrome_instance_pathprint(chrome_instance_path)self.browser = BrowserUseBrowser(BrowserConfig(headless=False, chrome_instance_path=chrome_instance_path))if self.context is None:self.context = await self.browser.new_context()self.dom_service = DomService(await self.context.get_current_page())return self.context
  • config.toml 新增配置项
[llm]
model = "qwen-plus"
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key = "sk-xxxxxx"
chrome_instance_path = "D:\\software\\chrome-win\\chrome.exe"   # 此项为新增配置项
max_tokens = 4096
temperature = 0.0

亲测有效

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

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

相关文章

【最新】DeepSeek 实用集成工具有那些?

deepseek 系列github仓库地址 【主页】deepseek-aiDeepSeek-R1DeepSeek-V3DeepSeek-VL2【本文重点介绍】awesome-deepseek-integration 注意&#xff1a;以下内容来自awesome-deepseek-integration DeepSeek 实用集成&#xff08;awesome-deepseek-integration&#xff09; 将…

开源!速度100Kb/s的有线和无线双模ESP32S3芯片的DAP-Link调试器

开源&#xff01;速度100Kb/s的有线和无线双模ESP32S3芯片的DAP-Link调试器 目录 开源&#xff01;速度100Kb/s的有线和无线双模ESP32S3芯片的DAP-Link调试器本项目未经授权&#xff0c;禁止商用&#xff01;本项目未经授权&#xff0c;禁止商用&#xff01;本项目未经授权&…

Flink测试环境Standalone模式部署实践

1.JDK环境 参考官方文档&#xff1a; https://nightlies.apache.org/flink/flink-docs-release-1.20/release-notes/flink-1.18/ 2.下载Flink&#xff1a;https://flink.apache.org/downloads/ 本次验证用的是&#xff1a;https://www.apache.org/dyn/closer.lua/flink/flink…

在16卡服务器上使用最新版的CUDA和驱动训练`llama - 2 - 7b`和`llama - 2 - 70b`模型,并生成训练指标数据

要在16卡服务器上使用最新版的CUDA和驱动训练llama - 2 - 7b和llama - 2 - 70b模型&#xff0c;并生成训练指标数据&#xff0c;你可以按照以下步骤进行&#xff1a; 1. 环境准备 确保你的服务器已经安装了最新版的CUDA和驱动&#xff0c;并且安装了必要的Python库&#xff0…

macOS 终端优化

macOS 安装、优化、还原、升级 Oh My Zsh 完全指南 &#x1f680; Oh My Zsh 是 macOS 终端增强的利器&#xff0c;它能提供强大的自动补全、主题定制和插件支持&#xff0c;让你的终端更高效、更炫酷。本文将全面介绍 如何安装、优化、还原、重新安装和升级 Oh My Zsh&#x…

计算机网络--访问一个网页的全过程

文章目录 访问一个网页的全过程应用层在浏览器输入URL网址http://www.aspxfans.com:8080/news/index.aspboardID5&ID24618&page1#r_70732423通过DNS获取IP地址生成HTTP请求报文应用层最后 传输层传输层处理应用层报文建立TCP连接传输层最后 网络层网络层对TCP报文进行处…

CAAC无人机考证备考清单

一、培训机构内部的考试大纲/备考指南 《机长笔试大纲》 《机长口试大纲》 《教员笔试大纲》 《教员口试大纲》&#xff08;不同机构的文件、命名可能不同&#xff09; 二、培训机构内部题库 题库内容包含(仿照多旋翼题库制作&#xff09;&#xff1a; 分类 子分…

【BUG】类文件具有错误的版本 61.0, 应为 52.0,请删除该文件或确保该文件位于正确的类路径子目录中。

报错&#xff1a; [ERROR] 类文件具有错误的版本 61.0, 应为 52.0 [ERROR] 请删除该文件或确保该文件位于正确的类路径子目录中。 报错截图&#xff1a; 原因&#xff1a;Java 版本和 Spring 不兼容&#xff0c;显示 Spring 版本过高 解决方法 1. 使用更高版本的 J…

卷积神经网络(笔记01)

视觉处理三大任务&#xff1a;分类、目标检测、图像分割 CNN网络主要有三部分构成&#xff1a;卷积层&#xff08;Convolutional Layer&#xff09;、池化层&#xff08;Pooling Layer&#xff09;和激活函数 一、解释卷积层中的偏置项是什么&#xff0c;并讨论在神经网络中引…

Django-ORM-prefetch_related

Django-ORM-prefetch_related 模型定义N1 查询问题示例 使用 prefetch_related 优化查询处理更复杂的查询示例&#xff1a;预取特定条件的书籍示例&#xff1a;预取多个关联字段 性能比较注意事项总结 通过 Author 和 Books 两个模型来理解 Django 的 prefetch_related 方法。 …

Spring Boot3整合Knife4j(4.5.0)

整体概述 Spring Boot 是用于简化 Spring 应用开发的框架&#xff0c;通过自动配置和约定大于配置原则&#xff0c;能让开发者快速搭建和运行 Spring 应用。Knife4j 是基于 Swagger 增强的 API 文档生成工具&#xff0c;可方便展示和调试 API 接口&#xff0c;生成美观易用的 …

Java 大视界 -- 区块链赋能 Java 大数据:数据可信与价值流转(84)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

K8S学习之基础二十四:k8s的持久化存储之pv和pvc

K8S的存储之pv和pvc 在 Kubernetes (k8s) 中&#xff0c;持久化存储是通过 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 来实现的。PVC 是用户对存储资源的请求&#xff0c;而 PV 是集群中的实际存储资源。PVC 和 PV 的关系类似于 Pod 和 Node 的关系。 Persisten…

【Hive】Hive安装

Hive 第一章 Hive的基础知识 第二章 Hive安装 第三章 DDL&#xff08;Data Definition Language&#xff09;数据定义 第四章 DML&#xff08;Data Manipulation Language&#xff09;数据操作 第五章 Hive查询 第六章 Hive的基础知识 第七章 Hive函数 第八章 分区表和分桶表 …

关于C/C++语言的初学者在哪刷题,怎么刷题

引言&#xff1a; 这篇博客主要是针对初学者关于怎么在网上刷题&#xff0c;以及在哪里刷题。 1.介绍平台&#xff08;在哪刷题&#xff09;&#xff1a; 1.牛客牛客网https://www.nowcoder.com/ &#xff1a;有许多面试题&#xff0c;也有许多供学习者练习的题 2.洛谷洛谷 …

k8s面试题总结(十四)

什么是Helm&#xff1f; Helm是一个k8s的包管理工具&#xff0c;它简化了应用程序在k8s集群中的部署&#xff0c;管理和维护。类似于rpm包和yum之间的关系。 K8s传统方式&#xff1a;类似于rpm安装包的方式&#xff0c;逐步进行安装&#xff0c;遇到依赖还得解决依赖问题 he…

物理服务器的作用都有哪些?

物理服务器是一种高性能的专用服务器&#xff0c;一般会被运用在大型组织和云计算环境当中&#xff0c;可以为企业和用户提供数据存储和计算资源&#xff0c;帮助企业提高整体的工作效率和快速实现业务目标。 物理服务器有着较高的安全性&#xff0c;企业可以将重要的数据信息备…

01 音视频知识学习(视频)

图像基础概念 ◼像素&#xff1a;像素是一个图片的基本单位&#xff0c;pix是英语单词picture的简写&#xff0c;加上英 语单词“元素element”&#xff0c;就得到了“pixel”&#xff0c;简称px&#xff0c;所以“像素”有“图像元素” 之意。 ◼ 分辨率&#xff1a;是指图像…

有关MyBatis的动态SQL

有关MyBatis动态SQL MyBatis动态SQL是一种根据不同条件灵活拼接SQL语句的技术&#xff0c;基于OGNL表达式实现。动态 SQL 大大减少了编写代码的工作量&#xff0c;更体现了 MyBatis 的灵活性、高度可配置性和可维护性。 1.什么是动态SQL? 动态sql可以在一些需要灵活拼接sql…

react使用拖拽,缩放组件,采用react-rnd解决 -完整版

屏幕录制2025-03-10 10.16.06 以下代码仅提供左侧可视化区域 右侧数据根据你们的存储数据来 大家直接看Rnd标签设置的属性即可&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; /*** 用户拖拽水印的最终位置信息*/ export interface ProductWatermarkValue {wat…