|
Deep Research是什么? Deep Research技术主要是用于生成全面的报告。对于以往可能需要花费数天或者数周的时间,进行信息检索、搜集、理解、加工,并最终撰写报告的研究或分析领域,使用大模型的Deep Research技术可能在十几分钟就能得到结果。 在这个领域,会去掉对大模型执行时间的限制,允许大模型花十几分钟或更多的时间来进行充分的信息搜集和报告撰写。 使用体验 我尝试了豆包的深入研究功能,让它帮我生成关于Deep Research的研究报告。它先是跟我确认了几个细节,然后开始在网上搜集资料并分析,最后撰写报告。 可以在下面的链接,查看完整的对话: https://www.doubao.com/thread/w05cd8672d15ad043 可以在这里看到它的工作过程,包括搜集资料、分析、根据已经掌握的资料动态调整下一步要搜集的内容。最后它会先撰写一份markdown格式的报告,再撰写一份更加美观的html格式的报告,两份报告都可以直接下载。 我曾将豆包的深入研究功能用于我的工作当中,尤其是在一个陌生的领域,起到了一个快速带我入门的效果。 除了豆包之外,我还试图尝试ChatGPT的Deep Research功能,免费用户每个月可以使用5次,但是我没有真正触发它去做Deep Research,它只是基于已经掌握的知识来生成报告。 相关开源产品 考虑到我们在工作当中确实有研究&分析的场景,尤其可能需要结合私有化数据,所以也去进一步探索了相关的开源实现,打算进行本地化部署。 做这个事情的一般前提是对数据隐私和数据安全的要求,所以一定需要有本地化的大模型服务。如果是对完全公开的内容做研究和分析,其实直接使用类似于豆包的深入研究就可以了。 目前,我已经观察到的开源项目如下: khoj-ai/khoj30.5k AGPL-3.0 license 商业不友好
https://github.com/khoj-ai/khoj assafelovic/gpt-researcher22.3kApache-2.0 license商业友好
https://github.com/assafelovic/gpt-researcher dzhng/deep-research17kMIT license商业友好 https://github.com/dzhng/deep-research bytedance/deer-flow15.2kMIT license 商业友好 https://github.com/bytedance/deer-flow nickscamara/open-deep-research 5.8k https://github.com/nickscamara/open-deep-research jina-ai/node-DeepResearch 4.6k https://github.com/jina-ai/node-DeepResearch langchain-ai/open_deep_research 4.3k https://github.com/langchain-ai/open_deep_research
根据热度和商业友好度进行排序,锁定我将进一步研究的对象是gpt-researcher。 GPT Researcher的本地化部署 github项目的README文件,简要介绍了部署的过程,支持多种部署方式。我尝试的是基于源码进行的部署,方便修改相关配置。启动服务之后直接在浏览器访问。 根据README文件,我们也可以直接使用pip安装gpt-researcher,当作sdk来使用。如果后面做系统集成,sdk是更好的方式。 上图显示的是这次部署过程对gpt researcher的简单分析。适配本地化环境主要靠修改2个配置文件来完成,一个是.env文件,用来配置API KEY、API BASE等变量。default.py文件,用来配置使用的模型、报告的语言、本地文档、MCP等内容。 上图中点亮的区域是本次实验涉及的内容,即,本次部署只是给gpt researcher接上了本地模型,并没有激活web检索器、本地文档、MCP的部分。后面会逐步尝试。 env文件的内容: OPENAI_API_KEY=local-llm-key-xxxxxxOPENAI_API_BASE=https://local-llm-base/v1 default文件修改的内容: DEFAULT_CONFIG:BaseConfig={"EMBEDDING":"openai:embedding-model","FAST_LLM":"openai:llm-model","SMART_LLM":"openai:llm-model",#Hassupportforlongresponses(2k+words)."STRATEGIC_LLM":"openai:llm-model",#Canbeusedwitho1oro3,pleasenoteitwillmaketasksslower."LANGUAGE":"chinese","EMBEDDING_KWARGS":{'tiktoken_enabled':False,'tiktoken_model_name':'D:/Models/embedding-model'},}模型字符串主要分为2个部分,冒号前面的是提供者,冒号后面的是模型名称。底层使用了langchain连接大模型,不同的provider对应到不同的langchain不同的依赖。 EMBEDDING_KWARGS的配置是为了让OpenAIEmbeddings模型使用本地的tiktoken model。对应这样的修改,还需要额外安装一下transformers包。 修改完上面的配置,就可以README文件中提供的命令启动服务了。虽然没有激活检索功能,但是依然可以生成报告。 小trick:将.env文件内容注册为环境变量 之前我为了研究如何连接本地大模型,关注到了.env文件,但是一直没有在代码中看到哪里加载的。后来发现它是在main.py文件中,通过下面这两行实现的。效果就是默认将.env文件中的内容加载为环境变量。 fromdotenvimportload_dotenv#line1...load_dotenv()#line29
|