深度研究助手全解析:Open Deep Research与Firecrawl实战指南

288 阅读8分钟

引言:深度研究助手的崛起

不久前,OpenAI推出的Deep Research深度研究助手功能引起了广泛关注。该功能基于OpenAI最新的推理模型o3-mini和强大的信息获取引擎,能够深入挖掘网络信息并生成高质量的研究报告,为用户提供类似于"迷你研究团队"的体验。然而,Deep Research目前仅向ChatGPT Pro用户开放,而这需要高达200美元/月的订阅费用,这对许多用户来说是一项不小的开销。

为了解决这一问题,活跃的开源社区推出了一系列功能强大且成本更低的替代方案,这里统称为"Open Deep Research"。这些工具一般都是通过结合搜索引擎查询、网页抓取和大语言模型(LLM),为用户提供了类似Deep Research的能力,同时保持了开源工具的灵活性和透明度。本文此次介绍的这款Deep Research项目,则是由 Aomni(aomni.com)的CEO David Zhang开源的GitHub万星项目。该项目也是默认使用o3-mini作为核心LLM,同时使用Firecrawl作为信息搜索和抓取的工具。本文将详细介绍这款Deep Research的功能、使用方法,以及Firecrawl在其中扮演的重要角色。

深入研究的重要性与价值

Deep Research的核心价值在于其能够模拟人类研究员的深度探索过程。相比传统的AI聊天工具,Deep Research通过多步骤推理和深入阅读,能够从多种来源(如网页、PDF、图片等)中收集数据,并生成引用明确、结构清晰的综合报告。这种能力对于需要高准确性或数据验证的场景尤为重要。

Open Deep Research作为一种开源工具,通过结合搜索引擎查询、网页抓取和大语言模型(LLM),实现了类似的深度研究功能。其主要特点一般包括:

  • 迭代式研究:生成相关的搜索查询,处理结果,并根据新发现进一步深入探索。
  • 深度与广度控制:用户可以自定义研究的深度和广度,以满足不同的研究需求。
  • 引用与参考:生成的报告中包含所有数据来源,便于用户验证信息的可靠性。
  • API驱动:比如通过OpenAI和Firecrawl API,用户仅需为实际使用的部分付费。

这一工具不仅降低了使用门槛,还赋予用户对研究过程的透明性和控制权,是学术研究、市场分析和商业决策的有力助手。

Open Deep Research详解:功能与使用方法

功能全面概览

本文介绍的这款Open Deep Research项目地址为:github.com/dzhng/deep-…

该Open Deep Research的核心流程包括以下几个步骤:

  1. 智能查询生成:根据用户的研究目标和初始问题,生成多种精准搜索查询。
  2. 搜索结果深度处理:分析搜索结果,提取关键信息和研究方向。
  3. 递归探索机制:根据新的研究方向进一步挖掘信息,直到达到设定的研究深度。
  4. 结构化报告生成:将所有发现汇总为结构化的Markdown报告,包含完整的引用和参考。

下面是该项目的研究流程图,可以看到用户除了一般的查询输入,还可以指定研究的深度和宽度:

Deep Research工作流程图

详细安装与配置指南

使用这款Open Deep Research也非常简单,只需以下几步即可开始:

  1. 克隆仓库并安装依赖:

    git clone https://github.com/dzhng/deep-research.git
    cd deep-research
    npm install
    
  2. 配置API密钥,在项目根目录建立.env.local文件:

    在文件中添加以下内容:

    FIRECRAWL_KEY="your_firecrawl_key"
    OPENAI_KEY="your_openai_key"
    
  3. 启动应用:

    npm start
    

关键使用提示与注意事项

这里有个小坑,我尝试的时候,发现o3-mini无法调用,研究发现是因为目前o3-mini的API调用需要至少Tier3的额度才行(如下图所示),如果不是经常使用OpenAI API的用户,目前就无法直接使用o3-mini了。

OpenAI API额度要求

不过,该项目理论上支持任何兼容OpenAI SDK的调用方式,所以我就改用OpenRouter的API作为中转,成功调用o3-mini,具体就是在.env.local文件中按如下配置就可以:

FIRECRAWL_KEY="your_firecrawl_key"
OPENAI_KEY="your_openrouter_key"
OPENAI_ENDPOINT="https://openrouter.ai/api/v1"
OPENAI_MODEL="openai/o3-mini"

详细使用步骤与操作流程

启动应用后,系统会提示用户输入以下信息:

  1. 研究问题(明确具体的研究主题)。
  2. 研究广度(推荐范围:2–10,默认值为4)。
  3. 研究深度(推荐范围:1–5,默认值为2)。
  4. 回答后续问题以进一步优化研究方向。

系统会依次执行以下步骤:

  1. 生成并执行搜索查询。
  2. 处理和分析搜索结果。
  3. 根据新发现递归探索更深层次的信息。
  4. 生成一份包含完整引用的Markdown格式综合报告,保存在工作目录的output.md文件中。

Firecrawl技术解析:Deep Research的信息获取引擎

o3-mini这样的LLM,主要是用来综合处理并输出信息的,所以另一个重要角色就是Firecrawl这样的信息抓取工具。Firecrawl是一种强大的数据抓取和处理工具,能够将网站内容转化为适合LLM处理的Markdown或结构化数据。

Firecrawl的核心功能与技术优势

  • 高效网页抓取:支持从单个页面或整个网站抓取内容,生成Markdown、HTML等格式。
  • 智能网站爬取:自动抓取所有可访问的子页面,无需提供站点地图。
  • 精准数据提取:根据用户定义的模式或提示,从网页中提取结构化数据。
  • 强大可靠性:能够处理复杂动态内容和反爬机制。
  • 高度灵活性:支持自定义抓取参数,如最大抓取深度、文件格式等。
  • 并行处理效率:支持批量抓取和并行处理,大幅提升数据获取效率。

Firecrawl Search服务详解

此外,这个项目还使用了Firecrawl独特的Search服务,这个服务将搜索引擎结果与抓取功能结合,能够直接根据用户的查询进行搜索并返回完整的网页内容,所以就不需要额外的搜索引擎了,能让代码也变得相对简单。下面是Search服务的简单Python示例,可以看到,对搜索也能做一些简单的定制,比如语言,国家,地区等。虽然没有专业搜索引擎那么复杂,不过处理小规模搜索应用也算足够。

import requests

url = "https://api.firecrawl.dev/v1/search"

payload = {
    "query": "<string>",
    "limit": 5,
    "tbs": "<string>",
    "lang": "en",
    "country": "us",
    "location": "<string>",
    "timeout": 60000,
    "scrapeOptions": {}
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)

实测案例分析:BYD与Tesla对比研究

作为实测,我输入的研究问题是:"比较BYD和Tesla这两家企业",系统会先生成三个让我回答的问题,用来确认研究的方向,然后就会自动生成相关搜索查询,解析搜索结果,提出待澄清性问题,根据迭代次数设定进行深入研究,并最终生成一份全面的研究报告,并列出全部的参考信息链接。

整份报告我设置的深度为3,宽度为3,Firecrawl一共搜索和爬取了60个网页,花费0.38美金,o3-mini处理信息并生成报告花费了0.588美金,合起来差不多要1美金,不到5分钟的时间。难怪OpenAI只给Pro用户开放这个功能,这么用有点烧钱,一个Plus用户每天用一次研究,就超额了!

生成的报告质量如何呢?我觉得还可以,不过暂时还没有特别客观的Benchmark,只能作为参考分享给大家。具体报告篇幅很长,这里就不复制粘贴了,原始版本还是英文的,我就用gpt-4o翻译了一下,中英文两个版本我都会放在公众号文章里,方便大家理解和对比。

结论与未来展望

推理模型与Firecrawl的结合,提供了一种务实且经济的深度研究解决方案。借助迭代式研究模型和精准的数据抓取能力,这一开源方案能够在较短时间内生成高质量的研究报告,同时有效规避了每月200美元订阅服务的支出。在学术研究、市场分析和技术探索等领域,该组合展现了不错的实用价值,并为用户提供了一个切实可行的替代选择。

未来,随着更多开源模型的发展和数据抓取技术的进步,我们可以期待这类工具在性能和成本效益上的进一步提升,为更广泛的用户群体提供专业级的研究能力。