强大的AI研究助手Local Deep Research

项目简介

一款强大的 AI 驱动研究助手,使用多个LLMs和网页搜索进行深度、迭代分析。系统可本地运行以保护隐私,或配置为使用基于云的LLMs以增强功能。


特性

🔍 高级研究能力

    • 自动深度研究,智能后续提问
    • 引用跟踪和来源验证
    • 多迭代分析以实现全面覆盖
    • 全文网页内容分析(不仅限于片段)
  •  🤖 灵活 LLM 支持

    • 本地 AI 处理,使用 Ollama 模型
    • 云 LLM 支持(Claude,GPT)
    • 支持所有 Langchain 模型
    • 可配置的模型选择,根据需求
  •  📊 丰富的输出选项

    • 详细的研究发现,附有引用
    • 全面研究报告
    • 快速总结以获取快速洞察
    • 源跟踪与验证
  • 🔒 隐私优先

    • 完全在您的机器上运行,使用本地模型
    • 可配置的搜索设置
    • 透明数据处理
  • 🌐 加强搜索集成

    • 自动选择搜索来源:智能“自动”搜索引擎会智能分析您的查询,并根据查询内容选择最合适的搜索引擎
    • 维基百科事实知识集成
    • arXiv 科学论文和学术研究集成
    • PubMed 集成生物医学文献和医学研究
    • DuckDuckGo 网络搜索集成(可能遇到速率限制)
    • SerpAPI 集成到谷歌搜索结果中(需要 API 密钥)
    • 谷歌可编程搜索引擎集成,用于定制搜索体验(需要 API 密钥)
    • 《卫报》新闻文章和新闻业的集成(需要 API 密钥)
    • 本地 RAG 搜索私人文档 – 使用向量嵌入搜索您的文档
    • 全文网页内容检索
    • 源过滤和验证
    • 可配置的搜索参数
  • 📑 本地文档搜索(RAG)

    • 基于向量嵌入的本地文档搜索
    • 创建不同主题的自定义文档集合
    • 隐私保护 – 您的文档保留在您的设备上
    • 智能分块和检索
    • 兼容各种文档格式(PDF、文本、Markdown 等)
    • 自动与元搜索引擎集成以实现统一查询



示例研究:聚变能源发展

该仓库包含展示工具功能的完整研究示例。例如,我们的聚变能源研究分析提供了以下全面概述:

  • 最新核聚变研究科学突破(2022-2025)
  • 私营部门资金发展超过 60 亿美元
  • 专家对商业核聚变能源时间表的预测
  • 监管框架正在为融合部署开发
  • 技术挑战,必须克服以实现商业可行性


本示例展示了系统执行多次研究迭代的能力,跨科学和商业领域追踪证据线索,并从不同来源综合信息,同时保持适当的引用。


安装


   克隆仓库:

git clone https://github.com/yourusername/local-deep-research.gitcd local-deep-research
  1. 安装依赖项:
pip install -r requirements.txt
  1. 安装 Ollama(用于本地模型):
# Install Ollama from https://ollama.aiollama pull mistral  # Default model - many work really well choose best for your hardware (fits in GPU)
  1. 配置环境变量:
# Copy the templatecp .env.template .env
# Edit .env with your API keys (if using cloud LLMs)ANTHROPIC_API_KEY=your-api-key-here  # For ClaudeOPENAI_API_KEY=your-openai-key-here  # For GPT modelsGUARDIAN_API_KEY=your-guardian-api-key-here  # For The Guardian search

使用


终端使用(不推荐):

python main.py

网页界面
该项目包括一个用于更友好用户体验的网页界面:

python app.py

这将启动一个本地网络服务器,您可以在浏览器中通过 http://127.0.0.1:5000 访问。

网页界面功能:

  • 仪表板:启动和管理研究查询的直观界面
  • 实时更新:通过实时更新跟踪研究进展
  • 研究历史:访问和管理过去的查询
  • PDF 导出:下载完成的研报作为 PDF 文档
  • 研究管理:终止正在进行的研究流程或删除过往记录


 


配置



请将您最佳设置在问题中报告,以便我们改进默认设置。

Key settings in config.py:
关键设置在 config.py 中:

# LLM ConfigurationDEFAULT_MODEL = "mistral"  # Change based on your needsDEFAULT_TEMPERATURE = 0.7MAX_TOKENS = 8000
# Search ConfigurationMAX_SEARCH_RESULTS = 40SEARCH_REGION = "us-en"TIME_PERIOD = "y"SAFE_SEARCH = TrueSEARCH_SNIPPETS_ONLY = False
# Choose search tool: "wiki", "arxiv", "duckduckgo", "guardian", "serp", "local_all", or "auto"search_tool = "auto"  # "auto" will intelligently select the best search engine for your query


本地文档搜索(RAG)
系统包括使用检索增强生成(RAG)的强大本地文档搜索功能。这允许您从自己的文档集合中搜索和检索内容。



设置本地收藏


创建一个名为 local_collections.py 的文件在项目根目录下:

# local_collections.pyimport osfrom typing import DictAny
# Registry of local document collectionsLOCAL_COLLECTIONS = {    # Research Papers Collection    "research_papers": {        "name""Research Papers",        "description""Academic research papers and articles",        "paths": [os.path.abspath("local_search_files/research_papers")],  # Use absolute paths        "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,  # Smaller chunks for academic content        "chunk_overlap"150,        "cache_dir"".cache/local_search/research_papers"    },
    # Personal Notes Collection    "personal_notes": {        "name""Personal Notes",        "description""Personal notes and documents",        "paths": [os.path.abspath("local_search_files/personal_notes")],  # Use absolute paths        "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,  # Smaller chunks for notes        "chunk_overlap"100,        "cache_dir"".cache/local_search/personal_notes"    }}
Create the directories for your collections:```bashmkdir -p local_search_files/research_papersmkdir -p local_search_files/personal_notes

将您的文档添加到这些文件夹中,系统将自动索引它们并使它们可供搜索。


使用本地搜索


您可以使用本地搜索的几种方式:

  1. 自动选择:在 config.py 中设置 search_tool = "auto" ,系统将在查询适当的情况下自动使用您的本地收藏。

  2. 显式选择:将 search_tool = "research_papers" 设置为仅搜索特定集合。

  3. 搜索所有本地收藏:将 search_tool = "local_all" 设置为搜索您所有的本地文档收藏。

  4. 查询语法:使用 collection:collection_name your query 来在查询中指定特定的集合。


搜索引擎选项



系统支持多个搜索引擎,可以通过更改 config.py 中的 search_tool 变量来选择:

  • 自动( auto ):智能搜索引擎选择器,分析您的查询并选择最合适的来源(维基百科、arXiv、本地收藏等)
  • 维基百科( wiki ):最适合一般知识、事实和概述信息
  • arXiv( arxiv ):非常适合科学和学术研究,访问预印本和论文
  • PubMed( pubmed ):非常适合生物医学文献、医学研究和健康信息
  • DuckDuckGo( duckduckgo ):无需 API 密钥的通用网页搜索
  • 《卫报》( guardian ):高质量新闻和文章(需要 API 密钥)
  • SerpAPI( serp ):谷歌搜索结果(需要 API 密钥)
  • 谷歌可编程搜索引擎( google_pse ):可控制搜索范围和域的定制搜索体验(需要 API 密钥和搜索引擎 ID)
  • 本地收藏:在您的 local_collections.py 文件中定义的任何收藏



项目链接

https://github.com/LearningCircuit/local-deep-research

扫码加入技术交流群,备注开发语言-城市-昵称

(文:GitHubStore)

欢迎分享

发表评论