10.6k Star!GPT Researcher:尖端AI搜索的深入研究者,告别偏见或破碎的信息、API集成进业务!
Aitrainee | 公众号:AI进修生
🌟GPT研究员是一个开源AI智能体代理,专门进行各种任务的全面综合在线研究和设计,可确保卓越的性能、稳定性和闪电般的研究结果、API接口无缝集成进应用。
在这个数字化的时代,迅速获取可靠信息比以往更加重要。不幸的是,现有的搜索引擎往往无法直接提供清晰、客观的答案,用户不得不在多个网站间反复点击、搜索。
对此,GPT Researcher出现了,这是一个用于加速在线研究的开源自主代理。以前我们介绍过AutoGPT,但是它常常因为需要手动干预而陷入无尽的循环,效率低下,信息跟踪也容易丢失,有时甚至出现错误信息。
此外,AutoGPT是同步执行的,它创建一个任务列表然后逐个执行,这意味着如果一个研究任务需要访问20个网站,每个站点耗时一分钟,整个任务至少需要20分钟。相比之下,GPT Researcher作为自主代理,可以同时抓取、过滤和整合来自20多个网络资源的信息,大大提升了研究效率并确保了信息的全面性和准确性。
GPT Researcher通过使用Python中的asyncio库,能够并行处理任务,显著提高研究速度。以下是一个示例代码:
tasks = [async_browse(url, query, self.websocket) for url in await new_search_urls]
responses = await asyncio.gather(*tasks, return_exceptions=True)
在这个示例中,通过同时启动所有URL的查询,只有当所有任务完成后才会继续。官方测试显示,使用GPT Researcher的研究任务通常只需三分钟,比AutoGPT快85%。
这里推荐油管博主echohive的教程(GPT 研究员浏览科学文献):
此外,如果你有兴趣构建自己的可访问互联网的LLM助手,可以参考这篇教程:
如何构建一个可以访问互联网的OpenAI助手:https://docs.tavily.com/blog/building-openai-assistant
我们继续深入讲讲GPT Researcher:
为什么选择 GPT 研究员?
功能
📝 生成研究、大纲、资源和经验教训报告
📜 可以生成长而详细的研究报告(超过2K字)
🌐 每项研究汇总 20 多个网络资源,形成客观、事实的结论
🖥️ 包括易于使用的 Web 界面 (HTML/CSS/JS)
🔍 通过 JavaScript 支持抓取网络资源
📂 跟踪访问和使用的网络资源的跟踪和上下文
📄 将研究报告导出为 PDF、Word 等...
架构
主要思想是运行“计划者”和“执行者”代理,计划者生成研究问题,执行代理根据每个生成的研究问题寻找最相关的信息。最后,规划者过滤并汇总所有相关信息并创建研究报告。代理利用 gpt3.5-turbo 和 gpt-4-turbo(128K 上下文)来完成研究任务。
我曾写过免费获取API相关文章,你可以利用它们:
利用免登录 ChatGPT Web 提供的无限制免费GPT-3.5-Turbo API 服务
研究任务平均需要大约 3 分钟才能完成,成本约为 0.1 美元。
▲ GPT Researcher架构
进一步来说:
根据研究查询或任务创建特定于领域的代理。
生成一组研究问题,这些问题共同形成对任何给定任务的客观意见。
对于每个研究问题,触发一个爬虫代理来抓取在线资源以获取与给定任务相关的信息。
对于每个抓取的资源,根据相关信息进行汇总并跟踪其来源。
最后,过滤和汇总所有汇总来源并生成最终研究报告。
架构说完后,我们继续看看官方文档的一些有用介绍:
支持本地文档以及网络链接研究
作为独立Agent集成
GPT Researcher 可以作为独立Agnet导包集成进自己的项目中
API接口无缝集成进应用
官方最近更新了pip包,也就就是说你可以直接下载该库,直接集成到自己产品中去开发。哈哈,调包总是令人快乐~
以下是安装 GPT Researcher 的步骤:
1. 先决条件:
• 确保您的计算机上安装了 Python 3.10+ 💻
2. 安装 gpt-researcher:
• 从 PyPi 获取官方包。
pip install gpt-researcher
3. 设置环境变量:
• 使用 OpenAI API 密钥创建
.env
文件或直接将其导出。export OPENAI_API_KEY={Your OpenAI API Key here}
export TAVILY_API_KEY={Your Tavily API Key here}
4. 开始在您自己的代码库中使用 GPT Researcher
用法示例📝:
from gpt_researcher import GPTResearcher
import asyncio
async def get_report(query: str, report_type: str) -> str:
researcher = GPTResearcher(query, report_type)
research_result = await researcher.conduct_research()
report = await researcher.write_report()
return report
if __name__ == "__main__":
query = "what team may win the NBA finals?"
report_type = "research_report"
report = asyncio.run(get_report(query, report_type))
print(report)
具体例子🌐:
• 示例 1:研究报告📚
query = "Latest developments in renewable energy technologies"
report_type = "research_report"• 示例 2:资源报告📋
query = "List of top AI conferences in 2023"
report_type = "resource_report"• 示例 3:报告大纲📝
query = "Outline for an article on the impact of AI in education"
report_type = "outline_report"
与 Web 框架集成🌍:
FastAPI示例:
from fastapi import FastAPI
from gpt_researcher import GPTResearcher
import asyncio
app = FastAPI()
@app.get("/report/{report_type}")
async def get_report(query: str, report_type: str) -> dict:
researcher = GPTResearcher(query, report_type)
research_result = await researcher.conduct_research()
report = await researcher.write_report()
return {"report": report}
Flask 示例:
先决条件:安装带有 async extra 的 Flask。
pip install 'flask[async]'
from flask import Flask, request
from gpt_researcher import GPTResearcher
app = Flask(__name__)
@app.route('/report/<report_type>', methods=['GET'])
async def get_report(report_type):
query = request.args.get('query')
researcher = GPTResearcher(query, report_type)
research_result = await researcher.conduct_research()
report = await researcher.write_report()
return report
运行服务器:
Flask:
flask run
FastAPI:
uvicorn main:app --reload
请求示例:
curl -X GET "http://localhost:5000/report/research_report?query=what team may win the nba finals?"
注意:上述代码片段仅为示例。您可以根据自己的要求进行自定义。
下面提供GPT Researcher官方的文档介绍、相关资源、部署教程等,进一步支撑你的行动,以提升本文的帮助力。
快速开始
步骤 0 - 安装 Python 3.11 或更高版本。参见此处 获取详细指南。
步骤 1 - 下载项目
$ git clone https://github.com/assafelovic/gpt-researcher.git
$ cd gpt-researcher
步骤2 -安装依赖项
$ pip install -r requirements.txt
第 3 步 - 使用 OpenAI 密钥和 Tavily API 密钥创建 .env 文件,或直接导出该文件
$ export OPENAI_API_KEY={Your OpenAI API Key here}
$ export TAVILY_API_KEY={Your Tavily API Key here}
• LLM,我们推荐使用 OpenAI GPT,但您也可以使用 Langchain Adapter 支持的任何其他 LLM 模型(包括开源),只需在 config/config.py 中更改 llm 模型和提供者即可。请按照 这份指南 学习如何将 LLM 与 Langchain 集成。
• 对于搜索引擎,我们推荐使用 Tavily Search API(已针对 LLM 进行优化),但您也可以选择其他搜索引擎,只需将 config/config.py 中的搜索提供程序更改为 "duckduckgo"、"googleAPI"、"googleSerp "或 "searx "即可。然后在 config.py 文件中添加相应的 env API 密钥。
• 我们强烈建议使用 OpenAI GPT 模型和 Tavily Search API 以获得最佳性能。
第 4 步 - 使用 FastAPI 运行代理
$ uvicorn main:app --reload
第 5 步 - 在任何浏览器上访问 http://localhost:8000,享受研究乐趣!
参考链接:
[1]https://github.com/assafelovic/gpt-researcher
[2]https://docs.tavily.com/docs/gpt-researcher/getting-started
知音难求,自我修炼亦艰
抓住前沿技术的机遇,与我们一起成为创新的超级个体
(把握AIGC时代的个人力量)
— 完 —
点这里👇关注我,记得标星哦~
一键三连「分享」、「点赞」和「在看」
科技前沿进展日日相见 ~