[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-jina-ai--node-DeepResearch":3,"tool-jina-ai--node-DeepResearch":65},[4,23,32,40,49,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,2,"2026-04-10T11:13:16",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[19,14,18],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},5773,"cs-video-courses","Developer-Y\u002Fcs-video-courses","cs-video-courses 是一个精心整理的计算机科学视频课程清单，旨在为自学者提供系统化的学习路径。它汇集了全球知名高校（如加州大学伯克利分校、新南威尔士大学等）的完整课程录像，涵盖从编程基础、数据结构与算法，到操作系统、分布式系统、数据库等核心领域，并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。\n\n面对网络上零散且质量参差不齐的教学资源，cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容，仅收录真正的大学层级课程，排除了碎片化的简短教程或商业广告，确保用户能接触到严谨的学术内容。\n\n这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员，以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽，不仅包含传统的软件工程与网络安全，还细分了生成式 AI、大语言模型、计算生物学等新兴学科，并直接链接至官方视频播放列表，让用户能一站式获取高质量的教育资源，免费享受世界顶尖大学的课堂体验。",79792,"2026-04-08T22:03:59",[18,13,14,20],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":46,"last_commit_at":47,"category_tags":48,"status":22},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[17,13,20,19,18],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":46,"last_commit_at":55,"category_tags":56,"status":22},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",75832,"2026-04-17T21:58:25",[19,13,20,18],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":29,"last_commit_at":63,"category_tags":64,"status":22},3215,"awesome-machine-learning","josephmisiti\u002Fawesome-machine-learning","awesome-machine-learning 是一份精心整理的机器学习资源清单，汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点，这份清单按编程语言（如 Python、C++、Go 等）和应用场景（如计算机视觉、自然语言处理、深度学习等）进行了系统化分类，帮助使用者快速定位高质量项目。\n\n它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库，还是资深工程师对比不同语言的技术选型，都能从中获得极具价值的参考。此外，清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源，构建了从学习到实践的全链路支持体系。\n\n其独特亮点在于严格的维护标准：明确标记已停止维护或长期未更新的项目，确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”，awesome-machine-learning 以开源协作的方式持续更新，旨在降低技术探索门槛，让每一位从业者都能高效地站在巨人的肩膀上创新。",72149,"2026-04-03T21:50:24",[20,18],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":81,"owner_twitter":82,"owner_website":83,"owner_url":84,"languages":85,"stars":98,"forks":99,"last_commit_at":100,"license":101,"difficulty_score":10,"env_os":102,"env_gpu":103,"env_ram":104,"env_deps":105,"category_tags":112,"github_topics":113,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":22,"created_at":116,"updated_at":117,"faqs":118,"releases":154},9004,"jina-ai\u002Fnode-DeepResearch","node-DeepResearch","Keep searching, reading webpages, reasoning until it finds the answer (or exceeding the token budget)","node-DeepResearch 是一款专注于深度信息挖掘的开源 AI 工具。它不像其他模型那样致力于生成冗长的报告，而是通过“搜索 - 阅读 - 推理”的自动化循环，不断在网络上查找线索、研读网页内容并进行逻辑推导，直到找到确切答案或达到预设的资源上限。\n\n这一工具主要解决了传统搜索引擎难以处理复杂、多跳推理问题的痛点。当用户面对需要交叉验证多个来源、深入分析才能回答的疑问时，node-DeepResearch 能像人类研究员一样层层递进，提供精准且简练的结论，并附带详细的引用来源。\n\n它非常适合开发者集成到自己的应用中，也适合研究人员、分析师或任何需要快速获取高质量深度答案的用户。其独特的技术亮点在于采用了迭代式的工作流：先搜索关键词，再读取具体网页，接着由大语言模型（支持 Gemini、OpenAI 或本地模型）进行推理，若未得出满意结果则自动发起新一轮搜索。此外，它完全兼容 OpenAI API 标准，便于快速接入现有系统，同时结合 Jina Reader 实现了高效的网页内容提取，让深度调研变得简单高效。","# DeepResearch\n\n[Official UI](https:\u002F\u002Fsearch.jina.ai\u002F) | [UI Code](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdeepsearch-ui) | [Stable API](https:\u002F\u002Fjina.ai\u002Fdeepsearch) | [Blog](https:\u002F\u002Fjina.ai\u002Fnews\u002Fa-practical-guide-to-implementing-deepsearch-deepresearch)\n\nKeep searching, reading webpages, reasoning until an answer is found (or the token budget is exceeded). Useful for deeply investigating a query.\n\n> [!IMPORTANT]  \n> Unlike OpenAI\u002FGemini\u002FPerplexity's \"Deep Research\", we focus solely on **finding the right answers via our iterative process**. We don't optimize for long-form articles, that's a **completely different problem** – so if you need quick, concise answers from deep search, you're in the right place. If you're looking for AI-generated long reports like OpenAI\u002FGemini\u002FPerplexity does, this isn't for you.\n\n```mermaid\n---\nconfig:\n  theme: mc\n  look: handDrawn\n---\nflowchart LR\n subgraph Loop[\"until budget exceed\"]\n    direction LR\n        Search[\"Search\"]\n        Read[\"Read\"]\n        Reason[\"Reason\"]\n  end\n    Query([\"Query\"]) --> Loop\n    Search --> Read\n    Read --> Reason\n    Reason --> Search\n    Loop --> Answer([\"Answer\"])\n\n```\n\n## [Blog Post](https:\u002F\u002Fjina.ai\u002Fnews\u002Fa-practical-guide-to-implementing-deepsearch-deepresearch)\n\nWhether you like this implementation or not, I highly recommend you to read DeepSearch\u002FDeepResearch implementation guide I wrote, which gives you a gentle intro to this topic.\n\n- [English Part I](https:\u002F\u002Fjina.ai\u002Fnews\u002Fa-practical-guide-to-implementing-deepsearch-deepresearch), [Part II](https:\u002F\u002Fjina.ai\u002Fnews\u002Fsnippet-selection-and-url-ranking-in-deepsearch-deepresearch)\n- [中文微信公众号 第一讲](https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002F-pPhHDi2nz8hp5R3Lm_mww), [第二讲](https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002FapnorBj4TZs3-Mo23xUReQ)\n- [日本語: DeepSearch\u002FDeepResearch 実装の実践ガイド](https:\u002F\u002Fjina.ai\u002Fja\u002Fnews\u002Fa-practical-guide-to-implementing-deepsearch-deepresearch)\n\n## Try it Yourself\n\nWe host an online deployment of this **exact** codebase, which allows you to do a vibe-check; or use it as daily productivity tools.\n\nhttps:\u002F\u002Fsearch.jina.ai\n\nThe official API is also available for you to use:\n\n```\nhttps:\u002F\u002Fdeepsearch.jina.ai\u002Fv1\u002Fchat\u002Fcompletions\n```\n\nLearn more about the API at https:\u002F\u002Fjina.ai\u002Fdeepsearch\n\n\n\n\n## Install\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch.git\ncd node-DeepResearch\nnpm install\n```\n\n[安装部署视频教程 on Youtube](https:\u002F\u002Fyoutu.be\u002FvrpraFiPUyA)\n\nIt is also available on npm but not recommended for now, as the code is still under active development.\n\n\n## Usage\n\nWe use Gemini (latest `gemini-2.0-flash`) \u002F OpenAI \u002F [LocalLLM](#use-local-llm) for reasoning, [Jina Reader](https:\u002F\u002Fjina.ai\u002Freader) for searching and reading webpages, you can get a free API key with 1M tokens from jina.ai. \n\n```bash\nexport GEMINI_API_KEY=...  # for gemini\n# export OPENAI_API_KEY=... # for openai\n# export LLM_PROVIDER=openai # for openai\nexport JINA_API_KEY=jina_...  # free jina api key, get from https:\u002F\u002Fjina.ai\u002Freader\n\nnpm run dev $QUERY\n```\n\n### Official Site\n\nYou can try it on [our official site](https:\u002F\u002Fsearch.jina.ai).\n\n### Official API\n\nYou can also use [our official DeepSearch API](https:\u002F\u002Fjina.ai\u002Fdeepsearch):\n\n```\nhttps:\u002F\u002Fdeepsearch.jina.ai\u002Fv1\u002Fchat\u002Fcompletions\n```\n\nYou can use it with any OpenAI-compatible client. \n\nFor the authentication Bearer, API key, rate limit, get from https:\u002F\u002Fjina.ai\u002Fdeepsearch.\n\n#### Client integration guidelines\n\nIf you are building a web\u002Flocal\u002Fmobile client that uses `Jina DeepSearch API`, here are some design guidelines:\n- Our API is fully compatible with [OpenAI API schema](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fapi-reference\u002Fchat\u002Fcreate), this should greatly simplify the integration process. The model name is `jina-deepsearch-v1`.\n- Our DeepSearch API is a reasoning+search grounding LLM, so it's best for questions that require deep reasoning and search.\n- Two special tokens are introduced `\u003Cthink>...\u003C\u002Fthink>`. Please render them with care.\n- Citations are often provided, and in [Github-flavored markdown footnote format](https:\u002F\u002Fgithub.blog\u002Fchangelog\u002F2021-09-30-footnotes-now-supported-in-markdown-fields\u002F), e.g. `[^1]`, `[^2]`, ...\n- Guide the user to get a Jina API key from https:\u002F\u002Fjina.ai, with 1M free tokens for new API key.\n- There are rate limits, [between 10RPM to 30RPM depending on the API key tier](https:\u002F\u002Fjina.ai\u002Fcontact-sales#rate-limit).\n- [Download Jina AI logo here](https:\u002F\u002Fjina.ai\u002Flogo-Jina-1024.zip)\n\n## Demo\n> was recorded with `gemini-1.5-flash`, the latest `gemini-2.0-flash` leads to much better results!\n\nQuery: `\"what is the latest blog post's title from jina ai?\"`\n3 steps; answer is correct!\n![demo1](.github\u002Fvisuals\u002Fdemo.gif)\n\nQuery: `\"what is the context length of readerlm-v2?\"`\n2 steps; answer is correct!\n![demo1](.github\u002Fvisuals\u002Fdemo3.gif)\n\nQuery: `\"list all employees from jina ai that u can find, as many as possible\"` \n11 steps; partially correct! but im not in the list :(\n![demo1](.github\u002Fvisuals\u002Fdemo2.gif)\n\nQuery: `\"who will be the biggest competitor of Jina AI\"` \n42 steps; future prediction kind, so it's arguably correct! atm Im not seeing `weaviate` as a competitor, but im open for the future \"i told you so\" moment.\n![demo1](.github\u002Fvisuals\u002Fdemo4.gif)\n\nMore examples:\n\n```\n# example: no tool calling \nnpm run dev \"1+1=\"\nnpm run dev \"what is the capital of France?\"\n\n# example: 2-step\nnpm run dev \"what is the latest news from Jina AI?\"\n\n# example: 3-step\nnpm run dev \"what is the twitter account of jina ai's founder\"\n\n# example: 13-step, ambiguious question (no def of \"big\")\nnpm run dev \"who is bigger? cohere, jina ai, voyage?\"\n\n# example: open question, research-like, long chain of thoughts\nnpm run dev \"who will be president of US in 2028?\"\nnpm run dev \"what should be jina ai strategy for 2025?\"\n```\n\n## Use Local LLM\n\n> Note, not every LLM works with our reasoning flow, we need those who support structured output (sometimes called JSON Schema output, object output) well. Feel free to purpose a PR to add more open-source LLMs to the working list.\n\nIf you use Ollama or LMStudio, you can redirect the reasoning request to your local LLM by setting the following environment variables:\n\n```bash\nexport LLM_PROVIDER=openai  # yes, that's right - for local llm we still use openai client\nexport OPENAI_BASE_URL=http:\u002F\u002F127.0.0.1:1234\u002Fv1  # your local llm endpoint\nexport OPENAI_API_KEY=whatever  # random string would do, as we don't use it (unless your local LLM has authentication)\nexport DEFAULT_MODEL_NAME=qwen2.5-7b  # your local llm model name\n```\n\n\n## OpenAI-Compatible Server API\n\nIf you have a GUI client that supports OpenAI API (e.g. [CherryStudio](https:\u002F\u002Fdocs.cherry-ai.com\u002F), [Chatbox](https:\u002F\u002Fgithub.com\u002FBin-Huang\u002Fchatbox)) , you can simply config it to use this server.\n\n![demo1](.github\u002Fvisuals\u002Fdemo6.gif)\n\nStart the server:\n```bash\n# Without authentication\nnpm run serve\n\n# With authentication (clients must provide this secret as Bearer token)\nnpm run serve --secret=your_secret_token\n```\n\nThe server will start on http:\u002F\u002Flocalhost:3000 with the following endpoint:\n\n### POST \u002Fv1\u002Fchat\u002Fcompletions\n```bash\n# Without authentication\ncurl http:\u002F\u002Flocalhost:3000\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"jina-deepsearch-v1\",\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Hello!\"\n      }\n    ]\n  }'\n\n# With authentication (when server is started with --secret)\ncurl http:\u002F\u002Flocalhost:3000\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer your_secret_token\" \\\n  -d '{\n    \"model\": \"jina-deepsearch-v1\",\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Hello!\"\n      }\n    ],\n    \"stream\": true\n  }'\n```\n\nResponse format:\n```json\n{\n  \"id\": \"chatcmpl-123\",\n  \"object\": \"chat.completion\",\n  \"created\": 1677652288,\n  \"model\": \"jina-deepsearch-v1\",\n  \"system_fingerprint\": \"fp_44709d6fcb\",\n  \"choices\": [{\n    \"index\": 0,\n    \"message\": {\n      \"role\": \"assistant\",\n      \"content\": \"YOUR FINAL ANSWER\"\n    },\n    \"logprobs\": null,\n    \"finish_reason\": \"stop\"\n  }],\n  \"usage\": {\n    \"prompt_tokens\": 9,\n    \"completion_tokens\": 12,\n    \"total_tokens\": 21\n  }\n}\n```\n\nFor streaming responses (stream: true), the server sends chunks in this format:\n```json\n{\n  \"id\": \"chatcmpl-123\",\n  \"object\": \"chat.completion.chunk\",\n  \"created\": 1694268190,\n  \"model\": \"jina-deepsearch-v1\",\n  \"system_fingerprint\": \"fp_44709d6fcb\",\n  \"choices\": [{\n    \"index\": 0,\n    \"delta\": {\n      \"content\": \"...\"\n    },\n    \"logprobs\": null,\n    \"finish_reason\": null\n  }]\n}\n```\n\nNote: The think content in streaming responses is wrapped in XML tags:\n```\n\u003Cthink>\n[thinking steps...]\n\u003C\u002Fthink>\n[final answer]\n```\n\n\n## Docker Setup\n\n### Build Docker Image\nTo build the Docker image for the application, run the following command:\n```bash\ndocker build -t deepresearch:latest .\n```\n\n### Run Docker Container\nTo run the Docker container, use the following command:\n```bash\ndocker run -p 3000:3000 --env GEMINI_API_KEY=your_gemini_api_key --env JINA_API_KEY=your_jina_api_key deepresearch:latest\n```\n\n### Docker Compose\nYou can also use Docker Compose to manage multi-container applications. To start the application with Docker Compose, run:\n```bash\ndocker-compose up\n```\n\n## How Does it Work?\n\nNot sure a flowchart helps, but here it is:\n\n```mermaid\nflowchart TD\n    Start([Start]) --> Init[Initialize context & variables]\n    Init --> CheckBudget{Token budget\u003Cbr\u002F>exceeded?}\n    CheckBudget -->|No| GetQuestion[Get current question\u003Cbr\u002F>from gaps]\n    CheckBudget -->|Yes| BeastMode[Enter Beast Mode]\n\n    GetQuestion --> GenPrompt[Generate prompt]\n    GenPrompt --> ModelGen[Generate response\u003Cbr\u002F>using Gemini]\n    ModelGen --> ActionCheck{Check action\u003Cbr\u002F>type}\n\n    ActionCheck -->|answer| AnswerCheck{Is original\u003Cbr\u002F>question?}\n    AnswerCheck -->|Yes| EvalAnswer[Evaluate answer]\n    EvalAnswer --> IsGoodAnswer{Is answer\u003Cbr\u002F>definitive?}\n    IsGoodAnswer -->|Yes| HasRefs{Has\u003Cbr\u002F>references?}\n    HasRefs -->|Yes| End([End])\n    HasRefs -->|No| GetQuestion\n    IsGoodAnswer -->|No| StoreBad[Store bad attempt\u003Cbr\u002F>Reset context]\n    StoreBad --> GetQuestion\n\n    AnswerCheck -->|No| StoreKnowledge[Store as intermediate\u003Cbr\u002F>knowledge]\n    StoreKnowledge --> GetQuestion\n\n    ActionCheck -->|reflect| ProcessQuestions[Process new\u003Cbr\u002F>sub-questions]\n    ProcessQuestions --> DedupQuestions{New unique\u003Cbr\u002F>questions?}\n    DedupQuestions -->|Yes| AddGaps[Add to gaps queue]\n    DedupQuestions -->|No| DisableReflect[Disable reflect\u003Cbr\u002F>for next step]\n    AddGaps --> GetQuestion\n    DisableReflect --> GetQuestion\n\n    ActionCheck -->|search| SearchQuery[Execute search]\n    SearchQuery --> NewURLs{New URLs\u003Cbr\u002F>found?}\n    NewURLs -->|Yes| StoreURLs[Store URLs for\u003Cbr\u002F>future visits]\n    NewURLs -->|No| DisableSearch[Disable search\u003Cbr\u002F>for next step]\n    StoreURLs --> GetQuestion\n    DisableSearch --> GetQuestion\n\n    ActionCheck -->|visit| VisitURLs[Visit URLs]\n    VisitURLs --> NewContent{New content\u003Cbr\u002F>found?}\n    NewContent -->|Yes| StoreContent[Store content as\u003Cbr\u002F>knowledge]\n    NewContent -->|No| DisableVisit[Disable visit\u003Cbr\u002F>for next step]\n    StoreContent --> GetQuestion\n    DisableVisit --> GetQuestion\n\n    BeastMode --> FinalAnswer[Generate final answer] --> End\n```\n","# 深度研究\n\n[官方界面](https:\u002F\u002Fsearch.jina.ai\u002F) | [界面代码](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdeepsearch-ui) | [稳定 API](https:\u002F\u002Fjina.ai\u002Fdeepsearch) | [博客](https:\u002F\u002Fjina.ai\u002Fnews\u002Fa-practical-guide-to-implementing-deepsearch-deepresearch)\n\n持续搜索、阅读网页、推理，直到找到答案（或用完 token 预算）。适用于深入探究一个问题。\n\n> [!重要]  \n> 与 OpenAI\u002FGemini\u002FPerplexity 的“深度研究”不同，我们只专注于**通过迭代过程找到正确的答案**。我们并不优化生成长篇幅的文章——那是一个**完全不同的问题**——所以如果你需要从深度搜索中快速、简洁地获取答案，这里正是你所需要的。如果你想要像 OpenAI\u002FGemini\u002FPerplexity 那样由 AI 生成的长篇报告，那么这并不适合你。\n\n```mermaid\n---\nconfig:\n  theme: mc\n  look: handDrawn\n---\nflowchart LR\n subgraph Loop[\"直到预算用尽\"]\n    direction LR\n        Search[\"搜索\"]\n        Read[\"阅读\"]\n        Reason[\"推理\"]\n  end\n    Query([\"查询\"]) --> Loop\n    Search --> Read\n    Read --> Reason\n    Reason --> Search\n    Loop --> Answer([\"答案\"])\n\n```\n\n## [博客文章](https:\u002F\u002Fjina.ai\u002Fnews\u002Fa-practical-guide-to-implementing-deepsearch-deepresearch)\n\n无论你是否喜欢这种实现方式，我都强烈建议你阅读我撰写的 DeepSearch\u002FDeepResearch 实现指南，它会为你提供关于这一主题的温和入门介绍。\n\n- [英文 第一部分](https:\u002F\u002Fjina.ai\u002Fnews\u002Fa-practical-guide-to-implementing-deepsearch-deepresearch), [第二部分](https:\u002F\u002Fjina.ai\u002Fnews\u002Fsnippet-selection-and-url-ranking-in-deepsearch-deepresearch)\n- [中文微信公众号 第一讲](https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002F-pPhHDi2nz8hp5R3Lm_mww), [第二讲](https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002FapnorBj4TZs3-Mo23xUReQ)\n- [日语: DeepSearch\u002FDeepResearch 实施的实践指南](https:\u002F\u002Fjina.ai\u002Fja\u002Fnews\u002Fa-practical-guide-to-implementing-deepsearch-deepresearch)\n\n## 自己动手试试\n\n我们托管了一个**完全相同**的代码库的在线部署版本，你可以借此体验一下；或者将其作为日常生产力工具使用。\n\nhttps:\u002F\u002Fsearch.jina.ai\n\n官方 API 也已开放供你使用：\n\n```\nhttps:\u002F\u002Fdeepsearch.jina.ai\u002Fv1\u002Fchat\u002Fcompletions\n```\n\n更多关于 API 的信息，请访问 https:\u002F\u002Fjina.ai\u002Fdeepsearch\n\n\n\n\n## 安装\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch.git\ncd node-DeepResearch\nnpm install\n```\n\n[安装部署视频教程 在 Youtube 上](https:\u002F\u002Fyoutu.be\u002FvrpraFiPUyA)\n\n它也可以通过 npm 获取，但目前不推荐这样做，因为代码仍在积极开发中。\n\n## 使用方法\n\n我们使用 Gemini（最新 `gemini-2.0-flash`）\u002F OpenAI \u002F [本地 LLM](#use-local-llm) 进行推理，使用 [Jina Reader](https:\u002F\u002Fjina.ai\u002Freader) 来搜索和阅读网页。你可以从 jina.ai 获得一个包含 100 万 token 的免费 API 密钥。\n\n```bash\nexport GEMINI_API_KEY=...  # 用于 gemini\n# export OPENAI_API_KEY=... # 用于 openai\n# export LLM_PROVIDER=openai # 用于 openai\nexport JINA_API_KEY=jina_...  # 免费 jina api 密钥，可从 https:\u002F\u002Fjina.ai\u002Freader 获取\n\nnpm run dev $QUERY\n```\n\n### 官方网站\n\n你可以在我们的[官方网站](https:\u002F\u002Fsearch.jina.ai)上试用。\n\n### 官方 API\n\n你也可以使用我们的[官方 DeepSearch API](https:\u002F\u002Fjina.ai\u002Fdeepsearch)：\n\n```\nhttps:\u002F\u002Fdeepsearch.jina.ai\u002Fv1\u002Fchat\u002Fcompletions\n```\n\n你可以使用任何兼容 OpenAI 的客户端来调用该 API。认证所需的 Bearer Token、API 密钥以及速率限制等信息，请参阅 https:\u002F\u002Fjina.ai\u002Fdeepsearch。\n\n#### 客户端集成指南\n\n如果你正在构建一个使用 `Jina DeepSearch API` 的 Web\u002F本地\u002F移动客户端，以下是一些设计指南：\n- 我们的 API 完全兼容 [OpenAI API 架构](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fapi-reference\u002Fchat\u002Fcreate)，这将大大简化集成过程。模型名称为 `jina-deepsearch-v1`。\n- 我们的 DeepSearch API 是一种结合了推理与搜索的 LLM，因此最适合需要深度推理和搜索的问题。\n- 引入了两个特殊标记 `\u003Cthink>...\u003C\u002Fthink>`。请谨慎渲染它们。\n- 经常会提供引用，并采用 [Github 风格的 Markdown 脚注格式](https:\u002F\u002Fgithub.blog\u002Fchangelog\u002F2021-09-30-footnotes-now-supported-in-markdown-fields\u002F)，例如 `[^1]`、`[^2]` 等。\n- 建议引导用户从 https:\u002F\u002Fjina.ai 获取 Jina API 密钥，新用户可获得 100 万 token 的免费额度。\n- 存在速率限制，具体取决于 API 密钥的等级，范围在 10 RPM 到 30 RPM 之间（详情请参见 https:\u002F\u002Fjina.ai\u002Fcontact-sales#rate-limit）。\n- [在此下载 Jina AI 标志](https:\u002F\u002Fjina.ai\u002Flogo-Jina-1024.zip)\n\n## 示例\n> 录制时使用的是 `gemini-1.5-flash`，而最新的 `gemini-2.0-flash` 会带来更好的效果！\n\n查询：“Jina AI 最新博文的标题是什么？”  \n3 步；答案正确！  \n![demo1](.github\u002Fvisuals\u002Fdemo.gif)\n\n查询：“readerlm-v2 的上下文长度是多少？”  \n2 步；答案正确！  \n![demo1](.github\u002Fvisuals\u002Fdemo3.gif)\n\n查询：“尽可能多地列出 Jina AI 的员工姓名”  \n11 步；部分正确！但我没在名单里 :(  \n![demo1](.github\u002Fvisuals\u002Fdemo2.gif)\n\n查询：“Jina AI 最大的竞争对手会是谁？”  \n42 步；属于对未来预测类型的提问，因此可以说答案是正确的！目前我并不认为 `weaviate` 是竞争对手，但我很期待未来能说一句“我就说过吧”的时刻。  \n![demo1](.github\u002Fvisuals\u002Fdemo4.gif)\n\n更多示例：\n\n```\n# 示例：无需工具调用\nnpm run dev \"1+1=\"\nnpm run dev \"法国的首都是哪里？\"\n\n# 示例：2 步\nnpm run dev \"Jina AI 的最新消息是什么？\"\n\n# 示例：3 步\nnpm run dev \"Jina AI 创始人的 Twitter 账号是什么？\"\n\n# 示例：13 步，问题模糊（未定义“大”）\nnpm run dev \"cohere、Jina AI 和 voyage，谁更大？\"\n\n# 示例：开放式问题，类似研究，思维链较长\nnpm run dev \"2028 年美国的总统会是谁？\"\nnpm run dev \"Jina AI 在 2025 年的战略应该是什么？\"\n```\n\n## 使用本地 LLM\n\n> 注意，并非所有 LLM 都能与我们的推理流程兼容，我们需要那些能够很好地支持结构化输出（有时称为 JSON Schema 输出或对象输出）的模型。欢迎提出 PR，将更多开源 LLM 添加到可用列表中。\n\n如果你使用 Ollama 或 LMStudio，可以通过设置以下环境变量将推理请求重定向到你的本地 LLM：\n\n```bash\nexport LLM_PROVIDER=openai  # 是的，没错——对于本地 LLM，我们仍然使用 openai 客户端\nexport OPENAI_BASE_URL=http:\u002F\u002F127.0.0.1:1234\u002Fv1  # 你的本地 LLM 端点\nexport OPENAI_API_KEY=whatever  # 随便填个字符串就行，因为我们并不使用它（除非你的本地 LLM 有认证机制）\nexport DEFAULT_MODEL_NAME=qwen2.5-7b  # 你的本地 LLM 模型名称\n```\n\n\n## 兼容 OpenAI 的服务器 API\n\n如果你有一个支持 OpenAI API 的 GUI 客户端（例如 [CherryStudio](https:\u002F\u002Fdocs.cherry-ai.com\u002F)、[Chatbox](https:\u002F\u002Fgithub.com\u002FBin-Huang\u002Fchatbox)），只需简单配置即可使用本服务器。\n\n![demo1](.github\u002Fvisuals\u002Fdemo6.gif)\n\n启动服务器：\n```bash\n# 无认证\nnpm run serve\n\n# 带认证（客户端必须以 Bearer 令牌形式提供此密钥）\nnpm run serve --secret=your_secret_token\n```\n\n服务器将在 http:\u002F\u002Flocalhost:3000 上启动，并提供以下端点：\n\n### POST \u002Fv1\u002Fchat\u002Fcompletions\n```bash\n# 不带认证\ncurl http:\u002F\u002Flocalhost:3000\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"jina-deepsearch-v1\",\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Hello!\"\n      }\n    ]\n  }'\n\n# 带认证（当服务器使用 --secret 启动时）\ncurl http:\u002F\u002Flocalhost:3000\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"Authorization: Bearer your_secret_token\" \\\n  -d '{\n    \"model\": \"jina-deepsearch-v1\",\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Hello!\"\n      }\n    ],\n    \"stream\": true\n  }'\n```\n\n响应格式：\n```json\n{\n  \"id\": \"chatcmpl-123\",\n  \"object\": \"chat.completion\",\n  \"created\": 1677652288,\n  \"model\": \"jina-deepsearch-v1\",\n  \"system_fingerprint\": \"fp_44709d6fcb\",\n  \"choices\": [{\n    \"index\": 0,\n    \"message\": {\n      \"role\": \"assistant\",\n      \"content\": \"YOUR FINAL ANSWER\"\n    },\n    \"logprobs\": null,\n    \"finish_reason\": \"stop\"\n  }],\n  \"usage\": {\n    \"prompt_tokens\": 9,\n    \"completion_tokens\": 12,\n    \"total_tokens\": 21\n  }\n}\n```\n\n对于流式响应（stream: true），服务器会以以下格式发送数据块：\n```json\n{\n  \"id\": \"chatcmpl-123\",\n  \"object\": \"chat.completion.chunk\",\n  \"created\": 1694268190,\n  \"model\": \"jina-deepsearch-v1\",\n  \"system_fingerprint\": \"fp_44709d6fcb\",\n  \"choices\": [{\n    \"index\": 0,\n    \"delta\": {\n      \"content\": \"...\"\n    },\n    \"logprobs\": null,\n    \"finish_reason\": null\n  }]\n}\n```\n\n注意：流式响应中的思考内容会被包裹在 XML 标签中：\n```\n\u003Cthink>\n[思考步骤...]\n\u003C\u002Fthink>\n[最终答案]\n```\n\n\n## Docker 部署\n\n### 构建 Docker 镜像\n要构建应用程序的 Docker 镜像，请运行以下命令：\n```bash\ndocker build -t deepresearch:latest .\n```\n\n### 运行 Docker 容器\n要运行 Docker 容器，请使用以下命令：\n```bash\ndocker run -p 3000:3000 --env GEMINI_API_KEY=your_gemini_api_key --env JINA_API_KEY=your_jina_api_key deepresearch:latest\n```\n\n### Docker Compose\n您也可以使用 Docker Compose 来管理多容器应用。要使用 Docker Compose 启动应用程序，请运行：\n```bash\ndocker-compose up\n```\n\n## 工作原理？\n\n不确定流程图是否有帮助，但还是附上：\n\n```mermaid\nflowchart TD\n    Start([开始]) --> Init[初始化上下文与变量]\n    Init --> CheckBudget{是否超过令牌预算？}\n    CheckBudget -->|否| GetQuestion[从待解决问题中获取当前问题]\n    CheckBudget -->|是| BeastMode[进入狂暴模式]\n\n    GetQuestion --> GenPrompt[生成提示]\n    GenPrompt --> ModelGen[使用 Gemini 模型生成回复]\n    ModelGen --> ActionCheck{检查行动类型}\n\n    ActionCheck -->|回答| AnswerCheck{是否为原始问题？}\n    AnswerCheck -->|是| EvalAnswer[评估回答]\n    EvalAnswer --> IsGoodAnswer{回答是否明确？}\n    IsGoodAnswer -->|是| HasRefs{是否有参考文献？}\n    HasRefs -->|是| End([结束])\n    HasRefs -->|否| GetQuestion\n    IsGoodAnswer -->|否| StoreBad[存储失败尝试并重置上下文]\n    StoreBad --> GetQuestion\n\n    AnswerCheck -->|否| StoreKnowledge[将结果作为中间知识存储]\n    StoreKnowledge --> GetQuestion\n\n    ActionCheck -->|反思| ProcessQuestions[处理新的子问题]\n    ProcessQuestions --> DedupQuestions{是否有新的唯一问题？}\n    DedupQuestions -->|是| AddGaps[添加到待解决问题队列]\n    DedupQuestions -->|否| DisableReflect[禁用下一次的反思功能]\n    AddGaps --> GetQuestion\n    DisableReflect --> GetQuestion\n\n    ActionCheck -->|搜索| SearchQuery[执行搜索]\n    SearchQuery --> NewURLs{是否找到新网址？}\n    NewURLs -->|是| StoreURLs[存储网址以便后续访问]\n    NewURLs -->|否| DisableSearch[禁用下一次的搜索功能]\n    StoreURLs --> GetQuestion\n    DisableSearch --> GetQuestion\n\n    ActionCheck -->|访问| VisitURLs[访问网址]\n    VisitURLs --> NewContent{是否发现新内容？}\n    NewContent -->|是| StoreContent[将内容存储为知识]\n    NewContent -->|否| DisableVisit[禁用下一次的访问功能]\n    StoreContent --> GetQuestion\n    DisableVisit --> GetQuestion\n\n    BeastMode --> FinalAnswer[生成最终答案] --> End\n```","# node-DeepResearch 快速上手指南\n\nnode-DeepResearch 是一个专注于通过迭代搜索、阅读和推理来寻找准确答案的开源 AI 工具。它不追求生成长篇报告，而是致力于在 Token 预算内提供简洁、精准的深度搜索结果。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows (需安装 Git 和 Node.js)\n*   **Node.js**：建议版本 v18 或更高\n*   **npm**：随 Node.js 自动安装\n*   **API Keys**：\n    *   **Jina API Key**：用于搜索和读取网页内容。访问 [jina.ai\u002Freader](https:\u002F\u002Fjina.ai\u002Freader) 注册获取（新用户赠送 100 万免费 Token）。\n    *   **LLM API Key**：用于推理模型。推荐使用 Google Gemini (`gemini-2.0-flash`) 或 OpenAI。若使用本地大模型，需安装 Ollama 或 LMStudio。\n\n## 安装步骤\n\n1.  **克隆项目代码**\n    从 GitHub 克隆仓库到本地：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch.git\n    cd node-DeepResearch\n    ```\n\n2.  **安装依赖**\n    使用 npm 安装项目所需依赖包：\n    ```bash\n    npm install\n    ```\n    > 注意：虽然该项目已发布到 npm，但由于处于活跃开发阶段，官方推荐直接使用源码运行而非通过 `npm install -g` 安装。\n\n## 基本使用\n\n### 1. 配置环境变量\n\n在使用前，需要设置必要的 API Key。根据您的模型选择配置以下变量：\n\n**方案 A：使用 Google Gemini (推荐)**\n```bash\nexport GEMINI_API_KEY=your_gemini_api_key\nexport JINA_API_KEY=jina_...\n```\n\n**方案 B：使用 OpenAI**\n```bash\nexport OPENAI_API_KEY=your_openai_api_key\nexport LLM_PROVIDER=openai\nexport JINA_API_KEY=jina_...\n```\n\n**方案 C：使用本地大模型 (如 Ollama)**\n```bash\nexport LLM_PROVIDER=openai\nexport OPENAI_BASE_URL=http:\u002F\u002F127.0.0.1:1234\u002Fv1\nexport OPENAI_API_KEY=whatever\nexport DEFAULT_MODEL_NAME=qwen2.5-7b\nexport JINA_API_KEY=jina_...\n```\n\n### 2. 运行查询\n\n使用 `npm run dev` 命令 followed by 您的查询问题即可启动深度研究流程：\n\n```bash\nnpm run dev \"what is the latest blog post's title from jina ai?\"\n```\n\n**更多示例：**\n\n*   **简单事实查询** (无需工具调用):\n    ```bash\n    npm run dev \"what is the capital of France?\"\n    ```\n*   **多步深度搜索**:\n    ```bash\n    npm run dev \"what is the twitter account of jina ai's founder\"\n    ```\n*   **复杂开放性问题**:\n    ```bash\n    npm run dev \"who will be president of US in 2028?\"\n    ```\n\n程序将自动执行“搜索 -> 阅读 -> 推理”的循环，直到找到确切答案或达到 Token 预算上限，最终在终端输出结果及引用来源。","某科技公司的市场分析师需要在两小时内完成一份关于“全球固态电池最新技术突破及主要厂商量产进度”的竞争情报简报，以支持即将到来的投资决策会议。\n\n### 没有 node-DeepResearch 时\n- **信息搜集碎片化**：分析师需手动在多个搜索引擎反复切换关键词，难以一次性覆盖技术论文、新闻稿及行业论坛的深度内容。\n- **验证成本极高**：面对搜索结果中的大量营销软文和过时数据，必须逐个点开网页人工甄别真伪，耗时占整个任务的 70%。\n- **逻辑断层严重**：搜集到的信息零散孤立，缺乏自动化的推理串联，难以直接得出“哪家厂商真正具备量产能力”的结论。\n- **引用溯源困难**：整理报告时需回头重新查找每个数据的来源链接，极易出现引用错误或遗漏关键出处。\n\n### 使用 node-DeepResearch 后\n- **全自动深度挖掘**：node-DeepResearch 自主执行“搜索 - 阅读 - 推理”循环，自动遍历数十个深层网页，精准锁定技术突破细节与厂商实际进度。\n- **智能去伪存真**：工具通过多轮推理交叉验证信息，自动过滤公关通稿，直接提炼出经多方证实的核心事实。\n- **结论导向输出**：基于搜集的证据链，node-DeepResearch 直接生成带有逻辑推导的最终答案，明确指出具备量产潜力的厂商名单。\n- **原生脚注支持**：生成的回答自动附带 GitHub 风格的 Markdown 脚注，每个观点均精确对应原始网页链接，无需二次核对。\n\nnode-DeepResearch 将原本需要数小时的人工调研与推理过程压缩至分钟级，让开发者能直接从海量噪声中获取带可信溯源的深度洞察。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjina-ai_node-DeepResearch_fa59443b.png","jina-ai","Jina AI","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fjina-ai_e871d2a3.png","Your Search Foundation, Supercharged!",null,"hello@jina.ai","JinaAI_","https:\u002F\u002Fjina.ai","https:\u002F\u002Fgithub.com\u002Fjina-ai",[86,90,94],{"name":87,"color":88,"percentage":89},"TypeScript","#3178c6",98.9,{"name":91,"color":92,"percentage":93},"JavaScript","#f1e05a",0.6,{"name":95,"color":96,"percentage":97},"Dockerfile","#384d54",0.5,5148,448,"2026-04-17T13:51:07","Apache-2.0","Linux, macOS, Windows","非必需（支持本地 LLM 或云端 API，若本地部署大模型则取决于具体模型需求）","未说明",{"notes":106,"python":104,"dependencies":107},"该项目基于 Node.js 运行，需安装 npm 依赖。推理可使用云端 Gemini\u002FOpenAI API 或本地 LLM（如 Ollama、LMStudio，需支持结构化输出）。使用 Docker 可一键部署。需配置 GEMINI_API_KEY 或 OPENAI_API_KEY 以及 JINA_API_KEY 环境变量。",[108,109,110,111],"Node.js","npm","gemini-2.0-flash (或 OpenAI\u002FLocalLLM)","Jina Reader API",[18],[114,115],"deepresearch","deepsearch","2026-03-27T02:49:30.150509","2026-04-18T17:03:30.800719",[119,124,129,134,139,144,149],{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},40383,"遇到 'DDG detected an anomaly' 错误或请求过快被限制怎么办？","该项目已移除对 DuckDuckGo (DDG) 的依赖，改用 s.jina.ai 进行搜索。请执行 `git pull` 更新到最新的主分支代码。你可以从 jina.ai\u002Freader 获取免费的 API Key 来使用新的搜索服务。","https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fissues\u002F15",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},40384,"运行时报错 'SyntaxError: JSON Parse error' 或 'AI_NoObjectGeneratedError' 如何解决？","这通常是因为默认的 `maxTokens=1000` 设置太小，无法生成长文档或完整响应。请在 `config.ts` 文件中增大 `maxTokens` 的值即可解决此问题。","https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fissues\u002F38",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},40385,"是否支持使用本地 LLM（如 OpenAI 兼容接口）？","是的，现已支持 OpenAI 兼容接口和本地 LLM。维护者测试过 `gpt-4o-mini` 没有问题。对于本地模型，虽然网络部分正常，但需要选择能稳定输出结构化数据的模型（例如某些版本的 Qwen 可能在工具调用上表现不佳），建议根据实际测试结果选择合适的本地模型。","https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fissues\u002F18",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},40386,"如何限制 Token 消耗量以避免用完所有额度？","可以通过配置 `budget_tokens` 参数来设置 Token 消耗上限。在运行命令或配置文件中指定该参数即可控制单次任务的最大 Token 使用量。","https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fissues\u002F96",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},40387,"如何使用 Ollama 运行的 DeepSeek R1 或其他本地模型？","目前代码库尚未完全适配 DeepSeek R1 等需要特殊设计的模型，直接使用可能会报错 'Invalid LLM provider' 或陷入无限循环（如动作名称不匹配 schema）。维护者正在考虑重新设计以支持此类模型。如果是其他模型（如 Gemma2），可能需要添加自定义 Provider 并确保模型输出的动作名称（如 'search' 而非 'action-search'）严格符合预设的结构化 Schema。","https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fissues\u002F47",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},40388,"README 中提到的 'average tokens' 具体指什么？","如果在本地运行，可以看到详细的 Token 分解（包括输入和输出）。README 中之前的评估表格已过时且不再准确，相关部分已被移除。现在的统计通常包含完整的 Token 使用情况。","https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fissues\u002F83",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},40389,"遇到 'TypeError: Cannot read properties of undefined (reading 'results')' 错误怎么办？","这通常是由于中间生成了损坏的查询导致的。维护者已确认该问题并进行了修复。请确保拉取最新的代码版本 (`git pull`) 以获取包含修复补丁的更新。","https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fissues\u002F16",[155,160,165,170,175,180,185],{"id":156,"version":157,"summary_zh":158,"released_at":159},323759,"v1.4.0","## 变更内容\n* 功能：由 @devin-ai-integration 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F52 中添加了模型 API 端点\n* 修复：由 @devin-ai-integration 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F58 中更新评估器测试，以使用正确的 AnswerAction 类型\n* 重构：由 @hanxiao 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F60 中添加了安全的对象生成\n\n## 新贡献者\n* @nomagick 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F55 中完成了首次贡献\n* @hanxiao 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F60 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fcompare\u002Fv1.3.0...v1.4.0","2025-02-12T16:39:21",{"id":161,"version":162,"summary_zh":163,"released_at":164},323760,"v1.3.0","## 变更内容\n* 功能：由 @devin-ai-integration 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F48 中添加了兼容 OpenAI 的聊天补全接口。\n* 修复：由 @devin-ai-integration 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F50 中更新了文档和认证行为。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fcompare\u002Fv1.2.0...v1.3.0","2025-02-10T04:25:34",{"id":166,"version":167,"summary_zh":168,"released_at":169},323761,"v1.2.0","## 变更内容\n* 添加到 .gitignore，以排除系统生成的临时文件，由 @paul5007 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F42 中完成\n* 修复：确保将 config.json 复制到生产环境的 Docker 镜像中，由 @devin-ai-integration 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F43 中完成\n\n## 新贡献者\n* @paul5007 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F42 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fcompare\u002Fv1.1.1...v1.2.0","2025-02-07T06:18:54",{"id":171,"version":172,"summary_zh":173,"released_at":174},323762,"v1.1.1","## 变更内容\n* 功能：更新 npm 发布工作流，改为使用 GitHub 发布版本，由 @devin-ai-integration 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F37 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fcompare\u002Fv1.1.0...v1.1.1","2025-02-06T14:03:25",{"id":176,"version":177,"summary_zh":178,"released_at":179},323763,"v1.1.0","## 变更内容\n* 由 @ArnoChenFx 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F32 中优化构建后的 Docker 镜像大小\n* 由 @ArnoChenFx 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F31 中修复依赖问题\n* 修复：更新评估器测试以匹配最新实现，由 @devin-ai-integration 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F34 中完成\n\n## 新贡献者\n* @ArnoChenFx 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F32 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fcompare\u002Fv1.0.2...v1.1.0","2025-02-06T13:54:52",{"id":181,"version":182,"summary_zh":183,"released_at":184},323764,"v1.0.2","## 变更内容\n* 功能：添加 npm 发布工作流，由 @devin-ai-integration 在 https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fpull\u002F29 中实现。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fnode-DeepResearch\u002Fcompare\u002Fv1.0.1...v1.0.2","2025-02-06T08:38:59",{"id":186,"version":187,"summary_zh":188,"released_at":189},323765,"v1.0.1","用于 npm 发布工作流的测试版本","2025-02-06T07:21:19"]