项目概述
Local Deep Research (LDR) 是一个AI研究助手,专注于执行深度、迭代的研究任务。核心功能包括:
- 复杂问题分解:将复杂查询拆分为聚焦的子查询
- 多源并行搜索:同时搜索网络、学术论文和本地文档
- 信息验证:跨来源验证信息准确性
- 综合报告生成:创建带有规范引用的全面报告
核心特性
智能搜索策略
- 15+种搜索策略(包括并行搜索、自适应分解、约束引导等)
- 支持BrowseComp优化模式
- 动态约束满足跟踪
高级分析能力
- 双置信度评估(正/负证据分析)
- 多阶段候选发现
- 智能约束放松机制
知识管理
开发者友好
安装指南
基础安装
- git clone https://github.com/LearningCircuit/local-deep-research.git
- cd local-deep-research
- pdm install
复制代码 依赖项
- Python 3.10+
- PDM 2.0+
- Ollama (可选,用于本地模型运行)
Docker部署
- docker-compose -f docker-compose.ldr.yml up -d
复制代码 使用示例
基础研究任务
- from local_deep_research import get_advanced_search_system
- search_system = get_advanced_search_system(strategy_name="iterdrag")
- results = search_system.analyze_topic("量子计算在密码学中的应用现状")
复制代码 基准测试
- from local_deep_research.web.benchmark import run_benchmark
- benchmark_results = run_benchmark(
- model="gpt-4.1-mini",
- strategy="focused-iteration",
- questions=50
- )
复制代码 核心代码解析
自适应搜索策略
- class AdaptiveDecompositionStrategy(BaseSearchStrategy):
- """
- 自适应分解策略,根据中间发现动态调整搜索方法
-
- 关键特性:
- 1. 动态步骤选择(约束提取→初始搜索→验证→优化)
- 2. 基于置信度的早期终止
- 3. 智能查询重构
- """
-
- def __init__(self, model, search, max_steps=15):
- self.model = model
- self.search = search
- self.max_steps = max_steps
- self.current_step = 0
-
- def execute_step(self, step_type, context):
- """执行单个自适应步骤"""
- if step_type == StepType.CONSTRAINT_EXTRACTION:
- return self._extract_constraints(context)
- elif step_type == StepType.INITIAL_SEARCH:
- return self._initial_search(context)
- # ...其他步骤处理
复制代码 双置信度检查器
- class DualConfidenceChecker(BaseConstraintChecker):
- """
- 使用正/负/不确定三分数评估约束满足情况
-
- 评估逻辑:
- - 正置信度 > 40% → 接受
- - 负置信度 > 25% → 拒绝
- - 不确定度 > 60% → 需要重新评估
- """
-
- def check_candidate(self, candidate, constraints):
- results = []
- for constraint in constraints:
- evidence = self._gather_evidence(candidate, constraint)
- analysis = self._analyze_evidence(evidence)
-
- score = (analysis.positive -
- analysis.negative * self.negative_weight -
- analysis.uncertainty * self.uncertainty_penalty)
-
- results.append(ConstraintCheckResult(
- constraint=constraint,
- score=score,
- evidence=evidence
- ))
- return results
复制代码 贡献指南
我们欢迎各种形式的贡献!请参阅贡献指南了解:
- 开发环境设置
- 代码风格要求
- PR提交流程
- 安全准则
许可证
本项目采用 Apache License 2.0 开源协议。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |