当前位置: 首页 > article >正文

OpenManus 开发实战图文教程

OpenManus 开发实战图文教程将自然语言转化为可执行工作流的 AI 智能体框架文章目录OpenManus 开发实战图文教程1. 什么是 OpenManus1.1 简介1.2 核心能力1.3 应用场景1.4 为什么选择 OpenManus2. 核心架构2.1 六层架构设计2.2 智能体继承体系2.3 工具系统架构3. 快速开始3.1 环境准备3.2 第一个示例3.3 浏览器自动化示例4. 核心概念4.1 Think-Act 循环4.2 浏览器自动化原理4.3 内存系统4.4 沙箱环境Daytona5. 实战案例5.1 案例 1网站 SEO 审查5.2 案例 2竞品分析报告5.3 案例 3数据采集与可视化6. 进阶技巧6.1 提高任务成功率技巧 1提供清晰的任务描述技巧 2合理设置步数限制技巧 3分步骤处理复杂任务6.2 错误处理与调试启用详细日志保存截图用于调试查看内存状态6.3 自定义工具6.4 性能优化建议建议 1使用缓存避免重复查询建议 2并行执行多个任务建议 3选择合适的 LLM 模型7. 常见问题Q1: 为什么 Agent 一直点击错误的元素Q2: 日期选择器无法正确操作怎么办Q3: 如何降低 API 调用成本Q4: 本地浏览器和沙箱浏览器有什么区别Q5: 如何提高执行速度Q6: 如何处理超时错误总结 核心优势 学习路径 下一步行动 参考资源附录A. 常用工具速查表B. 配置参数说明C. 常见错误码1. 什么是 OpenManus1.1 简介OpenManus 是由 MetaGPT 团队在 2025 年 7 月推出的开源通用 AI 智能体框架。它的核心理念是**“无堡垒、纯开放”**能够将自然语言需求直接转化为可执行的工作流。1.2 核心能力 浏览器自动化 → 自动访问网站、填写表单、提取信息 代码执行 → 生成并运行 Python 代码 数据分析 → 处理数据、生成可视化图表 文件操作 → 读写文件、整理文档1.3 应用场景场景一数据采集与可视化收集最近一周的比特币价格生成走势图并导出为 HTML场景二电商运营给三款新品写多平台文案分析竞品价格检测合规性场景三市场研究分析比亚迪和小鹏汽车在欧洲市场的竞争情况生成报告1.4 为什么选择 OpenManus开箱即用丰富的工具库支持浏览器、搜索、代码执行等安全可靠通过沙箱环境隔离执行保护系统安全高效低成本使用文本描述而非视觉模型降低 API 成本灵活扩展支持自定义工具和多智能体协作易于使用简洁的 API 设计快速上手2. 核心架构2.1 六层架构设计OpenManus 采用清晰的分层架构每层负责特定的功能层级名称功能第 1 层用户交互层CLI、Web API、可视化界面第 2 层应用入口层单智能体、多智能体协作、远程工具接入第 3 层智能体层BaseAgent → ReActAgent → Manus 四级继承第 4 层工具层浏览器、搜索、代码执行、文件操作等工具第 5 层流程控制层PlanningFlow 自动任务拆分和执行第 6 层基础设施层Docker、Redis、FAISS、LLM 适配器2.2 智能体继承体系# 四级继承设计逐步增强能力 ​ BaseAgent # 基础智能体 - 提供状态管理、内存管理、执行循环 ↓ ReActAgent # 推理-行动智能体 - 实现Think-Act 推理模式 ↓ ToolCallAgent # 工具调用智能体 - 支持工具调用决策和执行 ↓ Manus # 主要通用智能体 - 集成浏览器能力和完整工具集2.3 工具系统架构┌──────────────────────────────────────┐ │ 基础工具 │ │ • WebSearch: 多引擎搜索Baidu→DuckDuckGo→Google→Bing│ │ • BrowserUseTool: 浏览器自动化 │ │ • PythonExecute: 代码执行 │ │ • StrReplaceEditor: 文件编辑 │ └──────────────────────────────────────┘ ​ ┌──────────────────────────────────────┐ │ 沙箱工具 (Daytona) │ │ • SandboxBrowserTool: 沙箱浏览器 │ │ • SandboxFilesTool: 沙箱文件操作 │ │ • SandboxShellTool: 沙箱命令执行 │ │ • SandboxVisionTool: 沙箱视觉识别 │ └──────────────────────────────────────┘ ​ ┌──────────────────────────────────────┐ │ 数据分析工具 │ │ • 数据可视化: 图表生成 │ │ • 爬虫工具: 网页内容提取 │ └──────────────────────────────────────┘3. 快速开始3.1 环境准备# 安装 OpenManus pip install openmanus ​ # 可选安装 Daytona 沙箱环境 pip install daytona3.2 第一个示例import asyncio from openmanus import Manus ​ async def main(): 你的第一个 OpenManus 程序 # 创建 Agent 实例 agent await Manus.create() # 执行任务 result await agent.run(搜索 OpenManus 的最新进展) print(result) ​ # 运行 asyncio.run(main())输出示例OpenManus 最新进展 1. MetaGPT 团队在 2025 年 7 月发布了 OpenManus 2.0 版本 2. 新增了多智能体协作功能 3. 优化了浏览器自动化性能 4. 支持 10 种 LLM 模型 ...3.3 浏览器自动化示例import asyncio from openmanus import Manus async def search_flight(): 查询机票 - 完整示例 agent await Manus.create() # 执行任务 result await agent.run( 查询 2025年1月30日从上海到北京的机票。 具体要求 1. 选择单程 2. 找出价格最低的三个航班 3. 包括航班号、起飞时间、到达时间、价格 4. 按价格从低到高排序 ) print(result) # 运行 asyncio.run(search_flight())4. 核心概念4.1 Think-Act 循环OpenManus 的核心执行流程是Think-Act 循环┌─────────────────────────────────────┐ │ 用户输入任务 │ └──────────────┬──────────────────────┘ │ ↓ ┌─────────────────────────────────────┐ │ 【Think 阶段】 │ │ • LLM 分析当前状态 │ │ • 查看内存中的历史消息 │ │ • 决定下一步使用哪个工具 │ └──────────────┬──────────────────────┘ │ ↓ ┌─────────────────────────────────────┐ │ 【Act 阶段】 │ │ • 执行选定的工具 │ │ • 获取执行结果 │ │ • 将结果添加到内存 │ └──────────────┬──────────────────────┘ │ ↓ ┌─────┴─────┐ │ 回到Think │◄────┐ └─────┬─────┘ │ │ │ ↓ │ ┌─────────────────┐ │ │ 任务完成或 │ │ │ 达到步数上限 │───┘ └─────────────────┘4.2 浏览器自动化原理OpenManus 使用文本描述而非视觉模型来识别页面元素这样可以大幅降低成本页面元素示例 URL: https://flights.ctrip.com Title: 携程机票预订 交互元素列表: [0]button酒店/button [1]button机票/button [2]button火车票/button [37]input出发地/input [39]input目的地/input [40]input出发日期/input [43]button搜索/button 元素格式说明 [index]typetext/type - index: 元素的唯一标识符从 0 开始 - type: HTML 元素类型button, input, a 等 - text: 元素的描述性文本 LLM 根据这些文本描述选择要操作的元素工作流程访问网页浏览器自动加载页面元素识别遍历 DOM 树识别所有可交互元素生成描述为每个元素生成文本描述和索引LLM 决策根据描述选择要操作的元素索引执行操作通过索引精确点击或输入4.3 内存系统OpenManus 使用内存系统记录完整的对话历史和工具执行结果# 内存结构 Memory: - messages: List[Message] Message: - role: user | assistant | tool | system - content: 消息内容 - tool_calls: 工具调用列表assistant - base64_image: 页面截图tool # 示例 messages [ Message( roleuser, content查询机票 ), Message( roleassistant, content我需要先访问携程网站, tool_calls[{name: browser_use, arguments: ...}] ), Message( roletool, content已成功访问网站, base64_image... ) ]4.4 沙箱环境Daytona当你让 AI 执行代码时可能会带来安全风险。Daytona 沙箱的作用是核心特性隔离执行代码在远程容器中运行不影响宿主机️安全防护即使代码有恶意行为也无法访问本地系统资源管理自动清理临时文件和资源️实时监控通过 VNC 可以实时查看执行过程工作原理用户请求 → OpenManus → 代码生成 → Daytona 容器 → 安全执行 → 返回结果 ↓ 隔离环境 - 独立的文件系统 - 受限的网络访问 - 资源限制 - 自动清理使用示例from openmanus import SandboxManus async def use_sandbox(): 使用沙箱 Agent 执行任务 # 创建 SandboxManus agent await SandboxManus.create() # 在沙箱中执行任务 result await agent.run( 1. 访问 http://example.com 2. 提取页面内容 3. 将结果保存到 /workspace/result.md ) # 获取 VNC URL可以实时查看沙箱桌面 print(fVNC URL: {agent.vnc_url}) # 清理资源 await agent.cleanup() return result5. 实战案例5.1 案例 1网站 SEO 审查import asyncio from openmanus import Manus async def seo_audit(): 对网站进行 SEO 审查 agent await Manus.create() result await agent.run( 对 http://class.wucai.com 进行 SEO 审查提供详细的优化报告。 检查内容包括 1. 页面标题和描述 2. 关键词使用情况 3. 图片 alt 属性 4. 链接结构 5. 页面加载速度如果可以检测 6. 移动端适配情况 最后提供可操作的优化建议。 ) return result # 执行 result asyncio.run(seo_audit()) print(result)输出示例SEO 审查报告 网站http://class.wucai.com ✅ 优点 - 页面标题清晰 - 关键词使用合理 ⚠️ 需要改进 - 缺少 meta description - 部分图片缺少 alt 属性 - 内部链接结构可以优化 优化建议 1. 添加 meta description 标签 2. 为所有图片添加 alt 属性 3. 优化内部链接结构 ...5.2 案例 2竞品分析报告import asyncio from openmanus import Manus async def competitive_analysis(): 生成竞品分析报告 agent await Manus.create() result await agent.run( 写一份关于 2025 年中国新能源汽车出海欧洲的竞品分析报告。 重点分析比亚迪和小鹏汽车 1. 在欧洲的市场份额和销量数据 2. 主要车型和定价策略 3. 市场推广策略 4. 用户评价和品牌认知度 5. 面临的挑战和机遇 最后给出 SWOT 分析和战略建议。 ) return result # 执行 result asyncio.run(competitive_analysis()) print(result)执行流程分解Step 1: 搜索 比亚迪 欧洲市场 销量 → 工具: web_search → 结果: 获得销量数据 Step 2: 访问相关网页获取详细信息 → 工具: browser_use (go_to_url) → 结果: 访问官方数据页面 Step 3: 提取具体数据 → 工具: browser_use (extract_content) → 结果: 提取销量数字 Step 4: 搜索 小鹏汽车 欧洲市场 → 工具: web_search → 结果: 获得小鹏汽车信息 Step 5-20: 持续收集信息 → 多次搜索和访问网页 → 收集定价、车型、评价等信息 Step 21: 生成分析报告 → 工具: python_execute → 结果: 使用 Python 生成可视化图表 Step 22-25: 完善报告 → 整合所有信息 → 生成最终报告5.3 案例 3数据采集与可视化import asyncio from openmanus import Manus async def data_visualization(): 采集数据并生成可视化 agent await Manus.create() result await agent.run( 1. 访问 https://api.coinmarketcap.com/v1/ticker/bitcoin/ 2. 提取比特币价格数据 3. 使用 Python 生成价格走势图 4. 保存为 HTML 文件 ) return result # 执行 result asyncio.run(data_visualization()) print(result)Agent 会自动生成类似下面的 Python 代码import requests import pandas as pd import matplotlib.pyplot as plt # 获取数据 response requests.get(https://api.coinmarketcap.com/v1/ticker/bitcoin/) data response.json() # 提取价格 prices [float(coin[price_usd]) for coin in data] dates [coin[last_updated] for coin in data] # 创建 DataFrame df pd.DataFrame({ 日期: dates, 价格: prices }) # 创建图表 plt.figure(figsize(12, 6)) plt.plot(df[日期], df[价格], linewidth2) plt.title(比特币价格走势, fontsize16) plt.xlabel(时间, fontsize12) plt.ylabel(价格 (USD), fontsize12) plt.grid(True, alpha0.3) plt.xticks(rotation45) plt.tight_layout() plt.savefig(bitcoin_price.png, dpi300) # 生成 HTML 报告 html f !DOCTYPE html html head title比特币价格走势/title style body {{ font-family: Arial, sans-serif; max-width: 1200px; margin: 0 auto; padding: 20px; }} h1 {{ color: #333; text-align: center; }} .chart {{ text-align: center; margin: 30px 0; }} img {{ max-width: 100%; border: 1px solid #ddd; border-radius: 8px; }} /style /head body h1比特币价格走势分析/h1 div classchart img srcbitcoin_price.png alt比特币价格走势图 / /div /body /html with open(bitcoin_price.html, w, encodingutf-8) as f: f.write(html) print(✅ 数据采集和可视化完成) print( 图表已保存为: bitcoin_price.png) print( HTML 报告已保存为: bitcoin_price.html)6. 进阶技巧6.1 提高任务成功率技巧 1提供清晰的任务描述# ❌ 模糊的描述 帮我查一下机票 # ✅ 清晰的描述 result await agent.run( 查询 2025 年 1 月 30 日从上海到北京的机票。 具体要求 1. 选择单程 2. 找出价格最低的 3 个航班 3. 包括航班号、起飞时间、到达时间、价格 4. 按价格从低到高排序 )技巧 2合理设置步数限制from openmanus import Manus agent await Manus.create() agent.max_steps 25 # 增加步数限制默认为 20技巧 3分步骤处理复杂任务async def complex_task(): agent await Manus.create() # 步骤 1收集数据 data await agent.run(搜索并收集比亚迪在欧洲市场的销量数据) # 步骤 2分析数据 analysis await agent.run(f 基于以下数据进行分析 {data} 分析内容包括 1. 销量趋势 2. 主要竞争对手 3. 市场机会 ) # 步骤 3生成报告 report await agent.run(f 根据分析结果生成一份完整的报告 {analysis} 报告格式 1. 执行摘要 2. 数据分析 3. 结论和建议 ) return report6.2 错误处理与调试启用详细日志import logging # 启用详细日志 logging.basicConfig( levellogging.INFO, format%(asctime)s - %(name)s - %(levelname)s - %(message)s ) agent await Manus.create() # 执行任务时会输出详细的日志 result await agent.run(查询机票) # 日志示例 # 2025-01-30 10:00:00 - Manus - INFO - Manuss thoughts: 我需要先访问携程网站 # 2025-01-30 10:00:01 - Manus - INFO - Manus selected 1 tools to use # 2025-01-30 10:00:02 - Manus - INFO - Activating tool: browser_use # 2025-01-30 10:00:05 - Manus - INFO - Tool browser_use completed保存截图用于调试# 工具返回结果中包含 base64 编码的截图 result await agent.browser_tool.execute( actiongo_to_url, urlhttps://www.example.com ) if hasattr(result, base64_image): # 保存截图 import base64 with open(screenshot.png, wb) as f: f.write(base64.b64decode(result.base64_image)) print(✅ 截图已保存为: screenshot.png)查看内存状态# 查看当前内存中的所有消息 print(\n 内存状态 \n) for i, msg in enumerate(agent.memory.messages): print(f[{i}] {msg.role}: {msg.content[:100]}...) if msg.tool_calls: print(f 工具调用: {len(msg.tool_calls)} 个)6.3 自定义工具你可以创建自定义工具来扩展 OpenManus 的能力from openmanus.tools import BaseTool, ToolResult class CustomSearchTool(BaseTool): 自定义搜索工具 def __init__(self): super().__init__( namecustom_search, description使用自定义搜索引擎进行搜索 ) async def execute(self, **kwargs) - ToolResult: query kwargs.get(query) # 调用自定义搜索 API results self._call_custom_api(query) return ToolResult(contentstr(results)) def _call_custom_api(self, query: str): 实现你的自定义搜索逻辑 # 这里可以调用你的自定义搜索 API return [ { title: f搜索结果: {query}, url: https://example.com, snippet: f这是关于 {query} 的搜索结果 } ] # 使用自定义工具 from openmanus import Manus async def use_custom_tool(): agent await Manus.create() # 添加自定义工具 agent.available_tools.add(CustomSearchTool()) # 现在可以使用自定义工具了 result await agent.run(使用 custom_search 搜索相关信息) return result6.4 性能优化建议建议 1使用缓存避免重复查询from functools import lru_cache lru_cache(maxsize100) async def cached_search(query: str): 带缓存的搜索函数 agent await Manus.create() return await agent.run(f搜索{query}) # 第一次查询会执行完整的搜索 result1 await cached_search(OpenManus) # 第二次查询会使用缓存更快 result2 await cached_search(OpenManus)建议 2并行执行多个任务import asyncio from openmanus import Manus async def parallel_tasks(): 并行执行多个任务 # 创建多个 Agent 实例 agent1 await Manus.create() agent2 await Manus.create() agent3 await Manus.create() # 并行执行多个搜索 tasks [ agent1.run(搜索比亚迪信息), agent2.run(搜索小鹏信息), agent3.run(搜索特斯拉信息) ] results await asyncio.gather(*tasks) return results # 执行 results asyncio.run(parallel_tasks()) for i, result in enumerate(results): print(f\n 任务 {i1} 结果 \n{result}\n)建议 3选择合适的 LLM 模型# 简单任务使用快速模型 agent_fast await Manus.create(modelqwen-turbo) # 复杂任务使用强大模型 agent_powerful await Manus.create(modelqwen-max) # 平衡性能和成本 agent_balanced await Manus.create(modelqwen-plus)7. 常见问题Q1: 为什么 Agent 一直点击错误的元素现象Agent 反复点击同一个按钮无法完成任务。原因页面元素识别不准确任务描述不够清晰动态加载的元素没有被正确识别解决方案# 方法 1提供更详细的任务描述 result await agent.run( 访问携程网站找到航班查询页面。 注意 - 不要点击酒店或火车票标签 - 只点击机票标签通常是第二个按钮 - 在出发地输入框中输入上海 - 点击搜索按钮 ) # 方法 2增加步数限制 agent await Manus.create() agent.max_steps 25 # 从 20 增加到 25 # 方法 3分步骤执行 step1 await agent.run(访问携程网站点击机票标签) step2 await agent.run(在出发地输入框中输入上海) step3 await agent.run(点击搜索按钮)Q2: 日期选择器无法正确操作怎么办现象点击日期输入框后无法正确选择日期。原因日期选择器是动态生成的 DOM 元素可能没有被正确识别。解决方案# 方法 1使用具体的日期格式 result await agent.run( 在出发日期输入框中输入2025-01-30 使用 send_keys 而不是 click 操作 ) # 方法 2尝试使用坐标点击 result await agent.run( 点击出发日期输入框 等待日历弹出 使用坐标点击日历中的日期 ) # 方法 3使用浏览器的日期输入功能 result await agent.run( 找到出发日期输入框 直接输入日期20250130 ) # 方法 4如果以上方法都不行可以尝试 result await agent.run( 保存当前页面截图 分析截图中的日期选择器 使用坐标点击具体的日期 )Q3: 如何降低 API 调用成本OpenManus 已经通过以下方式优化成本使用文本描述而非视觉模型大幅降低成本智能工具选择避免不必要的工具调用结果缓存避免重复查询用户可以进一步优化# 优化 1减少不必要的工具调用 # ❌ 不好的做法 result await agent.run( 1. 访问网站 2. 等待 10 秒 3. 再次访问网站 4. 等待 10 秒 5. 提取内容 ) # ✅ 好的做法 result await agent.run( 访问网站等待加载完成后提取内容。 ) # 优化 2使用缓存 from functools import lru_cache lru_cache(maxsize100) async def cached_search(query: str): agent await Manus.create() return await agent.run(f搜索{query}) # 优化 3选择合适的模型 # 简单任务使用快速模型 agent await Manus.create(modelqwen-turbo) # 优化 4提供清晰的任务描述 # 避免 Agent 进行不必要的尝试 result await agent.run( 访问 https://www.example.com 提取页面中所有的链接和标题 )Q4: 本地浏览器和沙箱浏览器有什么区别特性本地浏览器 (BrowserUseTool)沙箱浏览器 (SandboxBrowserTool)运行位置本地电脑Daytona 云端使用的 AgentManusSandboxManus可视化方式直接看到浏览器窗口通过 VNC URL 查看资源占用占用本地资源不占用本地资源安全性较低高完全隔离适用场景简单任务、快速测试复杂任务、需要安全性选择建议✅使用本地浏览器简单的任务需要快速测试不涉及敏感数据需要实时查看操作✅使用沙箱浏览器执行未知代码处理敏感数据需要隔离环境长时间运行的任务Q5: 如何提高执行速度# 方法 1并行执行多个任务 import asyncio async def parallel_tasks(): agent await Manus.create() tasks [ agent.run(搜索比亚迪信息), agent.run(搜索小鹏信息), agent.run(搜索特斯拉信息) ] results await asyncio.gather(*tasks) return results # 方法 2使用更快的模型 agent await Manus.create(modelqwen-turbo) # 方法 3减少不必要的步骤 # 提供清晰的任务描述避免重复操作 result await agent.run( 访问网站直接提取所有产品信息不要多次刷新。 ) # 方法 4使用缓存 from functools import lru_cache lru_cache(maxsize100) async def cached_operation(query: str): agent await Manus.create() return await agent.run(f操作{query})Q6: 如何处理超时错误# 方法 1增加超时时间 agent await Manus.create() agent.timeout 600 # 设置为 600 秒 # 方法 2分步骤执行 # 将长任务拆分为多个短任务 step1 await agent.run(访问网站并等待加载) step2 await agent.run(提取第一页内容) step3 await agent.run(提取第二页内容) # 方法 3使用异步重试 import asyncio async def retry_operation(max_retries3): for i in range(max_retries): try: agent await Manus.create() result await agent.run(你的任务) return result except Exception as e: print(f第 {i1} 次尝试失败: {e}) if i max_retries - 1: await asyncio.sleep(5) # 等待 5 秒后重试 return None总结OpenManus 是一个功能强大的 AI 智能体框架通过以下核心特性实现了手脑并用的能力 核心优势开箱即用丰富的工具库支持浏览器、搜索、代码执行等安全可靠通过沙箱环境隔离执行保护系统安全高效低成本使用文本描述替代视觉模型降低 API 成本灵活扩展支持自定义工具和多智能体协作易于使用简洁的 API 设计快速上手 学习路径初学者 1. 理解 Think-Act 循环 2. 学会使用基本工具 3. 完成简单的任务如网页浏览 进阶者 1. 深入理解浏览器自动化 2. 学习使用沙箱环境 3. 处理复杂任务和错误 高级用户 1. 开发自定义工具 2. 实现多智能体协作 3. 优化性能和成本 下一步行动实践项目选择一个实际需求用 OpenManus 实现深入源码阅读 OpenManus 的源代码理解实现细节贡献社区分享你的经验和工具帮助他人学习 参考资源资源链接GitHub 仓库https://github.com/FoundationAgents/OpenManus官方文档https://openmanus.readthedocs.io社区论坛https://discuss.openmanus.dev示例代码https://github.com/FoundationAgents/OpenManus/tree/main/examples附录A. 常用工具速查表工具名称功能参数示例web_search网络搜索queryOpenManus 教程, num_results5browser_use浏览器操作actionclick_element, index0python_execute执行 Python 代码codeprint(Hello)str_replace_editor文件编辑filetest.txt, old_text..., new_text...ask_human询问用户question请确认terminate终止任务无参数B. 配置参数说明# 配置示例 (config.toml) [llm] model qwen-max api_key your-api-key temperature 0.7 [agent] max_steps 20 timeout 300 [daytona] api_key dtn-xxx [browser] headless false timeout 30000C. 常见错误码错误码说明解决方案E001元素未找到检查元素索引增加等待时间E002超时增加 timeout 参数E003API 调用失败检查 API key 和网络连接E004步数超限增加 max_steps祝你学习愉快如果有任何问题欢迎随时提问。转载声明本文原创转载请注明出处。

相关文章:

OpenManus 开发实战图文教程

OpenManus 开发实战图文教程 将自然语言转化为可执行工作流的 AI 智能体框架 文章目录OpenManus 开发实战图文教程1. 什么是 OpenManus1.1 简介1.2 核心能力1.3 应用场景1.4 为什么选择 OpenManus?2. 核心架构2.1 六层架构设计2.2 智能体继承体系2.3 工具系统架构3.…...

Qwen All-in-One场景应用:在边缘设备上部署全能AI助手

Qwen All-in-One场景应用:在边缘设备上部署全能AI助手 1. 引言:当AI助手遇上资源受限的边缘世界 想象一下,你正在开发一款智能家居中控设备,或者一个工业现场的巡检机器人。你希望它能理解用户的情绪,并给出贴心的回…...

5分钟量化你的工作价值:开源智能计算器帮你做出明智职业决策

5分钟量化你的工作价值:开源智能计算器帮你做出明智职业决策 【免费下载链接】worth-calculator "这b班到底值不值得上?"的计算器 项目地址: https://gitcode.com/gh_mirrors/wo/worth-calculator 还在为"这b班到底值不值得上&quo…...

DLSS Swapper:3分钟搞定游戏画质升级,N卡玩家的性能神器

DLSS Swapper:3分钟搞定游戏画质升级,N卡玩家的性能神器 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在为游戏帧率不够高而烦恼吗?还在纠结要不要升级显卡来获得更好的游戏体验…...

C# opc ua客户端实例源码,带ef6+sqlite。 代码有完整的注解,及包括所有的链接...

C# opc ua客户端实例源码,带ef6sqlite。 代码有完整的注解,及包括所有的链接库和程序结构思维图。 纯学习资料OPC UA 客户端节点管理系统功能全览一、产品定位OPC UA 客户端节点管理系统是一款基于 .NET Framework 4.6 的 Windows 桌面应用,旨…...

基于Matlab/Simulink的直流有刷电机双闭环调速系统设计与仿真验证

1. 直流有刷电机双闭环调速系统基础 我第一次接触直流有刷电机调速系统是在五年前的一个工业自动化项目上。当时客户要求电机转速必须精确控制在2%的误差范围内,单闭环系统根本达不到这个精度要求。后来改用转速、电流双闭环结构后,问题迎刃而解。这种系…...

Python量化实战:如何用KAMA指标识别市场趋势(附完整代码)

Python量化实战:KAMA指标的市场趋势识别与策略实现 在量化交易领域,识别市场趋势是构建盈利策略的关键。考夫曼自适应移动平均线(KAMA)作为一种智能技术指标,能够根据市场波动性自动调整灵敏度,为交易者提供更精准的趋势判断。本文…...

用jaffle_shop模版快速上手dbt:从seed数据到生成第一个数据模型的完整流程

用jaffle_shop模版快速上手dbt:从seed数据到生成第一个数据模型的完整流程 当你第一次接触dbt时,可能会被各种概念和配置搞得晕头转向。作为一个专注于数据转换的工具,dbt确实需要一些时间来掌握。但好消息是,dbt官方提供了一个绝…...

Keynote远程标注全攻略:用旧iPhone改造会议神器(附省电设置)

Keynote远程标注全攻略:用旧iPhone改造会议神器(附省电设置) 在小型会议或教学场景中,流畅的演示体验往往离不开得心应手的辅助工具。传统翻页激光笔虽然实用,但功能单一且容易丢失。而苹果用户可能没有意识到&#xf…...

免Root实现Android应用动态扩展的完整指南:LSPatch终极方案

免Root实现Android应用动态扩展的完整指南:LSPatch终极方案 【免费下载链接】LSPatch LSPatch: A non-root Xposed framework extending from LSPosed 项目地址: https://gitcode.com/gh_mirrors/ls/LSPatch 你是否曾因Android设备没有root权限而无法使用强大…...

云上OpenClaw快速部署指南:从“能用”到“好用”的蓝队云进阶攻略

在之前的文章中,我们快速体验了一把 OpenClaw快速部署 的乐趣。但很多朋友发现,虽然AI助理跑起来了,但响应慢、偶尔崩溃、或者担心安全问题。这是因为,把OpenClaw部署在云端只是第一步,如何让它“好用”且“安全”&…...

Elasticsearch reindex性能优化:如何让你的数据迁移速度提升10倍

Elasticsearch reindex性能优化实战:从原理到10倍提速的完整方案 当你面对TB级数据迁移需求时,原生的reindex操作可能让你在漫长的等待中失去耐心。我曾亲历一次3TB日志数据的跨集群迁移,通过系统优化将耗时从72小时压缩到6.5小时——这不是魔…...

蓝队云揭秘:如何利用云服务器高效养殖龙虾OpenClaw?

在数字化转型的浪潮中,一切皆可“上云”,包括您可能从未想过的“龙虾养殖”。这里的“龙虾”,指的是当下热门的开源安全工具——OpenClaw。它如同网络安全海洋中的“捕虾笼”,能有效捕捉威胁,守护您的数字资产。那么&a…...

Anchor-free时代来临:为什么ActionFormer能成为视频动作定位的新标杆?

Anchor-free时代来临:为什么ActionFormer能成为视频动作定位的新标杆? 视频动作定位(Temporal Action Localization, TAL)是计算机视觉领域最具挑战性的任务之一。想象一下,当我们需要从一段长达数小时的监控视频中快速…...

贪心策略的路径寻优——Dijkstra算法核心思想与实现解析

1. 从地图导航到算法本质:Dijkstra为何能找最短路径? 每次用手机地图导航时,你有没有好奇过它怎么在秒级内算出最优路线?这背后藏着一位1956年诞生的算法巨星——Dijkstra算法。我在第一次实现这个算法时,被它那种&quo…...

心肌肌钙蛋白I的蛋白水解片段对临床检测有何影响?

一、心肌梗死后血液中心肌肌钙蛋白I以何种分子形式存在?心肌肌钙蛋白I(cTnI)作为诊断心肌损伤的关键生物标志物,其在血液中的存在形式并非单一的完整分子。当急性心肌梗死(AMI)发生时,坏死的心肌…...

保姆级教程:在离线/内网环境的CentOS 7.9服务器上,如何安全升级内核到最新5.19版本?

企业级内网环境下的CentOS 7.9内核升级实战指南 在金融、政务等对网络安全要求极高的行业场景中,服务器通常运行在严格隔离的内网环境中。当我们需要为这些服务器升级内核以获得更好的硬件兼容性或安全补丁时,常规的在线升级方案完全失效。本文将手把手带…...

Vue.Draggable嵌套拖拽:从零构建企业级树形交互界面

Vue.Draggable嵌套拖拽:从零构建企业级树形交互界面 【免费下载链接】Vue.Draggable 项目地址: https://gitcode.com/gh_mirrors/vue/Vue.Draggable 你是否曾为复杂的管理后台设计而头疼?当产品经理递来需求:"我们需要一个可以无…...

2023最新版:用VMware Workstation 17 Pro搭建CentOS7开发环境(含SSH/Xshell配置全流程)

2023 VMware Workstation 17 Pro与CentOS7开发环境高效配置指南 在当今快速发展的技术环境中,拥有一个稳定可靠的开发环境对于程序员来说至关重要。VMware Workstation 17 Pro作为虚拟化技术的佼佼者,配合CentOS7这一企业级Linux发行版,能够为…...

Typora Beta版过期?3种实测有效的解决方法(附最新0.11.18安装包)

Typora Beta版过期?3种实测有效的解决方法(附最新0.11.18安装包) 作为一款广受欢迎的Markdown编辑器,Typora在Beta阶段积累了大量忠实用户。然而随着官方正式版的推出,部分用户发现Beta版本突然提示过期无法使用。本文…...

Momenta不选VLA选世界模型

点击下方卡片,关注“自动驾驶之心”公众号戳我-> 领取自动驾驶近30个方向学习路线作者 | 智能车参考编辑 | 自动驾驶之心>>自动驾驶前沿信息获取→自动驾驶之心知识星球Momenta,也押注世界模型了。就在刚刚,Momenta剧透下一代飞轮大…...

Room 3.0大变身:安卓开发的新挑战与机遇

Room 3.0大变身:安卓开发的新挑战与机遇 Room 3.0 发布,变革来袭 家人们,大消息!熬了好几个大夜,终于把 Android Room 3.0 的更新研究得七七八八了,今天就来跟大家好好唠唠。这次更新,Google 直…...

手把手教你用setpci调优PCIE设备性能(附GPU/网卡实战案例)

手把手教你用setpci调优PCIE设备性能(附GPU/网卡实战案例) 在数据中心和高性能计算场景中,PCIE设备的性能调优往往是压榨硬件潜力的最后一道关卡。作为经历过数十次服务器性能调优的老兵,我见过太多因寄存器参数配置不当导致的性能…...

OpenClaw健康助手:Qwen3-32B分析运动数据生成周报

OpenClaw健康助手:Qwen3-32B分析运动数据生成周报 1. 为什么需要自动化健康报告 作为一个长期伏案工作的程序员,我去年开始使用智能手环记录每日运动数据。但很快发现一个问题:这些数据只是冰冷地堆积在APP里,缺乏深度分析和可执…...

十一、模型评估与部署

训练完成的大模型需要经过全面评估才能验证其能力,之后还需经过压缩和优化才能部署到生产环境。本章将介绍常用的评估基准、模型压缩技术以及主流的部署框架。 1 评估基准 (Evaluation Benchmarks) 在大模型时代,“跑分”(Benchmarking&#…...

收藏!Java开发者必看:大模型落地加速,这波红利小白也能接住

最近刷到几条AI领域的重磅消息,越看越觉得,属于大模型的黄金时代真的来了! 曾经在很多人眼里,AI大模型是遥不可及的“技术天花板”,要么是实验室里的神秘黑科技,要么是大厂才玩得起的高端玩法。但如今再看…...

绿联NAS上快速部署SeaTable:从MariaDB配置到协同表格实战

绿联NAS企业级协同方案:SeaTable与MariaDB深度整合指南 在数字化办公浪潮中,高效的数据管理与团队协作成为企业核心需求。绿联NAS凭借其稳定的硬件性能和灵活的软件生态,为中小团队提供了理想的私有化部署平台。本文将带您深入探索如何在绿联…...

华硕笔记本硬件控制工具深度解析:从痛点到解决方案

华硕笔记本硬件控制工具深度解析:从痛点到解决方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址: …...

突破网盘限速壁垒:高效直链下载的全方位解决方案

突破网盘限速壁垒:高效直链下载的全方位解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广&#xff0…...

Sa-Token多体系用户登录的坑与填坑指南:从Token有效期到Session超时的完整解决方案

Sa-Token多体系用户登录的坑与填坑指南:从Token有效期到Session超时的完整解决方案 在当今复杂的应用系统中,多体系用户登录已成为标配功能。无论是电商平台区分买家与卖家,还是内容管理系统区分作者与编辑,亦或是SaaS服务区分租户…...