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.pswp.cn/diannao/73053.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73053.shtml
英文地址,請注明出處:http://en.pswp.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…