使用说明
Deep Research
闪电快速深度研究报告
Deep Research使用各种强大的人工智能模型,在短短几分钟内生成深入的研究报告。它利用先进的“思考”和“任务”模型,结合互联网连接,对各种主题提供快速而富有洞察力的分析。 您的隐私至关重要-所有数据都在本地处理和存储。
✨ 特征
- 快速深入研究: 在大约2分钟内生成全面的研究报告,大大加快了您的研究过程。
- 多平台支持: 支持快速部署到Vercel、Cloudflare和其他平台。
- 由AI驱动: 利用先进的人工智能模型进行准确和富有洞察力的分析。
- 注重隐私: 您的数据保持私密和安全,因为所有数据都存储在浏览器本地。
- 支持多LLM: 支持多种主流大型语言模型,包括Gemini、OpenAI、Anthropic、Deepseek、Atlas Cloud、Grok、Mistral、Azure OpenAI、任何兼容OpenAI的LLM、OpenRouter、Ollama等。
- 支持网络搜索: 支持Searxng、Tavily、Firecrawl、fastCRW、Exa、Bocha、Brave等搜索引擎,使不支持搜索的LLM更方便地使用网络搜索功能。
- 思维和任务模型: 采用复杂的“思考”和“任务”模型来平衡深度和速度,确保快速获得高质量的结果。支持转换研究模型。
- 支持进一步研究: 您可以在项目的任何阶段改进或调整研究内容,并支持从该阶段开始的重新研究。
- 本地知识库: 支持上传和处理文本、Office、PDF和其他资源文件,以生成本地知识库。
- 工件: 支持研究内容的编辑,有WYSIWYM和Markdown两种编辑模式。可以调整阅读水平、文章长度和全文翻译。
- 知识图谱: 它支持一键生成知识图,使您能够系统地了解报告内容。
- 研究历史: 支持保存研究历史,您可以随时回顾以前的研究成果,并再次进行深入研究。
- 本地服务器API支持(&S): 提供本地和服务器端API调用选项的灵活性,以满足您的需求。
- 支持SaaS和MCP: 您可以通过SSE API将该项目用作深度研究服务(SaaS),也可以通过MCP服务将其用于其他人工智能服务。
- 支持PWA: 借助Progressive Web App(PWA)技术,您可以像使用软件一样使用该项目。
- 支持多密钥有效载荷: 支持多密钥有效负载,提高API响应效率。
- 多语言支持: English, 简体中文, Español.
- 采用现代技术打造: 使用Next.js 15和Shadcn UI开发,确保现代、高性能和视觉吸引力的用户体验。
- MIT许可证: 开源,在MIT许可证下可供个人和商业使用。
🎯 路线图
- [x] 支持保存研究历史
- [x] 支持编辑最终报告和搜索结果
- [x] 支持其他LLM模型
- [x] 支持文件上传和本地知识库
- [x] 支持SSE API和MCP服务器
🚀 入门指南
使用免费Gemini(推荐)
-
获取 Gemini API密钥
-
一键部署项目,您可以选择部署到Vercel或Cloudflare
目前,该项目支持部署到Cloudflare,但您需要遵循以下步骤 如何部署到Cloudflare页面 去做。
-
开始使用
使用其他LLM
- 将项目部署到Vercel或Cloudflare
- 设置LLM API密钥
- 设置LLM API基本URL(可选)
- 开始使用
⌨️ 发展
按照以下步骤在本地浏览器上启动并运行Deep Research。
先决条件
安装
-
克隆存储库:
git clone https://github.com/u14app/deep-research.git cd deep-research -
安装依赖项:
pnpm install # or npm install or yarn install -
设置环境变量:
您需要修改文件
env.tpl到.env,或创建.env并将变量写入此文件。# For Development cp env.tpl .env.local # For Production cp env.tpl .env -
运行开发服务器:
pnpm dev # or npm run dev or yarn dev打开浏览器并访问 http://localhost:3000 访问深度研究。
自定义型号列表
该项目允许自定义模型列表,但 仅在代理模式下工作。请添加一个名为的环境变量 NEXT_PUBLIC_MODEL_LIST 在 .env 文件或环境变量页面。
自定义模型列表使用 , 以分离多个模型。如果要禁用模型,请使用 - 符号后跟型号名称,即。 -existing-model-name。要只允许指定型号可用,请使用 -all,+new-model-name.
🚢 部署
维塞尔
云耀
目前,该项目支持部署到Cloudflare,但您需要遵循以下步骤 如何部署到Cloudflare页面 去做。
码头工人
Docker版本需要是20或以上,否则会提示找不到镜像。
⚠️ 注意:在大多数情况下,docker版本会落后于最新版本1到2天,因此部署后会继续出现“更新存在”的提示,这是正常的。
docker pull xiangfa/deep-research:latest
docker run -d --name deep-research -p 3333:3000 xiangfa/deep-research
您还可以指定其他环境变量:
docker run -d --name deep-research \
-p 3333:3000 \
-e ACCESS_PASSWORD=your-password \
-e GOOGLE_GENERATIVE_AI_API_KEY=AIzaSy... \
xiangfa/deep-research
或者构建自己的docker镜像:
docker build -t deep-research .
docker run -d --name deep-research -p 3333:3000 deep-research
如果需要指定其他环境变量,请添加 -e key=value 对上述命令进行指定。
使用部署 docker-compose.yml:
version: '3.9'
services:
deep-research:
image: xiangfa/deep-research
container_name: deep-research
environment:
- ACCESS_PASSWORD=your-password
- GOOGLE_GENERATIVE_AI_API_KEY=AIzaSy...
ports:
- 3333:3000
或者构建自己的docker compose:
docker compose -f docker-compose.yml build
静态部署
您还可以直接构建静态页面版本,然后上传 out 目录指向任何支持静态页面的网站服务,如Github Page、Cloudflare、Vercel等。。
pnpm build:export
⚙️ 配置
如“入门”部分所述,Deep Research将以下环境变量用于服务器端API配置:
请参阅文件 env.tpl 对于所有可用的环境变量。
关于环境变量的重要说明:
-
隐私提醒: 这些环境变量主要用于 服务器端API调用.使用时 本地API模式,不需要API密钥或服务器端配置,进一步增强了您的隐私。
-
多键支持: 支持多个按键,每个按键之间用
,,即。key1,key2,key3. -
安全设置: 通过设置
ACCESS_PASSWORD,可以更好地保护服务器API的安全。 -
使变量有效: 添加或修改此环境变量后,请重新部署项目以使更改生效。
📄 API文档
目前,该项目支持两种形式的API:服务器事件(SSE)和模型上下文协议(MCP)。
服务器端事件API
API深度研究为启动和监控复杂的研究任务提供了实时接口。
建议通过使用API @microsoft/fetch-event-source,要获得最终报告,你需要听 message 事件,数据将以文本流的形式返回。
POST 方法
端点: /api/sse
方法: POST
主体:
interface SSEConfig {
// Research topic
query: string;
// AI provider, Possible values include: google, openai, anthropic, deepseek, atlascloud, xai, mistral, azure, openrouter, openaicompatible, pollinations, ollama
provider: string;
// Thinking model id
thinkingModel: string;
// Task model id
taskModel: string;
// Search provider, Possible values include: model, tavily, firecrawl, crw, exa, bocha, searxng
searchProvider: string;
// Response Language, also affects the search language. (optional)
language?: string;
// Maximum number of search results. Default, `5` (optional)
maxResult?: number;
// Whether to include content-related images in the final report. Default, `true`. (optional)
enableCitationImage?: boolean;
// Whether to include citation links in search results and final reports. Default, `true`. (optional)
enableReferences?: boolean;
}
标题:
interface Headers {
"Content-Type": "application/json";
// If you set an access password
// Authorization: "Bearer YOUR_ACCESS_PASSWORD";
}
查看详情 API文档.
GET方法
这是一个有趣的实现。您可以直接通过URL观看深度研究的整个过程,就像观看视频一样。
您可以通过以下链接访问深度研究报告:
http://localhost:3000/api/sse/live?query=AI+trends+for+this+year&provider=pollinations&thinkingModel=openai&taskModel=openai-fast&searchProvider=searxng
查询参数:
// The parameters are the same as POST parameters
interface QueryParams extends SSEConfig {
// If you set the `ACCESS_PASSWORD` environment variable, this parameter is required
password?: string;
}
模型上下文协议(MCP)服务器
目前支持 StreamableHTTP 和 SSE 服务器传输。
StreamableHTTP服务器端点: /api/mcp,运输类型: streamable-http
SSE服务器终结点: /api/mcp/sse,运输类型: sse
{
"mcpServers": {
"deep-research": {
"url": "http://127.0.0.1:3000/api/mcp",
"transportType": "streamable-http",
"timeout": 600
}
}
}
注: 由于深入研究需要很长时间才能执行,因此您需要设置更长的超时时间以避免中断研究。
如果您的服务器设置 ACCESS_PASSWORD,MCP服务将受到保护,您需要添加其他标头参数:
{
"mcpServers": {
"deep-research": {
"url": "http://127.0.0.1:3000/api/mcp",
"transportType": "streamable-http",
"timeout": 600,
"headers": {
"Authorization": "Bearer YOUR_ACCESS_PASSWORD"
}
}
}
}
启用MCP服务需要设置全局环境变量:
# MCP Server AI provider
# Possible values include: google, openai, anthropic, deepseek, atlascloud, xai, mistral, azure, openrouter, openaicompatible, pollinations, ollama
MCP_AI_PROVIDER=google
# MCP Server search provider. Default, `model`
# Possible values include: model, tavily, firecrawl, crw, exa, bocha, searxng
MCP_SEARCH_PROVIDER=tavily
# MCP Server thinking model id, the core model used in deep research.
MCP_THINKING_MODEL=gemini-2.0-flash-thinking-exp
# MCP Server task model id, used for secondary tasks, high output models are recommended.
MCP_TASK_MODEL=gemini-2.0-flash-exp
注: 为确保MCP服务能够正常使用,您需要设置相应模型和搜索引擎的环境变量。具体环境变量参数请参考 env.tpl.
🪄 运作原理
-
研究课题
- 输入研究主题
- 使用当地研究资源(可选)
- 开始思考(或重新思考)
-
提出你的想法
- 系统会提问
- 回答系统问题(可选)
- 撰写研究计划(或重写研究计划)
- 系统输出研究计划
- 开始深入研究(或重新研究)
- 系统生成SERP查询
- 系统会提问
-
信息收集
- 初步研究
- 基于SERP查询检索本地研究资源
- 基于SERP查询从互联网收集信息
- 深入研究(这个过程可以重复)
- 提出研究建议(可选)
- 开始新一轮的信息收集(过程与初步研究相同)
- 初步研究
-
生成最终报告
- 提出书面请求(可选)
- 将所有研究材料总结成一份全面的Markdown报告
- 重新生成研究报告(可选)
flowchart TB
A[Research Topic]:::start
subgraph Propose[Propose your ideas]
B1[System asks questions]:::process
B2[System outputs the research plan]:::process
B3[System generates SERP queries]:::process
B1 --> B2
B2 --> B3
end
subgraph Collect[Information collection]
C1[Initial research]:::collection
C1a[Retrieve local research resources based on SERP queries]:::collection
C1b[Collect information from the Internet based on SERP queries]:::collection
C2[In-depth research]:::recursive
Refine{More in-depth research needed?}:::decision
C1 --> C1a
C1 --> C1b
C1a --> C2
C1b --> C2
C2 --> Refine
Refine -->|Yes| C2
end
Report[Generate Final Report]:::output
A --> Propose
B3 --> C1
%% Connect the exit from the loop/subgraph to the final report
Refine -->|No| Report
%% Styling
classDef start fill:#7bed9f,stroke:#2ed573,color:black
classDef process fill:#70a1ff,stroke:#1e90ff,color:black
classDef recursive fill:#ffa502,stroke:#ff7f50,color:black
classDef output fill:#ff4757,stroke:#ff6b81,color:black
classDef collection fill:#a8e6cf,stroke:#3b7a57,color:black
classDef decision fill:#c8d6e5,stroke:#8395a7,color:black
class A start
class B1,B2,B3 process
class C1,C1a,C1b collection
class C2 recursive
class Refine decision
class Report output
🙋 常见问题
为什么我的Ollama或SearXNG不能正常工作并显示错误 TypeError: Failed to fetch?
如果您的请求生成 CORS 由于浏览器安全限制,您需要为Ollama或SearXNG配置参数以允许跨域请求。您还可以考虑使用服务器代理模式,这是一种发出请求的后端服务器,可以有效地避免跨域问题。
🛡️ 隐私
Deep Research的设计考虑到了您的隐私。 所有研究数据和生成的报告都存储在您的计算机上。 我们不会收集您的任何研究数据或将其传输到外部服务器(除非您明确使用服务器端API调用,在这种情况下,数据通过您配置的代理发送到API(如果有))。您的隐私是我们的首要任务。
🙏 致谢
- Next.js -用于构建高性能web应用程序的React框架。
- Shadcn用户界面 -设计精美的组件,有助于简化UI开发。
- AI SDK -增强Deep research的智能研究能力。
- 深入研究 -多亏了这个项目
dzhng/deep-research为了获得灵感。
🤝 贡献
我们欢迎对Deep Research的贡献!如果您有改进、错误修复或新功能的想法,请随时:
- 分叉存储库。
- 为您的功能或错误修复创建一个新分支。
- 进行更改并提交。
- 提交拉取请求。
对于重大更改,请先打开一个问题来讨论您提出的更改。
✉️ 联系
如果您有任何问题、建议或反馈,请创建一个新的 问题.
📝 许可证
Deep Research发布于 MIT许可证。本许可证允许出于商业和非商业目的免费使用、修改和分发。