本教程将带你深入了解一款名为 Local Deep Research 的AI驱动研究助手。它是一个功能强大的工具,能利用多个大语言模型(LLMs)和网络搜索,为你进行深度、迭代式的分析。它既可以在本地运行以保护隐私,也能配置为使用云端的LLMs来增强功能。下面,我们将一步步拆解它的核心功能、安装配置和使用方法。
一、 核心特性一览
Local Deep Research 的核心价值在于其强大的研究能力、灵活的AI支持和隐私保护。其主要特性可以归纳为以下六大模块:
? 1. 高级研究能力
- 自动深度研究:系统会自动进行深度研究,并能根据初步结果智能地提出后续问题,以获取更全面的信息。
- 引用跟踪与来源验证:自动追踪研究过程中引用的所有来源,便于你核实信息的准确性。
- 多迭代分析:通过多次迭代分析,确保研究覆盖全面,不遗漏关键信息。
- 全文网页内容分析:不仅分析网页摘要片段,更能获取并分析完整的网页内容,获得更深入的洞察。
? 2. 灵活的 LLM 支持
- 本地AI处理:支持使用 Ollama 下载并在本地运行模型,保护数据隐私。
- 云端LLM支持:可轻松连接并调用 Claude、GPT 等云端大语言模型。
- Langchain 全兼容:理论上支持所有基于 Langchain 框架的模型,选择非常广泛。
- 可配置模型选择:你可以根据具体的研究任务和硬件性能,自由配置并选择合适的模型。
小提示: 如果你的电脑性能一般,建议优先使用本地模型(如 Mistral),以保证流畅体验。如果需要更强的推理能力,再配置云端 API。
? 3. 丰富的输出选项
- 详细研究发现:输出包含引用的详细研究结果。
- 全面研究报告:可以生成结构完整、内容详尽的报告。
- 快速总结:当需要快速了解核心要点时,可以一键生成简短总结。
- 源跟踪与验证:系统会清晰列出所有信息来源,方便你进行追踪和事实核查。
? 4. 隐私优先
- 完全本地运行:使用本地模型时,所有数据处理都在你自己的机器上完成,数据绝不外泄。
- 可配置的搜索设置:你可以精细控制搜索行为,避免数据被不必要的第三方收集。
- 数据处理透明:系统对数据的处理过程清晰透明,让你完全掌控。
? 5. 加强搜索集成
该系统集成了多种强大的搜索来源,并通过“自动”模式智能选择最合适的搜索引擎:
- 智能“自动”搜索引擎:系统会智能分析你的查询内容,并自动选择最合适的搜索引擎,无需手动切换。
- 维基百科:集成维基百科,用于获取事实性基础知识。
- arXiv:集成全球最大的预印本数据库,用于科学和学术研究。
- PubMed:集成生物医学领域的权威文献数据库,专门用于医学研究。
- DuckDuckGo:通用网页搜索,无需API密钥即可使用(但可能遇到速率限制)。
- SerpAPI:通过API获取谷歌搜索结果(需要API密钥)。
- 谷歌可编程搜索引擎:用于定制化的搜索体验,例如限定搜索特定网站或领域(需要API密钥和搜索引擎ID)。
- 《卫报》:集成高质量新闻文章,用于获取时事信息(需要API密钥)。
- 本地RAG搜索:使用向量嵌入技术搜索你本地的私人文档。
- 全文网页内容检索:能够抓取并分析网页的完整文本内容。
- 源过滤和验证:提供对搜索来源的过滤和验证功能。
- 可配置搜索参数:你可以根据自己的需要调整搜索的深度、地域和时间范围等参数。
? 6. 本地文档搜索(RAG)
- 基于向量嵌入的本地搜索:利用先进的AI技术,在本地文档中进行语义搜索,而非简单的关键词匹配。
- 自定义文档集合:你可以为不同的主题创建专属的文档集合,方便管理和检索。
- 隐私保护:你的所有文档都保留在你的设备上,不会上传到任何云端。
- 智能分块和检索:系统会自动将文档分割成合适的块,并进行高效的检索。
- 多种格式兼容:支持PDF、文本(.txt)、Markdown(.md)等多种常见文档格式。
- 自动集成:可以与元搜索引擎无缝集成,实现本地与网络的统一查询。
二、 实战演示:聚变能源发展研究
为了让你更直观地理解该工具的强大能力,仓库提供了一个关于“聚变能源发展”的完整研究示例。该示例展示了如何利用系统进行多源、多维度的综合分析:
- 最新科学突破:梳理了2022年至2025年间核聚变研究领域的关键科学突破。
- 私营部门资金动态:分析了私营企业对该领域的投资情况,投资额已超过60亿美元。
- 专家预测:收集并整理了专家学者对于商业核聚变能源实现时间表的预测。
- 监管框架进展:探讨了为聚变能源部署而开发的监管框架。
- 技术挑战:识别并总结了实现商业可行性所必须克服的技术挑战。
这个例子完美展示了系统进行多次研究迭代、跨领域(科学与商业)追踪证据线索、从不同来源综合信息并保持恰当引用的能力。
三、 安装指南
按照以下步骤,即可在你的电脑上完成 Local Deep Research 的安装。
1. 克隆仓库
首先,使用 git 将项目代码克隆到本地:
git clone https://github.com/yourusername/local-deep-research.git cd local-deep-research
小提示: 请将命令中的 yourusername 替换为实际的项目所有者账户名。
2. 安装 Python 依赖
项目依赖项都列在 requirements.txt 文件中,使用 pip 可以一键安装:
pip install -r requirements.txt
常见问题: 如果安装过程中间出现网络超时或包冲突,建议先创建一个干净的 Python 虚拟环境(venv),再执行安装命令。
3. 安装 Ollama(用于本地模型)
如果你想在本地运行AI模型,需要先安装 Ollama。Ollama 是一个让你可以轻松地在本地运行大语言模型的工具。
- 从
https://ollama.ai下载并安装 Ollama。 - 安装完成后,在终端中运行以下命令拉取默认模型:
ollama pull mistral # 默认模型,对硬件要求适中,效果不错
小提示: mistral 是一个通用的好选择。如果你的硬件(特别是GPU)性能强劲,可以尝试更大的模型(如 llama3),以获得更好的效果。
4. 配置环境变量
为了使用云端LLMs或某些特定的搜索引擎(需要API密钥),你需要配置环境变量。
- 复制模板文件:项目提供了一个
.env.template文件作为模板,将其复制并重命名为.env。
cp .env.template .env
- 编辑
.env文件:用文本编辑器打开.env文件,填入你的API密钥。
# 编辑 .env 文件,填入你的 API 密钥(如果使用云端LLMs)
ANTHROPIC_API_KEY=your-api-key-here # 用于 Claude
OPENAI_API_KEY=your-openai-key-here # 用于 GPT 模型
GUARDIAN_API_KEY=your-guardian-api-key-here # 用于《卫报》搜索
常见问题: 如果只使用本地模型(Ollama),则无需配置任何API密钥。上述步骤可以完全跳过。
四、 基本使用与配置
1. 运行方式
系统提供了两种运行方式:
- 终端使用(不推荐日常使用):运行
python main.py即可在命令行中操作。 - 网页界面(推荐):运行
python app.py启动本地Web服务器。
启动网页界面后,在浏览器中访问 http://127.0.0.1:5000 即可打开操作界面。
2. 网页界面功能
网页界面的设计更友好,主要功能包括:
- 仪表板:一个直观的控制中心,用于启动和管理研究查询。
- 实时更新:研究过程中,界面会实时更新进度,让你随时掌握情况。
- 研究历史:你可以查看、回顾和管理过去发起的查询和研究。
- PDF导出:完成研究后,可以将报告一键导出为PDF文档。
- 研究管理:允许你随时中止正在进行的研究流程,或删除过往的研究记录。
3. 核心配置(config.py)
所有的核心配置都在项目根目录下的 config.py 文件中。以下是几个最重要的配置项:
# LLM 配置
DEFAULT_MODEL = "mistral" # 根据你的需求更改,如 "llama3", "claude-v2"
DEFAULT_TEMPERATURE = 0.7
MAX_TOKENS = 8000
# 搜索配置
MAX_SEARCH_RESULTS = 40
SEARCH_REGION = "us-en"
TIME_PERIOD = "y"
SAFE_SEARCH = True
SEARCH_SNIPPETS_ONLY = False
# 选择搜索工具: "wiki", "arxiv", "duckduckgo", "guardian", "serp", "local_all", 或 "auto"
# "auto" 是推荐设置,系统会根据你的查询内容智能选择最佳搜索引擎。
search_tool = "auto"
小提示: 我们非常希望你能将你认为最佳的设置组合提交到项目的 Issues 中,以帮助改进默认配置。
五、 深入:本地文档搜索(RAG)
这是 Local Deep Research 的一个强大功能,允许你搜索自己的私有文档库。
1. 设置本地收藏
首先,在项目根目录下创建一个名为 local_collections.py 的文件,用于定义和注册你的本地文档集合。
# local_collections.py
import os
from typing import Dict, Any
# 本地文档集合注册表
LOCAL_COLLECTIONS = {
# 研究论文集合
"research_papers": {
"name": "Research Papers",
"description": "Academic research papers and articles",
"paths": [os.path.abspath("local_search_files/research_papers")],
"enabled": True,
"embedding_model": "all-MiniLM-L6-v2",
"embedding_device": "cpu",
"embedding_model_type": "sentence_transformers",
"max_results": 20,
"max_filtered_results": 5,
"chunk_size": 800,
"chunk_overlap": 150,
"cache_dir": ".cache/local_search/research_papers"
},
# 个人笔记集合
"personal_notes": {
"name": "Personal Notes",
"description": "Personal notes and documents",
"paths": [os.path.abspath("local_search_files/personal_notes")],
"enabled": True,
"embedding_model": "all-MiniLM-L6-v2",
"embedding_device": "cpu",
"embedding_model_type": "sentence_transformers",
"max_results": 30,
"max_filtered_results": 10,
"chunk_size": 500,
"chunk_overlap": 100,
"cache_dir": ".cache/local_search/personal_notes"
}
}
# 然后,创建对应的文件夹来存放你的文档
mkdir -p local_search_files/research_papers
mkdir -p local_search_files/personal_notes
2. 使用本地搜索
配置好本地收藏后,你可以通过以下几种方式使用它:
- 自动选择:在
config.py中将search_tool = "auto"。系统会在合适的查询中自动使用你的本地文档。 - 显式选择:在
config.py中,将search_tool直接设置为你的集合名称(例如,search_tool = "research_papers"),这将只搜索该特定集合。 - 搜索所有本地收藏:将
search_tool = "local_all",系统将搜索你所有已启用并配置好的本地文档集合。 - 查询语法:在输入查询时,使用
collection:集合名称 你的问题的格式,可以直接指定要搜索的特定集合。例如:collection:personal_notes 我的写作灵感有哪些。
常见问题: 初次启动本地文档搜索时,系统会为你的文档建立索引,这个过程可能会比较慢,且需要一定的内存。请耐心等待。
六、 搜索引擎选项详解
系统支持多种搜索引擎,你可以通过在 config.py 中修改 search_tool 变量来选择。以下是各选项的简要说明:
- auto(自动):智能引擎选择器,系统会分析你的查询,并自动从维基百科、arXiv、本地收藏等来源中挑选最合适的。
- wiki(维基百科):最适合寻找通用知识、事实和概述信息。
- arxiv(arXiv):专注于科学和学术研究,可访问最新的预印本和论文。
- pubmed(PubMed):生物医学文献和医学研究的首选。
- duckduckgo(DuckDuckGo):无需API密钥即可使用的通用网络搜索。
- guardian(《卫报》):获取高质量的新闻和深度文章(需要API密钥)。
- serp(SerpAPI):获取谷歌搜索结果(需要API密钥)。
- google_pse(谷歌可编程搜索引擎):提供高定制化的搜索体验,可限定搜索特定网站(需要API密钥和搜索引擎ID)。
- 本地收藏:你在
local_collections.py中定义的任何本地文档集合。
小提示: 对于大多数日常研究,推荐使用 auto 模式。它非常智能,能大幅简化你的操作。
通过本教程,相信你已经对 Local Deep Research 有了全面的了解。从强大的研究能力到灵活的模型支持,再到贴心的隐私保护和本地文档搜索,它是一个能显著提升你研究效率的利器。现在,就开始探索和构建属于你自己的深度研究吧!
