闪电般快速的深度研究报告
深度研究使用多种强大的人工智能模型,在几分钟内生成深入的研究报告。它利用先进的“思考”和“任务”模型,结合互联网连接,提供对各种主题的快速而深刻的分析。您的隐私至关重要——所有数据都在本地处理和存储。
一键部署项目,可以选择部署到 Vercel 或 Cloudflare
目前该项目支持部署到 Cloudflare,但您需要按照 如何部署到 Cloudflare 页面 来操作。
开始使用
遵循以下步骤在本地浏览器中运行 Deep Research。
克隆仓库:
git clone https://github.com/u14app/deep-research.git
cd deep-research
安装依赖项:
pnpm install # 或 npm install 或 yarn install
设置环境变量:
您需要将文件 env.tpl 修改为 .env,或创建一个 .env 文件并将变量写入此文件。
# 用于开发
cp env.tpl .env.local
# 用于生产
cp env.tpl .env
运行开发服务器:
pnpm dev # 或 npm run dev 或 yarn dev
打开浏览器访问 http://localhost:3000 即可访问 Deep Research。
该项目允许自定义模型列表,但仅在代理模式下工作。请在 .env 文件或环境变量页面中添加名为 NEXT_PUBLIC_MODEL_LIST 的环境变量。
自定义模型列表使用 , 分隔多个模型。如果您想禁用某个模型,请使用 - 符号后跟模型名称,例如 -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 中的所有可用环境变量。
关于环境变量的重要说明:
, 分隔,例如 key1,key2,key3。ACCESS_PASSWORD,您可以更好地保护服务器 API 的安全性。目前该项目支持两种形式的 API:服务器发送事件(SSE)和模型上下文协议(MCP)。
Deep Research API 提供了一个实时接口,用于启动和监控复杂的科研任务。
建议通过 @microsoft/fetch-event-source 使用 API,要获取最终报告,您需要监听 message 事件,数据将以文本流的形式返回。
端点:/api/sse
方法:POST
请求体:
interface SSEConfig {
// 研究主题
query: string;
// AI 提供商,可能值包括:google, openai, anthropic, deepseek, xai, mistral, azure, openrouter, openaicompatible, pollinations, ollama
provider: string;
// 思考模型 ID
thinkingModel: string;
// 任务模型 ID
taskModel: string;
// 搜索提供商,可能值包括:model, tavily, firecrawl, exa, bocha, searxng
searchProvider: string;
// 响应语言,也会影响搜索语言。(可选)
language?: string;
// 最大搜索结果数,默认值为 `5`(可选)
maxResult?: number;
// 是否在最终报告中包含相关内容的图片,默认值为 `true`(可选)
enableCitationImage?: boolean;
// 是否在搜索结果和最终报告中包含引用链接,默认值为 `true`(可选)
enableReferences?: boolean;
}
头部:
interface Headers {
"Content-Type": "application/json";
// 如果设置了访问密码
// Authorization: "Bearer YOUR_ACCESS_PASSWORD";
}
详见详细的 API 文档。
这是一个有趣的实现。您可以通过 URL 直接观看整个深度研究的过程,就像观看视频一样。
您可以通过以下链接访问深度研究报告:
http://localhost:3000/api/sse/live?query=AI+trends+for+this+year&provider=pollinations&thinkingModel=openai&taskModel=openai-fast&searchProvider=searxng
查询参数:
// 参数与 POST 参数相同
interface QueryParams extends SSEConfig {
// 如果设置了 `ACCESS_PASSWORD` 环境变量,则此参数是必需的
password?: string;
}
目前支持 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 服务器 AI 提供商
# 可能值包括:google, openai, anthropic, deepseek, xai, mistral, azure, openrouter, openaicompatible, pollinations, ollama
MCP_AI_PROVIDER=google
# MCP 服务器搜索提供商,默认值为 `model`
# 可能值包括:model, tavily, firecrawl, exa, bocha, searxng
MCP_SEARCH_PROVIDER=tavily
# MCP 服务器思考模型 ID,深度研究的核心模型。
MCP_THINKING_MODEL=gemini-2.0-flash-thinking-exp
# MCP 服务器任务模型 ID,用于次要任务,推荐高产出模型。
MCP_TASK_MODEL=gemini-2.0-flash-exp
注意: 为了确保 MCP 服务能够正常运行,您需要设置相应模型和搜索引擎的环境变量。具体环境变量参数,请参考 env.tpl。
研究主题
提出您的想法
信息收集
生成最终报告
flowchart TB
A[研究主题]:::start
subgraph Propose[提出您的想法]
B1[系统提问]:::process
B2[系统输出研究计划]:::process
B3[系统生成 SERP 查询]:::process
B1 --> B2
B2 --> B3
end
subgraph Collect[信息收集]
C1[初始研究]:::collection
C1a[根据 SERP 查询检索本地研究资源]:::collection
C1b[根据 SERP 查询从互联网收集信息]:::collection
C2[深入研究]:::recursive
Refine{需要更多深入研究吗?}:::decision
C1 --> C1a
C1 --> C1b
C1a