WebThinker 是一个开源项目,旨在增强大型推理模型(LRMs)的自主研究能力。它允许模型在推理过程中独立进行网页搜索、导航和信息提取,最终生成详细的报告。项目由中国人民大学信息检索与自然语言处理实验室(RUC-NLPIR)开发,基于 QwQ-32B 推理模型和 Qwen-32B-Instruct 辅助模型。WebThinker 突破了传统检索增强生成(RAG)的限制,模型可以直接执行搜索和导航操作,实现端到端的任务处理。它在知识密集型复杂推理任务(如 GPQA、GAIA、WebWalkerQA、HLE)和开放式报告生成任务中表现出色,显著降低研究者的信息收集时间和成本。项目采用 MIT 许可证,代码和文档公开在 GitHub 上,适合研究人员和开发者使用。
功能列表
- 自主网页搜索:模型可根据任务需求,自动发起搜索并提取相关信息。
- 深度网页导航:支持点击链接或按钮,深入探索网页内容。
- 报告自动生成:边搜索边撰写报告,生成结构化、定制化的内容。
- 报告编辑与检查:提供工具检查和修改报告,确保内容准确和连贯。
- 支持多种推理模式:通过脚本运行不同任务模式,适应多样化需求。
- 集成 Crawl4AI 解析:优化 JavaScript 渲染网页的提取效果。
- 开源与可扩展:代码开放,允许用户自定义模型和功能。
使用帮助
安装流程
要使用 WebThinker,用户需按照以下步骤配置环境和运行项目。以下是详细的安装和使用指南,确保用户能快速上手。
1. 创建并激活 Conda 环境
WebThinker 依赖 Python 3.9 环境,推荐使用 Conda 管理。运行以下命令创建并激活环境:
conda create -n webthinker python=3.9
conda activate webthinker
这会创建一个名为 webthinker
的虚拟环境,确保依赖隔离。
2. 克隆项目并安装依赖
从 GitHub 克隆 WebThinker 仓库,并安装必要的 Python 包:
git clone https://github.com/RUC-NLPIR/WebThinker.git
cd WebThinker-main
pip install -r requirements.txt
requirements.txt
包含项目所需的所有依赖包,如 vLLM 和 Crawl4AI。确保网络连接稳定,以完成安装。
3. 配置推理模型与辅助模型
WebThinker 需要一个推理模型和一个辅助模型。官方推荐使用 QwQ-32B 作为推理模型,Qwen-32B-Instruct 作为辅助模型,分别用于核心推理和网页阅读、报告撰写等任务。用户需通过 vLLM 部署这些模型。运行前,需确保模型已下载并在本地或服务器上启动。具体部署步骤可参考官方文档(链接在 GitHub 仓库的 README 中)。
4. 设置网页解析客户端
为提升网页爬取效果,建议在 <WebThinker-main>/scripts/search/bing_search.py
中配置 Crawl4AI 客户端。Crawl4AI 能处理 JavaScript 渲染的动态网页内容,提高信息提取的可靠性。用户需注册 Crawl4AI 服务并获取 API 密钥,然后按文档说明配置。
5. 运行 WebThinker
完成上述配置后,用户可通过提供的脚本运行不同推理模式。例如:
python scripts/run_inference.py --mode report_generation
此命令启动报告生成模式。其他模式(如复杂推理任务)可在脚本中指定。运行前,请确保模型服务已启动。
主要功能操作
WebThinker 的核心在于自主搜索和报告生成。以下是主要功能的详细操作流程:
自主网页搜索
用户输入研究问题后,WebThinker 会自动调用搜索工具(如 Bing 搜索)获取相关网页。模型分析初始搜索结果,提取关键词,并决定是否需要进一步搜索。例如,若用户询问“最新 AI 研究趋势”,WebThinker 会搜索相关学术文章和新闻,筛选高质量内容。
深度网页导航
WebThinker 的 Deep Web Explorer 模块允许模型点击网页中的链接或按钮,深入挖掘信息。例如,在访问学术网站时,模型可点击“下一页”或“下载 PDF”按钮,获取更详细的数据。用户无需手动干预,模型会自动判断哪些链接最相关。
报告生成与编辑
WebThinker 提供三项报告相关工具:
- 章节内容撰写:模型根据搜索结果,自动生成报告的特定章节,如“背景介绍”或“数据分析”。用户可指定报告结构,模型会按需填充内容。
- 报告检查:模型会检查报告的逻辑性和完整性,标记缺失信息或不一致部分。
- 报告编辑:用户可通过脚本调用编辑功能,调整报告内容。例如,运行:
python scripts/edit_report.py --report_path ./outputs/report.txt
此命令允许模型优化指定报告的措辞和结构。
使用 Crawl4AI 优化爬取
在动态网页(如包含 JavaScript 的新闻页面)上,Crawl4AI 能解析复杂内容。用户需在 bing_search.py
中配置 API 密钥,并确保网络连接。配置完成后,模型会自动调用 Crawl4AI 提取网页文本、图片或其他元素。
注意事项
- 硬件要求:运行大型模型如 QwQ-32B 需高性能 GPU(如 NVIDIA A100)。确保硬件支持 vLLM 推理。
- 网络环境:搜索和爬取功能需稳定网络。建议使用代理或 VPN 处理可能的地缘限制。
- 模型选择:用户可尝试其他指令微调模型(如 LLaMA)作为辅助模型,但需确保兼容性。
- 输出查看:生成的报告保存在
<WebThinker-main>/outputs/
目录下,包含与 Grok3 DeepSearch 和 Gemini 2.0 Deep Research 的对比报告。
通过以上步骤,用户可轻松部署 WebThinker 并使用其搜索与报告生成功能。项目文档详细,适合有一定技术背景的用户。
应用场景
- 学术研究
研究人员需快速收集某一领域的最新进展。WebThinker 可自动搜索学术论文、新闻和博客,生成包含引文和分析的报告。例如,输入“量子计算最新进展”,模型会搜索 arXiv 和 Google Scholar,整理出结构化报告。 - 市场分析
企业分析师需了解竞争对手动态。WebThinker 可搜索行业新闻、公司官网和社交媒体,生成市场趋势报告,节省手动收集时间。 - 技术开发
开发者需研究新技术文档。WebThinker 可导航技术博客和 GitHub 仓库,提取关键信息并生成技术总结,助力项目开发。
QA
- WebThinker 支持哪些模型?
官方推荐 QwQ-32B(推理模型)和 Qwen-32B-Instruct(辅助模型)。用户可尝试其他指令微调模型,但需确保 vLLM 兼容。 - 如何处理动态网页内容?
配置 Crawl4AI 客户端,编辑<WebThinker-main>/scripts/search/bing_search.py
,添加 API 密钥。Crawl4AI 可解析 JavaScript 渲染内容。 - 报告生成需要多长时间?
取决于任务复杂度和网络速度。简单报告约需 5-10 分钟,复杂任务可能需 30 分钟以上。 - 是否需要编程经验?
部署 WebThinker 需基础 Python 和 Conda 知识。使用预配置脚本的操作较为简单,适合初学者。