[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-btahir--open-deep-research":3,"tool-btahir--open-deep-research":62},[4,18,26,36,46,54],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160015,2,"2026-04-18T11:30:52",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":77,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":99,"forks":100,"last_commit_at":101,"license":102,"difficulty_score":32,"env_os":103,"env_gpu":104,"env_ram":105,"env_deps":106,"category_tags":113,"github_topics":77,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":114,"updated_at":115,"faqs":116,"releases":152},9178,"btahir\u002Fopen-deep-research","open-deep-research","Open source alternative to Gemini Deep Research. Generate reports with AI based on search results.","open-deep-research 是一款开源的 AI 研究助手，旨在帮助用户基于网络搜索结果自动生成深度分析报告。它有效解决了传统研究中信息搜集耗时、内容整合困难以及依赖单一付费模型的痛点，让高质量的研究工作流变得更加高效且自主可控。\n\n这款工具特别适合研究人员、数据分析师、开发者以及需要快速产出深度内容的普通用户。其核心优势在于极高的灵活性与开放性：支持对接 Google 或 Bing 进行检索，利用 JinaAI 精准提取网页内容，并允许用户自由选择 Google Gemini、OpenAI GPT、Anthropic Sonnet 甚至本地部署的模型来生成报告。\n\n技术亮点方面，open-deep-research 不仅支持上传本地文档（如 PDF、Word）与网络信息结合分析，还内置了个人知识库功能，方便保存和回溯历史报告。更独特的是其“深度研究流”特性，能够像人类专家一样进行递归式探索，根据初步结论自动提出后续问题，层层深入挖掘主题，并将分散的报告整合成可视化的研究图谱。无论是撰写行业调研还是学术综述，它都能成为你得力的智能搭档。","# Open Deep Research\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbtahir_open-deep-research_readme_fcc205c4864e.gif\" alt=\"Open Deep Research Demo\" width=\"800\"\u002F>\n  \u003Cp>\u003Cem>Note: Demo is sped up for brevity\u003C\u002Fem>\u003C\u002Fp>\n\u003C\u002Fdiv>\n\nA powerful open-source research assistant that generates comprehensive AI-powered reports from web search results. Unlike other Deep Research solutions, it provides seamless integration with multiple AI platforms including Google, OpenAI, Anthropic, DeepSeek, and even local models - giving you the freedom to choose the perfect AI model for your specific research requirements.\n\nThis app functions in three key steps:\n\n1. **Search Results Retrieval**: Using either Google Custom Search or Bing Search API (configurable), the app fetches comprehensive search results for the specified search term.\n2. **Content Extraction**: Leveraging JinaAI, it retrieves and processes the contents of the selected search results, ensuring accurate and relevant information.\n3. **Report Generation**: With the curated search results and extracted content, the app generates a detailed report using your chosen AI model (Gemini, GPT-4, Sonnet, etc.), providing insightful and synthesized output tailored to your custom prompts.\n4. **Knowledge Base**: Save and access your generated reports in a personal knowledge base for future reference and easy retrieval.\n\nOpen Deep Research combines powerful tools to streamline research and report creation in a user-friendly, open-source platform. You can customize the app to your needs (select your preferred search provider, AI model, customize prompts, update rate limits, and configure the number of results both fetched and selected).\n\n## Features\n\n- 🔍 Flexible web search with Google or Bing APIs\n- ⏱️ Time-based filtering of search results\n- 📄 Content extraction from web pages\n- 🤖 Multi-platform AI support (Google Gemini, OpenAI GPT, Anthropic Sonnet)\n- 🎯 Flexible model selection with granular configuration\n- 📊 Multiple export formats (PDF, Word, Text)\n- 🧠 Knowledge Base for saving and accessing past reports\n- ⚡ Rate limiting for stability\n- 📱 Responsive design\n\n### Local File Support\n\nThe app supports analyzing local files for research and report generation. You can:\n\n- Upload TXT, PDF, and DOCX files directly through the interface\n- Process local documents alongside web search results\n- Generate reports from local files without requiring web search\n- Combine insights from both local files and web sources\n\nTo use local files:\n\n1. Click the upload button (⬆️) in the search interface\n2. Select your file (supported formats: TXT, PDF, DOCX)\n3. The file will appear as a custom source in your results\n4. Select it and click \"Generate Report\" to analyze its contents\n\n### Knowledge Base\n\nThe Knowledge Base feature allows you to:\n\n- Save generated reports for future reference (reports are saved in the browser's local storage)\n- Access your research history\n- Quickly load and review past reports\n- Build a personal research library over time\n\n### Flow: Deep Research & Report Consolidation\n\n\u003Cdiv align=\"center\">\n  \u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.loom.com\u002Fshare\u002F3c4d9811ac1d47eeaa7a0907c43aef7f\">🎥 Watch the full demo video on Loom\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fdiv>\n\nThe Flow feature enables deep, recursive research by allowing you to:\n\n- Create visual research flows with interconnected reports\n- Generate follow-up queries based on initial research findings\n- Dive deeper into specific topics through recursive exploration\n- Consolidate multiple related reports into comprehensive final reports\n\nKey capabilities:\n\n- 🌳 **Deep Research Trees**: Start with a topic and automatically generate relevant follow-up questions to explore deeper aspects\n- 🔄 **Recursive Exploration**: Follow research paths down various \"rabbit holes\" by generating new queries from report insights\n- 🔍 **Visual Research Mapping**: See your entire research journey mapped out visually, showing connections between different research paths\n- 🎯 **Smart Query Generation**: AI-powered generation of follow-up research questions based on report content\n- 🔗 **Report Consolidation**: Select multiple related reports and combine them into a single, comprehensive final report\n- 📊 **Interactive Interface**: Drag, arrange, and organize your research flows visually\n\nThe Flow interface makes it easy to:\n\n1. Start with an initial research query\n2. Review and select relevant search results\n3. Generate detailed reports from selected sources\n4. Get AI-suggested follow-up questions for deeper exploration\n5. Create new research branches from those questions\n6. Finally, consolidate related reports into comprehensive summaries\n\nThis feature is perfect for:\n\n- Academic research requiring deep exploration of interconnected topics\n- Market research needing multiple angles of investigation\n- Complex topic analysis requiring recursive deep dives\n- Any research task where you need to \"follow the thread\" of information\n\n## Configuration\n\nThe app's settings can be customized through the configuration file at `lib\u002Fconfig.ts`. Here are the key parameters you can adjust:\n\n### Rate Limits\n\nControl rate limiting and the number of requests allowed per minute for different operations:\n\n```typescript\nrateLimits: {\n  enabled: true,         \u002F\u002F Enable\u002Fdisable rate limiting (set to false to skip Redis setup)\n  search: 5,            \u002F\u002F Search requests per minute\n  contentFetch: 20,     \u002F\u002F Content fetch requests per minute\n  reportGeneration: 5,  \u002F\u002F Report generation requests per minute\n}\n```\n\nNote: If you set `enabled: false`, you can run the application without setting up Redis. This is useful for local development or when you don't need rate limiting.\n\n### Search Provider Configuration\n\nThe app supports both Google Custom Search and Bing Search APIs. You can configure your preferred search provider in `lib\u002Fconfig.ts`:\n\n```typescript\nsearch: {\n  resultsPerPage: 10,\n  maxSelectableResults: 3,\n  provider: 'google', \u002F\u002F 'google' or 'bing'\n  safeSearch: {\n    google: 'active',  \u002F\u002F 'active' or 'off'\n    bing: 'moderate'   \u002F\u002F 'moderate', 'strict', or 'off'\n  },\n  market: 'en-US',\n}\n```\n\nTo use Google Custom Search:\n\n1. Get your API key from [Google Cloud Console](https:\u002F\u002Fconsole.cloud.google.com\u002F)\n2. Create a Custom Search Engine and get your CX ID from [Google Programmable Search](https:\u002F\u002Fprogrammablesearchengine.google.com\u002F)\n3. Add the credentials to your `.env.local` file:\n\n```bash\nGOOGLE_SEARCH_API_KEY=\"your-api-key\"\nGOOGLE_SEARCH_CX=\"your-cx-id\"\n```\n\nTo use Bing Search:\n\n1. Get your API key from [Azure Portal](https:\u002F\u002Fportal.azure.com\u002F)\n2. Add the credential to your `.env.local` file:\n\n```bash\nAZURE_SUB_KEY=\"your-azure-key\"\n```\n\n### Knowledge Base\n\nThe Knowledge Base feature allows you to build a personal research library by:\n\n- Saving generated reports with their original search queries\n- Accessing and loading past reports instantly\n- Building a searchable archive of your research\n- Maintaining context across research sessions\n\nReports saved to the Knowledge Base include:\n\n- The full report content with all sections\n- Original search query and prompt\n- Source URLs and references\n- Generation timestamp\n\nYou can access your Knowledge Base through the dedicated button in the UI, which opens a sidebar containing all your saved reports.\n\n### AI Platform Settings\n\nConfigure which AI platforms and models are available. The app supports multiple AI platforms (Google, OpenAI, Anthropic, DeepSeek) with various models for each platform. You can enable\u002Fdisable platforms and individual models based on your needs:\n\n```typescript\nplatforms: {\n  google: {\n    enabled: true,\n    models: {\n      'gemini-flash': {\n        enabled: true,\n        label: 'Gemini Flash',\n      },\n      'gemini-flash-thinking': {\n        enabled: true,\n        label: 'Gemini Flash Thinking',\n      },\n      'gemini-exp': {\n        enabled: false,\n        label: 'Gemini Exp',\n      },\n    },\n  },\n  openai: {\n    enabled: true,\n    models: {\n      'gpt-4o': {\n        enabled: false,\n        label: 'GPT-4o',\n      },\n      'o1-mini': {\n        enabled: false,\n        label: 'o1-mini',\n      },\n      'o1': {\n        enabled: false,\n        label: 'o1',\n      },\n    },\n  },\n  anthropic: {\n     enabled: true,\n    models: {\n      'claude-3-7-sonnet-latest': {\n        enabled: false,\n        label: 'Claude 3.7 Sonnet',\n      },\n      'claude-3-5-haiku-latest': {\n        enabled: false,\n        label: 'Claude 3.5 Haiku',\n      },\n    },\n  },\n  deepseek: {\n    enabled: true,\n    models: {\n      'chat': {\n        enabled: false,\n        label: 'DeepSeek V3',\n      },\n      'reasoner': {\n        enabled: false,\n        label: 'DeepSeek R1',\n      },\n    },\n  },\n  openrouter: {\n    enabled: true,\n    models: {\n      'openrouter\u002Fauto': {\n        enabled: false,\n        label: 'Auto',\n      },\n    },\n  },\n}\n```\n\nFor each platform:\n\n- `enabled`: Controls whether the platform is available\n- For each model:\n  - `enabled`: Controls whether the specific model is selectable\n  - `label`: The display name shown in the UI\n\nDisabled models will appear grayed out in the UI but remain visible to show all available options. This allows users to see the full range of available models while clearly indicating which ones are currently accessible.\n\nTo modify these settings, update the values in `lib\u002Fconfig.ts`. The changes will take effect after restarting the development server.\n\n### OpenRouter Integration\n\nOpenRouter provides access to various AI models through a unified API. By default, it's set to 'auto' mode which automatically selects the most suitable model, but you can configure it to use specific models of your choice by modifying the models section in the configuration.\n\n### Important Note for Reasoning Models\n\nWhen using advanced reasoning models like OpenAI's o1 or DeepSeek Reasoner, you may need to increase the serverless function duration limit as these models typically take longer to generate comprehensive reports. The default duration might not be sufficient.\n\nFor Vercel deployments, you can increase the duration limit in your `vercel.json`:\n\n```json\n{\n  \"functions\": {\n    \"app\u002Fapi\u002Freport\u002Froute.ts\": {\n      \"maxDuration\": 120\n    }\n  }\n}\n```\n\nOr modify the duration in your route file:\n\n```typescript\n\u002F\u002F In app\u002Fapi\u002Freport\u002Froute.ts\nexport const maxDuration = 120 \u002F\u002F Set to 120 seconds or higher\n```\n\nNote: The maximum duration limit may vary based on your hosting platform and subscription tier.\n\n### Local Models with Ollama\n\nThe app supports local model inference through Ollama integration. You can:\n\n1. Install [Ollama](https:\u002F\u002Follama.ai\u002F) on your machine\n2. Pull your preferred models using `ollama pull model-name`\n3. Configure the model in `lib\u002Fconfig.ts`:\n\n```typescript\nplatforms: {\n  ollama: {\n    enabled: true,\n    models: {\n      'your-model-name': {\n        enabled: true,\n        label: 'Your Model Display Name'\n      }\n    }\n  }\n}\n```\n\nLocal models through Ollama bypass rate limiting since they run on your machine. This makes them perfect for development, testing, or when you need unlimited generations.\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 20+\n- npm, yarn, pnpm, or bun\n\n### Installation\n\n1. Clone the repository:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbtahir\u002Fopen-deep-research\ncd open-deep-research\n```\n\n2. Install dependencies:\n\n```bash\nnpm install\n# or\nyarn install\n# or\npnpm install\n# or\nbun install\n```\n\n3. Create a `.env.local` file in the root directory:\n\n```env\n# Google Gemini Pro API key (required for AI report generation)\nGEMINI_API_KEY=your_gemini_api_key\n\n# OpenAI API key (optional - required only if OpenAI models are enabled)\nOPENAI_API_KEY=your_openai_api_key\n\n# Anthropic API key (optional - required only if Anthropic models are enabled)\nANTHROPIC_API_KEY=your_anthropic_api_key\n\n# DeepSeek API key (optional - required only if DeepSeek models are enabled)\nDEEPSEEK_API_KEY=your_deepseek_api_key\n\n# OpenRouter API Key (Optional - if using OpenRouter as AI platform)\nOPENROUTER_API_KEY=\"your-openrouter-api-key\"\n\n# Upstash Redis (required for rate limiting)\nUPSTASH_REDIS_REST_URL=your_upstash_redis_url\nUPSTASH_REDIS_REST_TOKEN=your_upstash_redis_token\n\n# Bing Search API (Optional - if using Bing as search provider)\nAZURE_SUB_KEY=\"your-azure-subscription-key\"\n\n# Google Custom Search API (Optional - if using Google as search provider)\nGOOGLE_SEARCH_API_KEY=\"your-google-search-api-key\"\nGOOGLE_SEARCH_CX=\"your-google-search-cx\"\n\n# EXA API Key (Optional - if using EXA as search provider)\nEXA_API_KEY=\"your-exa-api-key\"\n```\n\nNote: You only need to provide API keys for the platforms you plan to use. If a platform is enabled in the config but its API key is missing, those models will appear disabled in the UI.\n\n### Running the Application\n\nYou can run the application either directly on your machine or using Docker.\n\n#### Option 1: Traditional Setup\n\n1. Start the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n# or\npnpm dev\n# or\nbun dev\n```\n\n2. Open [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000) in your browser.\n\n#### Option 2: Docker Setup\n\nIf you prefer using Docker, you can build and run the application in a container after setting up your environment variables:\n\n1. Build the Docker image:\n\n```bash\ndocker build -t open-deep-research:v1 .\n```\n\n2. Run the container:\n\n```bash\ndocker run -p 3000:3000 open-deep-research\n```\n\nThe application will be available at [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000).\n\n### Getting API Keys\n\n#### Azure Bing Search API\n\n1. Go to [Azure Portal](https:\u002F\u002Fportal.azure.com)\n2. Create a Bing Search resource\n3. Get the subscription key from \"Keys and Endpoint\"\n\n#### Google Custom Search API\n\nYou'll need two components to use Google Custom Search:\n\n1. **Get API Key**:\n\n   - Visit [Get a Key](https:\u002F\u002Fdevelopers.google.com\u002Fcustom-search\u002Fv1\u002Fintroduction) page\n   - Follow the prompts to get your API key\n   - Copy it for the `GOOGLE_SEARCH_API_KEY` environment variable\n\n2. **Get Search Engine ID (CX)**:\n   - Visit [Programmable Search Engine Control Panel](https:\u002F\u002Fprogrammablesearchengine.google.com\u002Fcontrolpanel\u002Fcreate)\n   - Create a new search engine\n   - After creation, find your Search Engine ID in the \"Overview\" page's \"Basic\" section\n   - Copy the ID (this is the `cx` parameter) for the `GOOGLE_SEARCH_CX` environment variable\n\n#### EXA API Key\n\n1. Visit [EXA Platform](https:\u002F\u002Fexa.ai\u002F)\n2. Sign up or log in to your account\n3. Go to API Keys section\n4. Create a new API key\n\n#### Google Gemini API Key\n\n1. Visit [Google AI Studio](https:\u002F\u002Fmakersuite.google.com\u002Fapp\u002Fapikey)\n2. Create an API key\n3. Copy the API key\n\n#### OpenAI API Key\n\n1. Visit [OpenAI Platform](https:\u002F\u002Fplatform.openai.com)\n2. Sign up or log in to your account\n3. Go to API Keys section\n4. Create a new API key\n\n#### Anthropic API Key\n\n1. Visit [Anthropic Console](https:\u002F\u002Fconsole.anthropic.com)\n2. Sign up or log in to your account\n3. Go to API Keys section\n4. Create a new API key\n\n#### DeepSeek API Key\n\n1. Visit [DeepSeek Platform](https:\u002F\u002Fplatform.deepseek.com)\n2. Sign up or log in to your account\n3. Go to API Keys section\n4. Create a new API key\n\n#### OpenRouter API Key\n\n1. Visit [OpenRouter Platform](https:\u002F\u002Fopenrouter.ai\u002F)\n2. Sign up or log in to your account\n3. Go to API Keys section\n4. Create a new API key\n\n#### Upstash Redis\n\n1. Sign up at [Upstash](https:\u002F\u002Fupstash.com)\n2. Create a new Redis database\n3. Copy the REST URL and REST Token\n\n## Tech Stack\n\n- [Next.js 15](https:\u002F\u002Fnextjs.org\u002F) - React framework\n- [TypeScript](https:\u002F\u002Fwww.typescriptlang.org\u002F) - Type safety\n- [Tailwind CSS](https:\u002F\u002Ftailwindcss.com\u002F) - Styling\n- [shadcn\u002Fui](https:\u002F\u002Fui.shadcn.com\u002F) - UI components\n- [JinaAI](https:\u002F\u002Fjina.ai\u002F) - Content extraction\n- [Azure Bing Search](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fbing\u002Fapis\u002Fbing-web-search-api) - Web search\n- [Google Custom Search](https:\u002F\u002Fdevelopers.google.com\u002Fcustom-search\u002Fv1\u002Foverview) - Web search\n- [Upstash Redis](https:\u002F\u002Fupstash.com\u002F) - Rate limiting\n- [jsPDF](https:\u002F\u002Fgithub.com\u002Fparallax\u002FjsPDF) & [docx](https:\u002F\u002Fgithub.com\u002Fdolanmiu\u002Fdocx) - Document generation\n\nThe app will use the configured provider (default: Google) for all searches. You can switch providers by updating the `provider` value in the config file.\n\n## Demo\n\nTry it out at: [Open Deep Research](https:\u002F\u002Fopendeepresearch.vercel.app\u002F)\n\n## Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\n## License\n\n[MIT](https:\u002F\u002Fgithub.com\u002Fbtahir\u002Fopen-deep-research\u002Fblob\u002Fmain\u002FLICENSE)\n\n## Acknowledgments\n\n- Inspired by Google's Gemini Deep Research feature\n- Built with amazing open source tools and APIs\n\n## Follow Me\n\nIf you're interested in following all the random projects I'm working on, you can find me on Twitter:\n\n[![Twitter Follow](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Fdeepwhitman?style=social)](https:\u002F\u002Fx.com\u002Fdeepwhitman)\n","# 开放式深度研究\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbtahir_open-deep-research_readme_fcc205c4864e.gif\" alt=\"开放式深度研究演示\" width=\"800\"\u002F>\n  \u003Cp>\u003Cem>注：为简洁起见，演示已加速播放\u003C\u002Fem>\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n一款功能强大的开源研究助手，能够根据网络搜索结果生成全面的AI驱动报告。与其他深度研究解决方案不同，它与多个AI平台无缝集成，包括Google、OpenAI、Anthropic、DeepSeek，甚至本地模型——让您自由选择最适合特定研究需求的AI模型。\n\n该应用分为三个关键步骤：\n\n1. **检索搜索结果**：通过可配置的Google自定义搜索或Bing搜索API，应用会为指定的搜索词获取全面的搜索结果。\n2. **内容提取**：借助JinaAI，它会提取并处理所选搜索结果的内容，确保信息准确且相关。\n3. **报告生成**：基于精选的搜索结果和提取的内容，应用会使用您选择的AI模型（如Gemini、GPT-4、Sonnet等）生成详细报告，提供贴合您自定义提示的深入且综合性的输出。\n4. **知识库**：将生成的报告保存到个人知识库中，方便日后查阅和快速检索。\n\n开放式深度研究结合了强大的工具，在一个用户友好的开源平台上简化了研究和报告制作流程。您可以根据自身需求自定义应用（选择偏好的搜索引擎、AI模型，自定义提示语、更新速率限制，并配置获取及选定的结果数量）。\n\n## 特性\n\n- 🔍 灵活的网络搜索，支持Google或Bing API\n- ⏱️ 按时间筛选搜索结果\n- 📄 从网页中提取内容\n- 🤖 多平台AI支持（Google Gemini、OpenAI GPT、Anthropic Sonnet）\n- 🎯 灵活的模型选择，支持精细化配置\n- 📊 多种导出格式（PDF、Word、文本）\n- 🧠 知识库，用于保存和访问过往报告\n- ⚡ 速率限制以保证稳定性\n- 📱 响应式设计\n\n### 本地文件支持\n\n该应用支持分析本地文件以进行研究和报告生成。您可以：\n\n- 直接通过界面上传TXT、PDF和DOCX文件\n- 将本地文档与网络搜索结果结合处理\n- 无需网络搜索即可从本地文件生成报告\n- 综合本地文件和网络来源的见解\n\n使用本地文件的步骤如下：\n\n1. 在搜索界面点击上传按钮（⬆️）\n2. 选择您的文件（支持格式：TXT、PDF、DOCX）\n3. 文件将作为自定义来源显示在您的搜索结果中\n4. 选择该文件并点击“生成报告”以分析其内容。\n\n### 知识库\n\n知识库功能允许您：\n\n- 保存生成的报告以供日后参考（报告存储在浏览器的本地存储中）\n- 访问您的研究历史\n- 快速加载和查看过往报告\n- 长期构建个人研究资料库\n\n### 流程：深度研究与报告整合\n\n\u003Cdiv align=\"center\">\n  \u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.loom.com\u002Fshare\u002F3c4d9811ac1d47eeaa7a0907c43aef7f\">🎥 在Loom上观看完整演示视频\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fdiv>\n\nFlow功能通过以下方式实现深度递归研究：\n\n- 创建包含相互关联报告的可视化研究流程\n- 根据初始研究结果生成后续查询\n- 通过递归探索深入特定主题\n- 将多个相关报告整合为综合性最终报告\n\n主要功能：\n\n- 🌳 **深度研究树**：从一个主题开始，自动生成相关的后续问题，以深入探讨各个层面\n- 🔄 **递归探索**：根据报告中的洞察生成新查询，沿着不同的“岔路”继续深入研究\n- 🔍 **可视化研究地图**：以图形化方式展示整个研究过程，清晰呈现不同研究路径之间的联系\n- 🎯 **智能查询生成**：基于报告内容由AI自动推导出后续研究问题\n- 🔗 **报告整合**：选择多个相关报告，将其合并为一份综合性最终报告\n- 📊 **交互式界面**：直观地拖动、排列和组织您的研究流程\n\nFlow界面使操作变得简单易行：\n\n1. 从初始研究查询开始\n2. 审查并选择相关的搜索结果\n3. 从选定的来源生成详细报告\n4. 获取AI建议的后续问题，以进一步深入探索\n5. 根据这些问题创建新的研究分支\n6. 最后，将相关报告整合为综合性摘要\n\n此功能非常适合：\n\n- 需要深入探索相互关联主题的学术研究\n- 需要多角度调查的市场研究\n- 需要递归深入分析的复杂主题研究\n- 任何需要“顺藤摸瓜”追踪信息的研究任务\n\n## 配置\n\n应用的设置可通过`lib\u002Fconfig.ts`配置文件进行自定义。以下是您可以调整的关键参数：\n\n### 速率限制\n\n控制不同操作每分钟允许的请求数量和速率限制：\n\n```typescript\nrateLimits: {\n  enabled: true,         \u002F\u002F 启用或禁用速率限制（设为false可跳过Redis设置）\n  search: 5,            \u002F\u002F 每分钟允许的搜索请求数\n  contentFetch: 20,     \u002F\u002F 每分钟允许的抓取内容请求数\n  reportGeneration: 5,  \u002F\u002F 每分钟允许的报告生成请求数\n}\n```\n\n注意：如果将`enabled`设置为`false`，则无需设置Redis即可运行应用程序。这在本地开发或不需要速率限制时非常有用。\n\n### 搜索提供商配置\n\n该应用同时支持Google自定义搜索和Bing搜索API。您可以在`lib\u002Fconfig.ts`中配置首选的搜索提供商：\n\n```typescript\nsearch: {\n  resultsPerPage: 10,\n  maxSelectableResults: 3,\n  provider: 'google', \u002F\u002F 'google'或'bing'\n  safeSearch: {\n    google: 'active',  \u002F\u002F 'active'或'off'\n    bing: 'moderate'   \u002F\u002F 'moderate'、'strict'或'off'\n  },\n  market: 'en-US',\n}\n```\n\n使用Google自定义搜索的步骤如下：\n\n1. 从[Google Cloud Console](https:\u002F\u002Fconsole.cloud.google.com\u002F)获取API密钥\n2. 创建自定义搜索引擎，并从[Google Programmable Search](https:\u002F\u002Fprogrammablesearchengine.google.com\u002F)获取CX ID\n3. 将凭据添加到`.env.local`文件中：\n\n```bash\nGOOGLE_SEARCH_API_KEY=\"your-api-key\"\nGOOGLE_SEARCH_CX=\"your-cx-id\"\n```\n\n使用Bing搜索的步骤如下：\n\n1. 从[Azure门户](https:\u002F\u002Fportal.azure.com\u002F)获取API密钥\n2. 将凭据添加到`.env.local`文件中：\n\n```bash\nAZURE_SUB_KEY=\"your-azure-key\"\n```\n\n### 知识库\n\n知识库功能允许您通过以下方式构建个人研究库：\n\n- 保存生成的报告及其原始搜索查询\n- 即时访问和加载过往报告\n- 构建可搜索的研究档案\n- 在不同研究会话之间保持上下文连贯性\n\n保存到知识库中的报告包括：\n\n- 包含所有部分的完整报告内容\n- 原始搜索查询和提示\n- 来源网址和参考文献\n- 生成时间戳\n\n您可以通过界面中的专用按钮访问知识库，该按钮会打开一个包含所有已保存报告的侧边栏。\n\n### AI 平台设置\n\n您可以配置哪些 AI 平台和模型可用。该应用支持多个 AI 平台（Google、OpenAI、Anthropic、DeepSeek），每个平台下又有多种模型可供选择。您可以根据需求启用或禁用不同的平台及个别模型：\n\n```typescript\nplatforms: {\n  google: {\n    enabled: true,\n    models: {\n      'gemini-flash': {\n        enabled: true,\n        label: 'Gemini Flash',\n      },\n      'gemini-flash-thinking': {\n        enabled: true,\n        label: 'Gemini Flash Thinking',\n      },\n      'gemini-exp': {\n        enabled: false,\n        label: 'Gemini Exp',\n      },\n    },\n  },\n  openai: {\n    enabled: true,\n    models: {\n      'gpt-4o': {\n        enabled: false,\n        label: 'GPT-4o',\n      },\n      'o1-mini': {\n        enabled: false,\n        label: 'o1-mini',\n      },\n      'o1': {\n        enabled: false,\n        label: 'o1',\n      },\n    },\n  },\n  anthropic: {\n     enabled: true,\n    models: {\n      'claude-3-7-sonnet-latest': {\n        enabled: false,\n        label: 'Claude 3.7 Sonnet',\n      },\n      'claude-3-5-haiku-latest': {\n        enabled: false,\n        label: 'Claude 3.5 Haiku',\n      },\n    },\n  },\n  deepseek: {\n    enabled: true,\n    models: {\n      'chat': {\n        enabled: false,\n        label: 'DeepSeek V3',\n      },\n      'reasoner': {\n        enabled: false,\n        label: 'DeepSeek R1',\n      },\n    },\n  },\n  openrouter: {\n    enabled: true,\n    models: {\n      'openrouter\u002Fauto': {\n        enabled: false,\n        label: 'Auto',\n      },\n    },\n  },\n}\n```\n\n对于每个平台：\n\n- `enabled`：控制该平台是否可用\n- 对于每个模型：\n  - `enabled`：控制该特定模型是否可选\n  - `label`：在界面上显示的名称\n\n被禁用的模型会在界面上以灰色显示，但仍会保留可见状态，以便展示所有可用选项。这样用户可以看到全部可用模型，同时清楚地知道当前哪些模型可以使用。\n\n要修改这些设置，请更新 `lib\u002Fconfig.ts` 文件中的值。更改将在重启开发服务器后生效。\n\n### OpenRouter 集成\n\nOpenRouter 提供了一个统一的 API，用于访问各种 AI 模型。默认情况下，它处于“auto”模式，会自动选择最合适的模型；但您也可以通过修改配置文件中的模型部分，来指定使用特定的模型。\n\n### 关于推理模型的重要提示\n\n当使用高级推理模型（如 OpenAI 的 o1 或 DeepSeek Reasoner）时，可能需要增加无服务器函数的执行时长限制，因为这些模型通常需要更长时间才能生成完整的报告。默认的执行时长可能不足以完成任务。\n\n对于 Vercel 部署，您可以在 `vercel.json` 中增加执行时长限制：\n\n```json\n{\n  \"functions\": {\n    \"app\u002Fapi\u002Freport\u002Froute.ts\": {\n      \"maxDuration\": 120\n    }\n  }\n}\n```\n\n或者直接在路由文件中修改执行时长：\n\n```typescript\n\u002F\u002F 在 app\u002Fapi\u002Freport\u002Froute.ts 中\nexport const maxDuration = 120 \u002F\u002F 设置为 120 秒或更长\n```\n\n请注意：最大执行时长限制可能因您的托管平台和订阅层级而异。\n\n### 使用 Ollama 运行本地模型\n\n该应用支持通过 Ollama 集成进行本地模型推理。您可以按照以下步骤操作：\n\n1. 在您的机器上安装 [Ollama](https:\u002F\u002Follama.ai\u002F)。\n2. 使用 `ollama pull model-name` 下载您喜欢的模型。\n3. 在 `lib\u002Fconfig.ts` 中配置该模型：\n\n```typescript\nplatforms: {\n  ollama: {\n    enabled: true,\n    models: {\n      'your-model-name': {\n        enabled: true,\n        label: '您的模型显示名称'\n      }\n    }\n  }\n}\n```\n\n通过 Ollama 运行的本地模型不会受到速率限制，因为它们是在您的本地机器上执行的。这使得它们非常适合开发、测试，或者在需要无限次生成时使用。\n\n## 开始使用\n\n### 先决条件\n\n- Node.js 20 或更高版本\n- npm、yarn、pnpm 或 bun\n\n### 安装步骤\n\n1. 克隆仓库：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbtahir\u002Fopen-deep-research\ncd open-deep-research\n```\n\n2. 安装依赖项：\n\n```bash\nnpm install\n# 或者\nyarn install\n# 或者\npnpm install\n# 或者\nbun install\n```\n\n3. 在项目根目录下创建 `.env.local` 文件：\n\n```env\n# Google Gemini Pro API 密钥（生成 AI 报告所必需）\nGEMINI_API_KEY=your_gemini_api_key\n\n# OpenAI API 密钥（可选——仅在启用 OpenAI 模型时需要）\nOPENAI_API_KEY=your_openai_api_key\n\n# Anthropic API 密钥（可选——仅在启用 Anthropic 模型时需要）\nANTHROPIC_API_KEY=your_anthropic_api_key\n\n# DeepSeek API 密钥（可选——仅在启用 DeepSeek 模型时需要）\nDEEPSEEK_API_KEY=your_deepseek_api_key\n\n# OpenRouter API 密钥（可选——如果将 OpenRouter 作为 AI 平台使用时需要）\nOPENROUTER_API_KEY=your-openrouter-api-key\n\n# Upstash Redis（用于速率限制，必需）\nUPSTASH_REDIS_REST_URL=your_upstash_redis_url\nUPSTASH_REDIS_REST_TOKEN=your_upstash_redis_token\n\n# Bing 搜索 API（可选——如果使用 Bing 作为搜索引擎时需要）\nAZURE_SUB_KEY=your-azure-subscription-key\n\n# Google 自定义搜索 API（可选——如果使用 Google 作为搜索引擎时需要）\nGOOGLE_SEARCH_API_KEY=your-google-search-api-key\nGOOGLE_SEARCH_CX=your-google-search-cx\n\n# EXA API 密钥（可选——如果使用 EXA 作为搜索引擎时需要）\nEXA_API_KEY=your-exa-api-key\n```\n\n注意：您只需提供计划使用的平台的 API 密钥。如果某个平台在配置中已启用，但缺少其 API 密钥，则该平台下的所有模型将在界面上显示为禁用状态。\n\n### 运行应用程序\n\n您可以通过在本地直接运行或使用 Docker 来启动应用程序。\n\n#### 选项 1：传统部署\n\n1. 启动开发服务器：\n\n```bash\nnpm run dev\n# 或者\nyarn dev\n# 或者\npnpm dev\n# 或者\nbun dev\n```\n\n2. 打开浏览器并访问 [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000)。\n\n#### 选项 2：Docker 部署\n\n如果您更倾向于使用 Docker，可以在设置好环境变量后，构建并运行容器：\n\n1. 构建 Docker 镜像：\n\n```bash\ndocker build -t open-deep-research:v1 .\n```\n\n2. 运行容器：\n\n```bash\ndocker run -p 3000:3000 open-deep-research\n```\n\n应用程序将可在 [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000) 访问。\n\n### 获取 API 密钥\n\n#### Azure Bing 搜索 API\n\n1. 前往 [Azure 门户](https:\u002F\u002Fportal.azure.com)\n2. 创建一个 Bing 搜索资源\n3. 从“密钥和终结点”中获取订阅密钥\n\n#### Google 自定义搜索 API\n\n使用 Google 自定义搜索需要两个组件：\n\n1. **获取 API 密钥**：\n\n   - 访问 [获取密钥](https:\u002F\u002Fdevelopers.google.com\u002Fcustom-search\u002Fv1\u002Fintroduction) 页面\n   - 按照提示获取您的 API 密钥\n   - 将其复制到 `GOOGLE_SEARCH_API_KEY` 环境变量中\n\n2. **获取搜索引擎 ID (CX)**：\n   - 访问 [可编程搜索引擎控制面板](https:\u002F\u002Fprogrammablesearchengine.google.com\u002Fcontrolpanel\u002Fcreate)\n   - 创建一个新的搜索引擎\n   - 创建完成后，在“概览”页面的“基本”部分找到您的搜索引擎 ID\n   - 将该 ID（即 `cx` 参数）复制到 `GOOGLE_SEARCH_CX` 环境变量中\n\n#### EXA API 密钥\n\n1. 访问 [EXA 平台](https:\u002F\u002Fexa.ai\u002F)\n2. 注册或登录您的账户\n3. 进入 API 密钥部分\n4. 创建一个新的 API 密钥\n\n#### Google Gemini API 密钥\n\n1. 访问 [Google AI Studio](https:\u002F\u002Fmakersuite.google.com\u002Fapp\u002Fapikey)\n2. 创建一个 API 密钥\n3. 复制该 API 密钥\n\n#### OpenAI API 密钥\n\n1. 访问 [OpenAI 平台](https:\u002F\u002Fplatform.openai.com)\n2. 注册或登录您的账户\n3. 进入 API 密钥部分\n4. 创建一个新的 API 密钥\n\n#### Anthropic API 密钥\n\n1. 访问 [Anthropic 控制台](https:\u002F\u002Fconsole.anthropic.com)\n2. 注册或登录您的账户\n3. 进入 API 密钥部分\n4. 创建一个新的 API 密钥\n\n#### DeepSeek API 密钥\n\n1. 访问 [DeepSeek 平台](https:\u002F\u002Fplatform.deepseek.com)\n2. 注册或登录您的账户\n3. 还原 API 密钥部分\n4. 创建一个新的 API 密钥\n\n#### OpenRouter API 密钥\n\n1. 访问 [OpenRouter 平台](https:\u002F\u002Fopenrouter.ai\u002F)\n2. 注册或登录您的账户\n3. 还原 API 密钥部分\n4. 创建一个新的 API 密钥\n\n#### Upstash Redis\n\n1. 在 [Upstash](https:\u002F\u002Fupstash.com) 注册\n2. 创建一个新的 Redis 数据库\n3. 复制 REST URL 和 REST Token\n\n## 技术栈\n\n- [Next.js 15](https:\u002F\u002Fnextjs.org\u002F) - React 框架\n- [TypeScript](https:\u002F\u002Fwww.typescriptlang.org\u002F) - 类型安全\n- [Tailwind CSS](https:\u002F\u002Ftailwindcss.com\u002F) - 样式化\n- [shadcn\u002Fui](https:\u002F\u002Fui.shadcn.com\u002F) - UI 组件\n- [JinaAI](https:\u002F\u002Fjina.ai\u002F) - 内容提取\n- [Azure Bing 搜索](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fbing\u002Fapis\u002Fbing-web-search-api) - 网页搜索\n- [Google 自定义搜索](https:\u002F\u002Fdevelopers.google.com\u002Fcustom-search\u002Fv1\u002Foverview) - 网页搜索\n- [Upstash Redis](https:\u002F\u002Fupstash.com\u002F) - 速率限制\n- [jsPDF](https:\u002F\u002Fgithub.com\u002Fparallax\u002FjsPDF) 和 [docx](https:\u002F\u002Fgithub.com\u002Fdolanmiu\u002Fdocx) - 文档生成\n\n该应用将使用配置的提供商（默认：Google）进行所有搜索。您可以通过更新配置文件中的 `provider` 值来切换提供商。\n\n## 演示\n\n请在以下地址试用：[Open Deep Research](https:\u002F\u002Fopendeepresearch.vercel.app\u002F)\n\n## 贡献\n\n欢迎提交拉取请求。对于重大更改，请先打开一个问题，讨论您想要进行的修改。\n\n## 许可证\n\n[MIT](https:\u002F\u002Fgithub.com\u002Fbtahir\u002Fopen-deep-research\u002Fblob\u002Fmain\u002FLICENSE)\n\n## 致谢\n\n- 受 Google Gemini Deep Research 功能启发\n- 使用出色的开源工具和 API 构建\n\n## 关注我\n\n如果您对关注我正在进行的各种项目感兴趣，可以在 Twitter 上找到我：\n\n[![Twitter 关注](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Fdeepwhitman?style=social)](https:\u002F\u002Fx.com\u002Fdeepwhitman)","# Open Deep Research 快速上手指南\n\nOpen Deep Research 是一款强大的开源研究助手，能够基于网络搜索结果生成全面的 AI 驱动报告。它支持无缝集成 Google、OpenAI、Anthropic、DeepSeek 以及本地模型（Ollama），并提供灵活的搜索配置、知识库管理及深度递归研究功能。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Windows, macOS, 或 Linux\n*   **Node.js**：版本 20 或更高 (`node -v` 检查)\n*   **包管理器**：npm, yarn, pnpm 或 bun (任选其一)\n*   **API 密钥**：\n    *   **必选**：至少需要一个 AI 模型密钥（推荐 Google Gemini，免费额度充足）。\n    *   **可选**：搜索引擎密钥（Google Custom Search 或 Bing Search API），若不配置则无法进行联网搜索（但仍可分析本地文件）。\n    *   **可选**：Upstash Redis（用于速率限制，本地开发可跳过）。\n\n## 安装步骤\n\n### 1. 克隆项目\n将代码仓库克隆到本地并进入目录：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbtahir\u002Fopen-deep-research\ncd open-deep-research\n```\n\n### 2. 安装依赖\n使用您喜欢的包管理器安装依赖（国内用户建议使用淘宝镜像加速）：\n\n```bash\n# 使用 npm (推荐国内用户使用 cnpm 或设置 registry)\nnpm install --registry=https:\u002F\u002Fregistry.npmmirror.com\n\n# 或者使用 yarn\nyarn install --registry=https:\u002F\u002Fregistry.npmmirror.com\n\n# 或者使用 pnpm\npnpm install --registry=https:\u002F\u002Fregistry.npmmirror.com\n\n# 或者使用 bun\nbun install\n```\n\n### 3. 配置环境变量\n在项目根目录创建 `.env.local` 文件，并填入您的 API 密钥。\n\n```bash\ncp .env.example .env.local\n```\n\n编辑 `.env.local` 文件，至少配置一个 AI 模型密钥（以下为示例）：\n\n```env\n# Google Gemini API Key (推荐，用于生成报告)\nGEMINI_API_KEY=your_gemini_api_key\n\n# OpenAI API Key (可选)\nOPENAI_API_KEY=your_openai_api_key\n\n# Anthropic API Key (可选)\nANTHROPIC_API_KEY=your_anthropic_api_key\n\n# DeepSeek API Key (可选)\nDEEPSEEK_API_KEY=your_deepseek_api_key\n\n# Google Custom Search 配置 (可选，若需联网搜索)\nGOOGLE_SEARCH_API_KEY=your_google_search_api_key\nGOOGLE_SEARCH_CX=your_google_cx_id\n\n# Upstash Redis (可选，本地开发可留空或设为 false 以禁用限流)\nUPSTASH_REDIS_REST_URL=your_upstash_url\nUPSTASH_REDIS_REST_TOKEN=your_upstash_token\n```\n\n> **提示**：若仅用于本地测试且不需要速率限制，可在 `lib\u002Fconfig.ts` 中将 `rateLimits.enabled` 设置为 `false`，此时无需配置 Redis。\n\n### 4. 启动开发服务器\n运行以下命令启动应用：\n\n```bash\nnpm run dev\n# 或\nyarn dev\n# 或\npnpm dev\n# 或\nbun dev\n```\n\n启动成功后，通常在浏览器访问 `http:\u002F\u002Flocalhost:3000` 即可看到界面。\n\n## 基本使用\n\n### 1. 执行首次研究\n1.  在首页搜索框中输入您的研究主题（例如：\"2024 年人工智能发展趋势”）。\n2.  **选择来源**：系统会自动拉取搜索结果，您可以勾选相关的网页链接。\n    *   *本地文件支持*：点击上传按钮 (⬆️)，可直接上传 TXT、PDF 或 DOCX 文件作为研究素材，甚至可以不进行网络搜索仅分析本地文档。\n3.  **选择模型**：在设置中选择您配置的 AI 模型（如 Gemini Flash, GPT-4o, Claude 3.5 Sonnet 等）。\n4.  点击 **\"Generate Report\"** 生成详细研究报告。\n\n### 2. 查看与管理报告\n*   生成的报告将显示在界面中，支持导出为 PDF、Word 或纯文本格式。\n*   报告会自动保存到右侧的 **Knowledge Base (知识库)** 中，方便后续随时查阅和历史追溯。\n\n### 3. 进阶：深度研究流 (Flow)\n对于复杂课题，可以使用 **Flow** 功能进行递归研究：\n1.  生成初始报告后，系统会由 AI 建议后续的深入问题。\n2.  点击建议问题创建新的研究分支，形成“研究树”。\n3.  最后可选中多个相关报告，使用 **Consolidate** 功能合并成一份终极综合报告。\n\n### 4. 自定义配置 (可选)\n如需修改搜索引擎提供商、启用\u002F禁用特定模型或调整速率限制，请编辑 `lib\u002Fconfig.ts` 文件并重启开发服务器。\n\n```typescript\n\u002F\u002F 示例：lib\u002Fconfig.ts 中启用 Bing 搜索\nsearch: {\n  provider: 'bing', \u002F\u002F 改为 'bing'\n  \u002F\u002F ... 其他配置\n}\n```","某科技公司的市场分析师需要在两天内完成一份关于“全球固态电池技术突破与主要厂商布局”的深度竞品分析报告，以支持高层战略决策。\n\n### 没有 open-deep-research 时\n- **信息搜集碎片化**：需手动在 Google 和 Bing 反复切换关键词搜索，耗时数小时筛选几十篇新闻和技术文档，极易遗漏关键数据。\n- **内容消化效率低**：面对大量付费墙阻挡或格式杂乱的网页，只能人工复制粘贴并清洗文本，难以快速提取核心参数和观点。\n- **洞察整合困难**：缺乏统一框架将零散的搜索结果串联成逻辑严密的报告，最终产出往往只是资料堆砌，缺乏深度综合研判。\n- **知识复用缺失**：报告完成后散落在本地文件夹，后续遇到类似课题无法快速回溯历史调研路径和原始素材。\n\n### 使用 open-deep-research 后\n- **自动化全域检索**：配置好 API 后，open-deep-research 自动并发调用搜索引擎，按时间过滤并精准抓取最新技术动态，将搜集时间从数小时压缩至几分钟。\n- **智能内容萃取**：利用内置的 JinaAI 引擎，工具自动绕过付费墙提取正文，清洗无关广告，直接输出结构化的高质量语料供模型分析。\n- **深度报告生成**：选定 Claude Sonnet 或 GPT-4 等模型，结合自定义提示词，工具将多源信息合成一份包含趋势预测、厂商对比及风险提示的完整报告。\n- **构建个人知识库**：生成的报告自动存入本地知识库，形成可追溯的研究树，支持随时调取过往数据或通过\"Flow\"功能发起递归式深度追问。\n\nopen-deep-research 将原本需要数天的人工调研工作流缩短为小时级，让研究者从繁琐的信息搬运工转型为真正的策略洞察者。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbtahir_open-deep-research_fcc205c4.gif","btahir","Bilal","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fbtahir_4c1eddb4.png","A Hacky Hacker",null,"Seattle","deepwhitman","https:\u002F\u002Fwww.hackyexperiments.com\u002F","https:\u002F\u002Fgithub.com\u002Fbtahir",[83,87,91,95],{"name":84,"color":85,"percentage":86},"TypeScript","#3178c6",98.9,{"name":88,"color":89,"percentage":90},"CSS","#663399",0.8,{"name":92,"color":93,"percentage":94},"JavaScript","#f1e05a",0.2,{"name":96,"color":97,"percentage":98},"Dockerfile","#384d54",0.1,2131,197,"2026-04-16T11:31:53","MIT","Linux, macOS, Windows","非必需（仅在使用本地 Ollama 模型且该模型需要 GPU 加速时才涉及，README 未指定具体型号）","未说明",{"notes":107,"python":108,"dependencies":109},"该项目是基于 Node.js 的 Web 应用，非 Python 项目。核心运行环境需安装 Node.js 20+ 版本。若启用速率限制功能需配置 Upstash Redis；若使用本地模型需安装 Ollama。使用 Google 或 Bing 搜索及各类 AI 模型（Gemini, GPT-4, Claude 等）需在 .env.local 文件中配置对应的 API Key。若部署在 Vercel 等 Serverless 平台并使用推理模型，需调整函数最大执行时长限制。","不需要 (基于 Node.js)",[110,111,112],"Node.js 20+","npm\u002Fyarn\u002Fpnpm\u002Fbun","Redis (可选，用于速率限制)",[35,13],"2026-03-27T02:49:30.150509","2026-04-19T03:05:10.838839",[117,122,127,132,137,142,147],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},41202,"点击搜索按钮时出现 \"Unexpected token '\u003C', ... is not valid JSON\" 错误怎么办？","这通常是因为配置问题或 API 连接失败。请尝试以下解决方案：\n1. 检查是否已在配置文件中正确添加了模型配置（例如 Ollama）。\n2. 确保已将所需的模型拉取到本地设备（例如运行 `ollama pull \u003Cmodel-name>`）。\n3. 如果使用了 Redis 但禁用了速率限制，尝试填写 Redis 配置（UPSTASH_REDIS_REST_URL 和 UPSTASH_REDIS_REST_TOKEN），即使禁用了速率限制，代码可能仍会尝试读取该配置。\n4. 仔细阅读 README 文档，确认所有环境变量已正确设置。","https:\u002F\u002Fgithub.com\u002Fbtahir\u002Fopen-deep-research\u002Fissues\u002F11",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},41203,"在使用非 Gemini 模型时，Agent 模式报错或无法工作如何解决？","早期版本中，Agent 模式（用于优化查询构建和搜索结果选择）硬编码为仅使用 Gemini 模型，导致其他模型用户报错。维护者已更新代码，现在应支持任何选定的模型。如果您仍遇到此问题，请确保您使用的是最新版本的代码。目前常规流程支持任何模型，但 Agent 模式的兼容性取决于具体版本。","https:\u002F\u002Fgithub.com\u002Fbtahir\u002Fopen-deep-research\u002Fissues\u002F21",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},41204,"如何部署和运行 Docker 容器？","项目已支持 Docker。您可以按照以下步骤在本地构建并运行：\n1. 在克隆的仓库根目录下创建 `.env.local` 文件，并填入必要的环境变量（如 API Key）。\n2. 构建 Docker 镜像：\n   ```bash\n   docker build -t open-deep-research:v1 .\n   ```\n3. 运行容器并映射端口：\n   ```bash\n   docker run -p 3000:3000 open-deep-research\n   ```\n注意：目前不提供预构建的 Docker Compose 文件，因为对于此类脚本来说可能过于复杂，但您可以自行编写。","https:\u002F\u002Fgithub.com\u002Fbtahir\u002Fopen-deep-research\u002Fissues\u002F19",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},41205,"是否支持 OpenRouter、Ollama 或其他开源模型？","是的，项目已添加对 Ollama 和 OpenRouter 的支持。\n- **Ollama**: 可以在配置文件（如 `lib\u002Fconfig` 或 `config.ts`）中启用并指定模型，例如：\n  ```typescript\n  ollama: {\n    enabled: true,\n    models: {\n      'deepseek-r1:1.5b': { enabled: true, label: 'DeepSeek R1 1.5B' },\n    },\n  },\n  ```\n- **OpenRouter**: 同样可以在配置文件中配置指向您喜欢的模型。\n- **通用支持**: 大多数兼容 OpenAI 格式的推理提供商均可通过修改配置来使用。","https:\u002F\u002Fgithub.com\u002Fbtahir\u002Fopen-deep-research\u002Fissues\u002F1",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},41206,"如何使用本地文档（PDF、Word、TXT）进行研究？","项目已添加本地文件上传功能。您可以上传 txt、pdf 或 word 文档，这些文档的内容将会显示在搜索结果的最上方，从而被模型纳入上下文进行分析。直接在界面中寻找上传选项即可使用此功能。","https:\u002F\u002Fgithub.com\u002Fbtahir\u002Fopen-deep-research\u002Fissues\u002F20",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},41207,"为什么控制台报错提示正在读取 Redis 配置，即使我已经禁用了速率限制？","这是一个已知行为或潜在的配置依赖问题。即使您在逻辑上禁用了速率限制，底层代码（如 Redis 客户端初始化）可能仍会尝试读取 `UPSTASH_REDIS_REST_URL` 和 `UPSTASH_REDIS_REST_TOKEN` 环境变量。解决方法是：在 `.env.local` 文件中完整配置 Redis 相关变量，即使您并不实际使用 Redis 进行限流，这样可以避免初始化错误。","https:\u002F\u002Fgithub.com\u002Fbtahir\u002Fopen-deep-research\u002Fissues\u002F18",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},41208,"是否支持 LM Studio 或其他自定义 OpenAI 兼容接口？","虽然核心仓库主要集成了 Ollama 和 OpenRouter，但社区成员已提供了针对 LM Studio 的集成方案。由于几乎所有 LLM 推理提供商都支持 OpenAI 风格的聊天完成接口，您可以通过修改配置文件中的 API 端点（endpoint）、模型名称和 API Key 来适配 LM Studio 或其他服务。如果官方配置未直接列出，您可以参考社区的 Fork 版本或自行在配置中添加自定义模型条目。","https:\u002F\u002Fgithub.com\u002Fbtahir\u002Fopen-deep-research\u002Fissues\u002F7",[]]