这是dzhng/deep-research的DeepSeek中文化版本,一款由人工智能驱动的研究助手,它通过结合搜索引擎、网络抓取和大型语言模型,对任何主题进行迭代式、深入的研究。
和原项目相比,主要就是两个修改,一个是将模型由o3-mini改成deepseek r1(爬虫依然依赖firecrawl),二是将prompts全部改成中文,这样对于中文的查询更加友好。这是一个用来验证的快速原型,代码比较乱。
如果使用火山方舟的DeepSeek,运行办法如下:
export DEEPSEEK_API_KEY=xxx (API key)
export DEEPSEEK_MODEL_R1=ep-xxx (模型实例名)
export DEEPSEEK_API_BASE=https://ark.cn-beijing.volces.com/api/v3
export FIRECRAWL_KEY=fc-xxx (Firecrawl API key)
npm start
Feng Zhou
原作者David Zhang的README:
An AI-powered research assistant that performs iterative, deep research on any topic by combining search engines, web scraping, and large language models. If you like this project, please consider starring it and giving me a follow on X.
The goal of this repo is to provide the simplest implementation of a deep research agent - e.g. an agent that can refine its research direction overtime and deep dive into a topic. It'll always be kept at <500 LoC so it is easy to understand and build on top of.
flowchart TB
subgraph Input
Q[User Query]
B[Breadth Parameter]
D[Depth Parameter]
end
DR[Deep Research] -->
SQ[SERP Queries] -->
PR[Process Results]
subgraph Results[Results]
direction TB
NL((Learnings))
ND((Directions))
end
PR --> NL
PR --> ND
DP{depth > 0?}
RD["Next Direction:
- Prior Goals
- New Questions
- Learnings"]
MR[Markdown Report]
%% Main Flow
Q & B & D --> DR
%% Results to Decision
NL & ND --> DP
%% Circular Flow
DP -->|Yes| RD
RD -->|New Context| DR
%% Final Output
DP -->|No| MR
%% Styling
classDef input 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 results fill:#a8e6cf,stroke:#3b7a57,color:black
class Q,B,D input
class DR,SQ,PR process
class DP,RD recursive
class MR output
class NL,ND results
- Iterative Research: Performs deep research by iteratively generating search queries, processing results, and diving deeper based on findings
- Intelligent Query Generation: Uses LLMs to generate targeted search queries based on research goals and previous findings
- Depth & Breadth Control: Configurable parameters to control how wide (breadth) and deep (depth) the research goes
- Smart Follow-up: Generates follow-up questions to better understand research needs
- Comprehensive Reports: Produces detailed markdown reports with findings and sources
- Concurrent Processing: Handles multiple searches and result processing in parallel for efficiency
- Node.js environment
- API keys for:
- Firecrawl API (for web search and content extraction)
- OpenAI API (for o3 mini model)
- Clone the repository
- Install dependencies:
npm install
- Set up environment variables in a
.env.local
file:
FIRECRAWL_KEY="your_firecrawl_key"
# If you want to use your self-hosted Firecrawl, add the following below:
# FIRECRAWL_BASE_URL="http://localhost:3002"
OPENAI_KEY="your_openai_key"
Run the research assistant:
npm start
You'll be prompted to:
- Enter your research query
- Specify research breadth (recommended: 3-10, default: 6)
- Specify research depth (recommended: 1-5, default: 3)
- Answer follow-up questions to refine the research direction
The system will then:
- Generate and execute search queries
- Process and analyze search results
- Recursively explore deeper based on findings
- Generate a comprehensive markdown report
The final report will be saved as output.md
in your working directory.
-
Initial Setup
- Takes user query and research parameters (breadth & depth)
- Generates follow-up questions to understand research needs better
-
Deep Research Process
- Generates multiple SERP queries based on research goals
- Processes search results to extract key learnings
- Generates follow-up research directions
-
Recursive Exploration
- If depth > 0, takes new research directions and continues exploration
- Each iteration builds on previous learnings
- Maintains context of research goals and findings
-
Report Generation
- Compiles all findings into a comprehensive markdown report
- Includes all sources and references
- Organizes information in a clear, readable format
MIT License - feel free to use and modify as needed.