
local-deep-research 实战使用 Gemini 2.0 Flash 通过 OpenRouter 运行 SimpleQA 与 BrowseComp 基准测试【免费下载链接】local-deep-research~95% on SimpleQA (e.g. Qwen3.6-27B on a 3090). Supports all local and cloud LLMs (llama.cpp, Ollama, Google, ...). 10 search engines - arXiv, PubMed, your private documents. Everything Local Encrypted.项目地址: https://gitcode.com/GitHub_Trending/lo/local-deep-research本文是一份面向开发者的实战指南围绕 local-deep-research 仓库中 examples/benchmarks/gemini/README.md 所描述的 Gemini 基准测试示例展开如何在本地安装的 deep research 系统上用 Google Gemini 2.0 Flash经 OpenRouter 以 OpenAI 兼容端点方式接入替换默认的本地评估模型一键跑通 SimpleQA 与 BrowseComp 两项评估并读懂底层结果收集与上报逻辑。读完本文你将掌握run_gemini_benchmark_fixed.py的完整使用方式、monkey-patch 替换 LLM 的原理以及如何调节搜索迭代、采样规模等关键参数。背景为什么需要替换评估模型local-deep-research 是一个支持本地与云端 LLM 的深度研究引擎默认本地模型为gemma3:12b其基准测试子系统默认使用本地模型来完成搜索与评估。当本地模型能力不足以支撑可靠评估时就需要临时切换到云端更强的模型如 Gemini 2.0 Flash。本目录提供的示例脚本正是为此场景设计不改动任何核心代码仅通过运行时 patch 将评估链路中的 LLM 替换为 Gemini即可完成基准验证。脚本核心能力摘自 README包括Patch LLM 配置让所有评估环节统一使用 Gemini同时支持 SimpleQA 与 BrowseComp 两项基准完整处理结果收集与报告输出。脚本全景run_gemini_benchmark_fixed.py示例脚本位于 examples/benchmarks/gemini/run_gemini_benchmark_fixed.py共分为四层结构导入基准函数从 src/local_deep_research/benchmarks/benchmark_functions.py 导入evaluate_simpleqa与evaluate_browsecomp构建 Gemini 评估配置setup_gemini_config()返回模型名、provider 与端点 URLmonkey-patchget_llm将 src/local_deep_research/config/llm_config.py 中的get_llm替换为强制走 Gemini 的版本执行与汇总run_benchmark(examples)顺序跑两项基准并打印精度与耗时。Gemini 评估配置解析setup_gemini_config()生成的配置字典是全脚本的枢纽evaluation_config { model_name: google/gemini-2.0-flash-001, # OpenRouter 格式的 Gemini 模型 ID provider: openai_endpoint, # 以 OpenAI 兼容端点接入 openai_endpoint_url: https://openrouter.ai/api/v1, temperature: 0, # 评估固定使用零温度保证结果可复现 }关键设计点temperature: 0并非随意设置——在 benchmark_functions.py 的底层实现中只要传入evaluation_model或evaluation_provider评估配置就强制写入temperature: 0这是为了让评测打分保持一致性与可复现性。Monkey-patch 原理不改代码换掉评估模型脚本最核心的技巧是对llm_config.get_llm的运行时替换original_get_llm llm_config.get_llm # 保存原始函数 def patched_get_llm(model_nameNone, temperatureNone, providerNone, openai_endpoint_urlNone): Patched version that always uses Gemini via OpenRouter if model_name gemma3:12b: # 默认本地模型正是导致报错的元凶 print(Overriding local model with Gemini 2.0 Flash) model_name google/gemini-2.0-flash-001 provider openai_endpoint openai_endpoint_url https://openrouter.ai/api/v1 return original_get_llm(model_name, temperature, provider, openai_endpoint_url) llm_config.get_llm patched_get_llm # 应用 patch原理说明评估过程中所有 LLM 实例的创建都经由get_llm工厂函数见 llm_config.py 的函数签名支持model_name、temperature、provider、openai_endpoint_url等参数。当基准流程以默认模型名gemma3:12b请求 LLM 时被 patch 的版本会将其拦截并改写为 Gemini 模型 ID 与 OpenRouter 端点随后调用原始get_llm完成实例化。这样基准子系统完全感知不到模型已被替换属于零侵入式改造。运行基准测试快速开始按 README 提供的两种方式执行# 默认设置运行1 个示例 python examples/benchmarks/gemini/run_gemini_benchmark_fixed.py # 自定义示例数量 python examples/benchmarks/gemini/run_gemini_benchmark_fixed.py --examples 5建议从仓库根目录执行并确保已通过 PDM 安装依赖可参考 examples/benchmarks/run_gemini_benchmark.py 中的安装说明。命令行参数参数类型默认值说明--examplesint1参与评估的示例题目数量数值越大评估越充分、耗时越长脚本内部还固化了若干基准超参数可通过修改 run_gemini_benchmark_fixed.py 中的调用处调整参数SimpleQA 取值BrowseComp 取值含义search_iterations23每个查询的搜索迭代轮数questions_per_iteration33每轮迭代生成的子问题数量search_toolsearxngsearxng使用的搜索引擎默认 SearXNG这些参数会透传给 benchmark_functions.py 中的evaluate_simpleqa/evaluate_browsecomp后者据此构造search_config字典并调用底层 runner见 src/local_deep_research/benchmarks/runners.py 中的run_simpleqa_benchmark与run_browsecomp_benchmark。运行流程与结果输出脚本运行时会依次为本次评估生成唯一时间戳目录YYYYMMDD_HHMMSS格式UTC 时间将结果输出到benchmark_results/gemini_eval_时间戳/simpleqa与browsecomp两个子目录逐项运行 SimpleQA、BrowseComp打印各自耗时若结果字典包含accuracy字段则以 4 位小数打印精度最终打印汇总示例数、模型名、provider、结果保存路径。执行完的终端输出示意如下示例数、耗时与精度因环境而异 Running SimpleQA benchmark with 5 examples SimpleQA evaluation complete in 123.4 seconds SimpleQA accuracy: 0.9120 Running BrowseComp benchmark with 5 examples BrowseComp evaluation complete in 456.7 seconds BrowseComp accuracy: 0.6400 Evaluation Summary Examples: 5 Model: google/gemini-2.0-flash-001 Provider: openai_endpoint Results saved to: .../benchmark_results/gemini_eval_20260915_080412脚本返回码约定评估顺利完成返回0任何异常含 API 错误会打印堆栈并返回1便于接入 CI 或自动化脚本。前置条件与配置要点README 明确指出运行前必须具备两项条件OpenRouter API Key 已配置到 LDR 数据库脚本依赖数据库中的凭据来完成 OpenRouter 认证。若尚未配置可参考另一种接入方式 examples/benchmarks/run_gemini_benchmark.py它通过环境变量OPENAI_ENDPOINT_API_KEY/LDR_LLM__OPENAI_ENDPOINT_API_KEY与OPENAI_ENDPOINT_URL/LDR_LLM__OPENAI_ENDPOINT_URL显式注入密钥与端点具备 Gemini 模型的访问权限需要在 OpenRouter 账户中开通google/gemini-2.0-flash-001的调用权限否则请求会被拒绝。此外searxng作为默认搜索工具意味着你需要一个可用的 SearXNG 实例可参考 docs/SearXNG-Setup.md 完成部署与配置。与另一种实现方式的对比仓库中还提供了 examples/benchmarks/run_gemini_benchmark.py两者思路互补run_gemini_benchmark.py环境变量式通过命令行参数--api-key传入密钥并同时设置搜索端与评估端的模型/provider/端点支持--simpleqa/--browsecomp独立开关、--iterations、--questions、--search-tool、--search-strategy等更细粒度参数适合需要同时替换搜索模型与评估模型的场景run_gemini_benchmark_fixed.pypatch 式仅替换评估链路中的get_llm适合快速验证评估模型换成 Gemini 后精度如何变化改动面更小、更聚焦。注意事项基准评估本质上是有成本与耗时的每个示例都会触发多轮搜索与多次 LLM 调用examples×search_iterations×questions_per_iteration建议先用小样本如 15冒烟验证配置再扩展到全量--examples默认值为1全量数据集通常为100个示例benchmark_functions.py 中num_examples默认即为 100若本地模型名不是gemma3:12b例如已通过数据库设置改为其他模型需要同步修改patched_get_llm中的判断条件否则 patch 不会生效所有结果目录与报告均落在benchmark_results/下可直接复用evaluate_simpleqa/evaluate_browsecomp的返回值做二次分析例如使用 benchmark_functions.py 提供的compare_configurations进行多配置横向对比。【免费下载链接】local-deep-research~95% on SimpleQA (e.g. Qwen3.6-27B on a 3090). Supports all local and cloud LLMs (llama.cpp, Ollama, Google, ...). 10 search engines - arXiv, PubMed, your private documents. Everything Local Encrypted.项目地址: https://gitcode.com/GitHub_Trending/lo/local-deep-research创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考