[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-zilliztech--deep-searcher":3,"similar-zilliztech--deep-searcher":117},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":14,"owner_name":15,"owner_avatar_url":16,"owner_bio":17,"owner_company":18,"owner_location":18,"owner_email":19,"owner_twitter":20,"owner_website":21,"owner_url":22,"languages":23,"stars":36,"forks":37,"last_commit_at":38,"license":39,"difficulty_score":40,"env_os":41,"env_gpu":41,"env_ram":41,"env_deps":42,"category_tags":53,"github_topics":59,"view_count":40,"oss_zip_url":18,"oss_zip_packed_at":18,"status":77,"created_at":78,"updated_at":79,"faqs":80,"releases":111},6346,"zilliztech\u002Fdeep-searcher","deep-searcher","Open Source Deep Research Alternative to Reason and Search on Private Data. Written in Python.","deep-searcher 是一款开源的深度研究工具，旨在让大语言模型基于企业私有数据进行精准的搜索、评估与推理。它有效解决了通用 AI 在面对内部专有资料时“不知情”或易产生幻觉的痛点，能够结合本地文档与必要的网络信息，生成高准确度的回答及综合报告。\n\n该工具特别适合开发者、技术研究人员以及需要构建智能问答系统或知识库的企业团队使用。其核心亮点在于创新地融合了前沿大模型（如 OpenAI o3、Qwen3、DeepSeek 等）与高性能向量数据库（如 Milvus）。通过灵活的嵌入模型选择和高效的数据分区管理，deep-searcher 不仅能安全地最大化利用内部数据，还支持从本地文件加载及网页抓取，实现了公私域信息的智能协同。无论是搭建企业级知识管理平台，还是开发复杂的信息检索应用，deep-searcher 都提供了强大且易于集成的 Python 解决方案，帮助用户在确保数据安全的前提下，挖掘数据的深层价值。","![DeepSearcher](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzilliztech_deep-searcher_readme_93586af15086.png)\n\n\u003Cdiv align=\"center\">\n  \n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)\n[![DeepWiki](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDeepWiki-AI%20Docs-orange.svg)](https:\u002F\u002Fdeepwiki.com\u002Fzilliztech\u002Fdeep-searcher)\n[![Twitter](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl\u002Fhttps\u002Ftwitter.com\u002Fzilliz_universe.svg?style=social&label=Follow%20%40Zilliz)](https:\u002F\u002Ftwitter.com\u002Fzilliz_universe)\n\u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FmKc3R95yE5\">\u003Cimg height=\"20\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white\" alt=\"discord\"\u002F>\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\n---\n\nDeepSearcher combines cutting-edge LLMs (OpenAI o3, Qwen3, DeepSeek, Grok 4, Claude 4 Sonnet, Llama 4, QwQ, etc.) and Vector Databases (Milvus, Zilliz Cloud etc.) to perform search, evaluation, and reasoning based on private data, providing highly accurate answer and comprehensive report. This project is suitable for enterprise knowledge management, intelligent Q&A systems, and information retrieval scenarios.\n\n![Architecture](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzilliztech_deep-searcher_readme_b92dca6a34a4.png)\n\n## 🚀 Features\n\n- **Private Data Search**: Maximizes the utilization of enterprise internal data while ensuring data security. When necessary, it can integrate online content for more accurate answers.\n- **Vector Database Management**: Supports Milvus and other vector databases, allowing data partitioning for efficient retrieval.\n- **Flexible Embedding Options**: Compatible with multiple embedding models for optimal selection.\n- **Multiple LLM Support**: Supports DeepSeek, OpenAI, and other large models for intelligent Q&A and content generation.\n- **Document Loader**: Supports local file loading, with web crawling capabilities under development.\n\n---\n\n## 🎉 Demo\n![demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzilliztech_deep-searcher_readme_01022c0b88d9.gif)\n\n\n## 📖 Quick Start\n\n### Installation\nInstall DeepSearcher using one of the following methods:\n\n#### Option 1: Using pip\nCreate and activate a virtual environment(Python 3.10 version is recommended).\n```bash\npython -m venv .venv\nsource .venv\u002Fbin\u002Factivate\n```\nInstall DeepSearcher\n```bash\npip install deepsearcher\n```\n\nFor optional dependencies, e.g., ollama:\n```bash\npip install \"deepsearcher[ollama]\"\n```\n\n#### Option 2: Install in Development Mode\nWe recommend using [uv](https:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fuv) for faster and more reliable installation. Follow the [offical installation instructions](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Finstallation\u002F) to install it.\n\nClone the repository and navigate to the project directory:\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002Fzilliztech\u002Fdeep-searcher.git && cd deep-searcher\n```\nSynchronize and install dependencies:\n```shell\nuv sync\nsource .venv\u002Fbin\u002Factivate\n```\n\nFor more detailed development setup and optional dependency installation options, see [CONTRIBUTING.md](CONTRIBUTING.md#development-environment-setup-with-uv).\n\n### Quick start demo\n\nTo run this quick start demo, please prepare your `OPENAI_API_KEY` in your environment variables. If you change the LLM in the configuration, make sure to prepare the corresponding API key.\n\n```python\nfrom deepsearcher.configuration import Configuration, init_config\nfrom deepsearcher.online_query import query\n\nconfig = Configuration()\n\n# Customize your config here,\n# more configuration see the Configuration Details section below.\nconfig.set_provider_config(\"llm\", \"OpenAI\", {\"model\": \"o1-mini\"})\nconfig.set_provider_config(\"embedding\", \"OpenAIEmbedding\", {\"model\": \"text-embedding-ada-002\"})\ninit_config(config = config)\n\n# Load your local data\nfrom deepsearcher.offline_loading import load_from_local_files\nload_from_local_files(paths_or_directory=your_local_path)\n\n# (Optional) Load from web crawling (`FIRECRAWL_API_KEY` env variable required)\nfrom deepsearcher.offline_loading import load_from_website\nload_from_website(urls=website_url)\n\n# Query\nresult = query(\"Write a report about xxx.\") # Your question here\n```\n### Configuration Details:\n#### LLM Configuration\n\n\u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"(LLMName)\", \"(Arguments dict)\")\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The \"LLMName\" can be one of the following: [\"DeepSeek\", \"OpenAI\", \"XAI\", \"SiliconFlow\", \"Aliyun\", \"PPIO\", \"TogetherAI\", \"Gemini\", \"Ollama\", \"Novita\", \"Jiekou.AI\"]\u003C\u002Fp>\n\u003Cp> The \"Arguments dict\" is a dictionary that contains the necessary arguments for the LLM class.\u003C\u002Fp>\n\n\u003Cdetails>\n  \u003Csummary>Example (OpenAI)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your OPENAI API KEY as an env variable \u003Ccode>OPENAI_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"OpenAI\", {\"model\": \"o1-mini\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about OpenAI models: https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Qwen3 from Aliyun Bailian)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your Bailian API KEY as an env variable \u003Ccode>DASHSCOPE_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"Aliyun\", {\"model\": \"qwen-plus-latest\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about Aliyun Bailian models: https:\u002F\u002Fbailian.console.aliyun.com \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n  \u003Csummary>Example (Qwen3 from OpenRouter)\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"OpenAI\", {\"model\": \"qwen\u002Fqwen3-235b-a22b:free\", \"base_url\": \"https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\", \"api_key\": \"OPENROUTER_API_KEY\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about OpenRouter models: https:\u002F\u002Fopenrouter.ai\u002Fqwen\u002Fqwen3-235b-a22b:free \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n  \u003Csummary>Example (DeepSeek from official)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your DEEPSEEK API KEY as an env variable \u003Ccode>DEEPSEEK_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"DeepSeek\", {\"model\": \"deepseek-reasoner\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about DeepSeek: https:\u002F\u002Fapi-docs.deepseek.com\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (DeepSeek from SiliconFlow)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your SILICONFLOW API KEY as an env variable \u003Ccode>SILICONFLOW_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"SiliconFlow\", {\"model\": \"deepseek-ai\u002FDeepSeek-R1\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about SiliconFlow: https:\u002F\u002Fdocs.siliconflow.cn\u002Fquickstart \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (DeepSeek from TogetherAI)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your TOGETHER API KEY as an env variable \u003Ccode>TOGETHER_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    For deepseek R1:\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"TogetherAI\", {\"model\": \"deepseek-ai\u002FDeepSeek-R1\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    For Llama 4:\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"TogetherAI\", {\"model\": \"meta-llama\u002FLlama-4-Scout-17B-16E-Instruct\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> You need to install together before running, execute: \u003Ccode>pip install together\u003C\u002Fcode>. More details about TogetherAI: https:\u002F\u002Fwww.together.ai\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (XAI Grok)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your XAI API KEY as an env variable \u003Ccode>XAI_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"XAI\", {\"model\": \"grok-4-0709\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about XAI Grok: https:\u002F\u002Fdocs.x.ai\u002Fdocs\u002Foverview#featured-models \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Claude)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your ANTHROPIC API KEY as an env variable \u003Ccode>ANTHROPIC_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"Anthropic\", {\"model\": \"claude-sonnet-4-0\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about Anthropic Claude: https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fhome \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Google Gemini)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your GEMINI API KEY as an env variable \u003Ccode>GEMINI_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config('llm', 'Gemini', { 'model': 'gemini-2.0-flash' })\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> You need to install gemini before running, execute: \u003Ccode>pip install google-genai\u003C\u002Fcode>. More details about Gemini: https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (DeepSeek from PPIO)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your PPIO API KEY as an env variable \u003Ccode>PPIO_API_KEY\u003C\u002Fcode>. You can create an API Key \u003Ca href=\"https:\u002F\u002Fppinfra.com\u002Fsettings\u002Fkey-management?utm_source=github_deep-searcher\">here\u003C\u002Fa>. \u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"PPIO\", {\"model\": \"deepseek\u002Fdeepseek-r1-turbo\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about PPIO: https:\u002F\u002Fppinfra.com\u002Fdocs\u002Fget-started\u002Fquickstart.html?utm_source=github_deep-searcher \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Claude Sonnet 4.5 from Jiekou.AI)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your Jiekou.AI API KEY as an env variable \u003Ccode>JIEKOU_API_KEY\u003C\u002Fcode>. You can create an API Key \u003Ca href=\"https:\u002F\u002Fjiekou.ai\u002Fsettings\u002Fkey-management?utm_source=github_deep-searcher\">here\u003C\u002Fa>. \u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"JiekouAI\", {\"model\": \"claude-sonnet-4-5-20250929\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about Jiekou.AI: https:\u002F\u002Fdocs.jiekou.ai\u002Fdocs\u002Fsupport\u002Fquickstart?utm_source=github_deep-searcher \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Ollama)\u003C\u002Fsummary>\n  \u003Cp> Follow \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjmorganca\u002Follama\">these instructions\u003C\u002Fa> to set up and run a local Ollama instance:\u003C\u002Fp>\n  \u003Cp> \u003Ca href=\"https:\u002F\u002Follama.ai\u002Fdownload\">Download\u003C\u002Fa> and install Ollama onto the available supported platforms (including Windows Subsystem for Linux).\u003C\u002Fp>\n  \u003Cp> View a list of available models via the \u003Ca href=\"https:\u002F\u002Follama.ai\u002Flibrary\">model library\u003C\u002Fa>.\u003C\u002Fp>\n  \u003Cp> Fetch available LLM models via \u003Ccode>ollama pull &lt;name-of-model&gt;\u003C\u002Fcode>\u003C\u002Fp>\n  \u003Cp> Example: \u003Ccode>ollama pull qwen3\u003C\u002Fcode>\u003C\u002Fp>\n  \u003Cp> To chat directly with a model from the command line, use \u003Ccode>ollama run &lt;name-of-model&gt;\u003C\u002Fcode>.\u003C\u002Fp>\n  \u003Cp> By default, Ollama has a REST API for running and managing models on \u003Ca href=\"http:\u002F\u002Flocalhost:11434\">http:\u002F\u002Flocalhost:11434\u003C\u002Fa>.\u003C\u002Fp>\n  \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"Ollama\", {\"model\": \"qwen3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Volcengine)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your Volcengine API KEY as an env variable \u003Ccode>VOLCENGINE_API_KEY\u003C\u002Fcode>. You can create an API Key \u003Ca href=\"https:\u002F\u002Fconsole.volcengine.com\u002Fark\u002Fregion:ark+cn-beijing\u002FapiKey\">here\u003C\u002Fa>. \u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"Volcengine\", {\"model\": \"deepseek-r1-250120\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about Volcengine: https:\u002F\u002Fwww.volcengine.com\u002Fdocs\u002F82379\u002F1099455?utm_source=github_deep-searcher \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (GLM)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your GLM API KEY as an env variable \u003Ccode>GLM_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"GLM\", {\"model\": \"glm-4-plus\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> You need to install zhipuai before running, execute: \u003Ccode>pip install zhipuai\u003C\u002Fcode>. More details about GLM: https:\u002F\u002Fbigmodel.cn\u002Fdev\u002Fwelcome \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Amazon Bedrock)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your Amazon Bedrock API KEY as an env variable \u003Ccode>AWS_ACCESS_KEY_ID\u003C\u002Fcode> and \u003Ccode>AWS_SECRET_ACCESS_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"Bedrock\", {\"model\": \"us.deepseek.r1-v1:0\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> You need to install boto3 before running, execute: \u003Ccode>pip install boto3\u003C\u002Fcode>. More details about Amazon Bedrock: https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (IBM watsonx.ai)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your watsonx.ai credentials as env variables \u003Ccode>WATSONX_APIKEY\u003C\u002Fcode>, \u003Ccode>WATSONX_URL\u003C\u002Fcode>, and \u003Ccode>WATSONX_PROJECT_ID\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"watsonx\", {\"model\": \"us.deepseek.r1-v1:0\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> You need to install ibm-watsonx-ai before running, execute: \u003Ccode>pip install ibm-watsonx-ai\u003C\u002Fcode>. More details about IBM watsonx.ai: https:\u002F\u002Fwww.ibm.com\u002Fproducts\u002Fwatsonx-ai\u002Ffoundation-models \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\n#### Embedding Model Configuration\n\u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"(EmbeddingModelName)\", \"(Arguments dict)\")\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The \"EmbeddingModelName\" can be one of the following: [\"MilvusEmbedding\", \"OpenAIEmbedding\", \"VoyageEmbedding\", \"SiliconflowEmbedding\", \"PPIOEmbedding\", \"NovitaEmbedding\", \"JiekouAIEmbedding\"]\u003C\u002Fp>\n\u003Cp> The \"Arguments dict\" is a dictionary that contains the necessary arguments for the embedding model class.\u003C\u002Fp>\n\n\u003Cdetails>\n  \u003Csummary>Example (OpenAI embedding)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your OpenAI API KEY as an env variable \u003Ccode>OPENAI_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"OpenAIEmbedding\", {\"model\": \"text-embedding-3-small\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about OpenAI models: https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fembeddings\u002Fuse-cases \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (OpenAI embedding Azure)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your OpenAI API KEY as an env variable \u003Ccode>OPENAI_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"OpenAIEmbedding\", {\n    \"model\": \"text-embedding-ada-002\",\n    \"azure_endpoint\": \"https:\u002F\u002F\u003Cyouraifoundry>.openai.azure.com\u002F\",\n    \"api_version\": \"2023-05-15\"\n})\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Pymilvus built-in embedding model)\u003C\u002Fsummary>\n    \u003Cp> Use the built-in embedding model in Pymilvus, you can set the model name as \u003Ccode>\"default\"\u003C\u002Fcode>, \u003Ccode>\"BAAI\u002Fbge-base-en-v1.5\"\u003C\u002Fcode>, \u003Ccode>\"BAAI\u002Fbge-large-en-v1.5\"\u003C\u002Fcode>, \u003Ccode>\"jina-embeddings-v3\"\u003C\u002Fcode>, etc. \u003Cbr\u002F>\n    See [milvus_embedding.py](deepsearcher\u002Fembedding\u002Fmilvus_embedding.py) for more details.  \u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"MilvusEmbedding\", {\"model\": \"BAAI\u002Fbge-base-en-v1.5\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"MilvusEmbedding\", {\"model\": \"jina-embeddings-v3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> For Jina's embedding model, you need\u003Ccode>JINAAI_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cp> You need to install pymilvus model before running, execute: \u003Ccode>pip install pymilvus.model\u003C\u002Fcode>. More details about Pymilvus: https:\u002F\u002Fmilvus.io\u002Fdocs\u002Fembeddings.md \u003C\u002Fp>\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (VoyageAI embedding)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your VOYAGE API KEY as an env variable \u003Ccode>VOYAGE_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"VoyageEmbedding\", {\"model\": \"voyage-3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> You need to install voyageai before running, execute: \u003Ccode>pip install voyageai\u003C\u002Fcode>. More details about VoyageAI: https:\u002F\u002Fdocs.voyageai.com\u002Fembeddings\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Amazon Bedrock embedding)\u003C\u002Fsummary>\n  \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"BedrockEmbedding\", {\"model\": \"amazon.titan-embed-text-v2:0\"})\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003Cp> You need to install boto3 before running, execute: \u003Ccode>pip install boto3\u003C\u002Fcode>. More details about Amazon Bedrock: https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Novita AI embedding)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your Novita AI API KEY as an env variable \u003Ccode>NOVITA_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"NovitaEmbedding\", {\"model\": \"baai\u002Fbge-m3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about Novita AI: https:\u002F\u002Fnovita.ai\u002Fdocs\u002Fapi-reference\u002Fmodel-apis-llm-create-embeddings?utm_source=github_deep-searcher&utm_medium=github_readme&utm_campaign=link \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Siliconflow embedding)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your Siliconflow API KEY as an env variable \u003Ccode>SILICONFLOW_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"SiliconflowEmbedding\", {\"model\": \"BAAI\u002Fbge-m3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about Siliconflow: https:\u002F\u002Fdocs.siliconflow.cn\u002Fen\u002Fapi-reference\u002Fembeddings\u002Fcreate-embeddings \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Volcengine embedding)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your Volcengine API KEY as an env variable \u003Ccode>VOLCENGINE_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"VolcengineEmbedding\", {\"model\": \"doubao-embedding-text-240515\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about Volcengine: https:\u002F\u002Fwww.volcengine.com\u002Fdocs\u002F82379\u002F1302003 \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (GLM embedding)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your GLM API KEY as an env variable \u003Ccode>GLM_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"GLMEmbedding\", {\"model\": \"embedding-3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> You need to install zhipuai before running, execute: \u003Ccode>pip install zhipuai\u003C\u002Fcode>. More details about GLM: https:\u002F\u002Fbigmodel.cn\u002Fdev\u002Fwelcome \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Google Gemini embedding)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your Gemini API KEY as an env variable \u003Ccode>GEMINI_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"GeminiEmbedding\", {\"model\": \"text-embedding-004\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> You need to install gemini before running, execute: \u003Ccode>pip install google-genai\u003C\u002Fcode>. More details about Gemini: https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Ollama embedding)\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"OllamaEmbedding\", {\"model\": \"bge-m3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> You need to install ollama before running, execute: \u003Ccode>pip install ollama\u003C\u002Fcode>. More details about Ollama Python SDK: https:\u002F\u002Fgithub.com\u002Follama\u002Follama-python \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (PPIO embedding)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your PPIO API KEY as an env variable \u003Ccode>PPIO_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"PPIOEmbedding\", {\"model\": \"baai\u002Fbge-m3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about PPIO: https:\u002F\u002Fppinfra.com\u002Fdocs\u002Fget-started\u002Fquickstart.html?utm_source=github_deep-searcher \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Jiekou.AI embedding)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your Jiekou.AI API KEY as an env variable \u003Ccode>JIEKOU_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"JiekouAIEmbedding\", {\"model\": \"qwen\u002Fqwen3-embedding-8b\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about Jiekou.AI: https:\u002F\u002Fdocs.jiekou.ai\u002Fdocs\u002Fsupport\u002Fquickstart?utm_source=github_deep-searcher \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (FastEmbed embedding)\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"FastEmbedEmbedding\", {\"model\": \"intfloat\u002Fmultilingual-e5-large\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> You need to install fastembed before running, execute: \u003Ccode>pip install fastembed\u003C\u002Fcode>. More details about fastembed: https:\u002F\u002Fgithub.com\u002Fqdrant\u002Ffastembed \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n  \u003Csummary>Example (IBM watsonx.ai embedding)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your WatsonX credentials as env variables \u003Ccode>WATSONX_APIKEY\u003C\u002Fcode>, \u003Ccode>WATSONX_URL\u003C\u002Fcode>, and \u003Ccode>WATSONX_PROJECT_ID\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"WatsonXEmbedding\", {\"model\": \"ibm\u002Fslate-125m-english-rtrvr-v2\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"WatsonXEmbedding\", {\"model\": \"sentence-transformers\u002Fall-minilm-l6-v2\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> You need to install ibm-watsonx-ai before running, execute: \u003Ccode>pip install ibm-watsonx-ai\u003C\u002Fcode>. More details about IBM watsonx.ai: https:\u002F\u002Fwww.ibm.com\u002Fproducts\u002Fwatsonx-ai\u002Ffoundation-models \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n#### Vector Database Configuration\n\u003Cpre>\u003Ccode>config.set_provider_config(\"vector_db\", \"(VectorDBName)\", \"(Arguments dict)\")\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The \"VectorDBName\" can be one of the following: [\"Milvus\"] (Under development)\u003C\u002Fp>\n\u003Cp> The \"Arguments dict\" is a dictionary that contains the necessary arguments for the Vector Database class.\u003C\u002Fp>\n\n\u003Cdetails>\n  \u003Csummary>Example (Milvus)\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"vector_db\", \"Milvus\", {\"uri\": \".\u002Fmilvus.db\", \"token\": \"\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about Milvus Config:\u003C\u002Fp>\n    \u003Cul>\n        \u003Cli>\n            Setting the \u003Ccode>uri\u003C\u002Fcode> as a local file, e.g. \u003Ccode>.\u002Fmilvus.db\u003C\u002Fcode>, is the most convenient method, as it automatically utilizes \u003Ca href=\"https:\u002F\u002Fmilvus.io\u002Fdocs\u002Fmilvus_lite.md\" target=\"_blank\">Milvus Lite\u003C\u002Fa> to store all data in this file.\n        \u003C\u002Fli>\n    \u003C\u002Ful>\n    \u003Cul>\n      \u003Cli>\n          If you have a large-scale dataset, you can set up a more performant Milvus server using \n          \u003Ca href=\"https:\u002F\u002Fmilvus.io\u002Fdocs\u002Fquickstart.md\" target=\"_blank\">Docker or Kubernetes\u003C\u002Fa>. \n          In this setup, use the server URI, e.g., \u003Ccode>http:\u002F\u002Flocalhost:19530\u003C\u002Fcode>, as your \u003Ccode>uri\u003C\u002Fcode>. \n          You can also use any other connection parameters supported by Milvus such as \u003Ccode>host\u003C\u002Fcode>, \u003Ccode>user\u003C\u002Fcode>, \u003Ccode>password\u003C\u002Fcode>, or \u003Ccode>secure\u003C\u002Fcode>.\n        \u003C\u002Fli>\n    \u003C\u002Ful>\n    \u003Cul>\n        \u003Cli>\n            If you want to use \u003Ca href=\"https:\u002F\u002Fzilliz.com\u002Fcloud\" target=\"_blank\">Zilliz Cloud\u003C\u002Fa>, \n            the fully managed cloud service for Milvus, adjust the \u003Ccode>uri\u003C\u002Fcode> and \u003Ccode>token\u003C\u002Fcode> \n            according to the \u003Ca href=\"https:\u002F\u002Fdocs.zilliz.com\u002Fdocs\u002Fon-zilliz-cloud-console#free-cluster-details\" \n            target=\"_blank\">Public Endpoint and API Key\u003C\u002Fa> in Zilliz Cloud.\n        \u003C\u002Fli>\n    \u003C\u002Ful>\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (AZURE AI Search)\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"vector_db\", \"AzureSearch\", {\n    \"endpoint\": \"https:\u002F\u002F\u003Cyourazureaisearch>.search.windows.net\",\n    \"index_name\": \"\u003Cyourindex>\",\n    \"api_key\": \"\u003Cyourkey>\",\n    \"vector_field\": \"\"\n})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about Milvus Config:\u003C\u002Fp>\n\n\u003C\u002Fdetails>\n\n#### File Loader Configuration\n\u003Cpre>\u003Ccode>config.set_provider_config(\"file_loader\", \"(FileLoaderName)\", \"(Arguments dict)\")\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The \"FileLoaderName\" can be one of the following: [\"PDFLoader\", \"TextLoader\", \"UnstructuredLoader\"]\u003C\u002Fp>\n\u003Cp> The \"Arguments dict\" is a dictionary that contains the necessary arguments for the File Loader class.\u003C\u002Fp>\n\n\u003Cdetails>\n  \u003Csummary>Example (Unstructured)\u003C\u002Fsummary>\n    \u003Cp>You can use Unstructured in two ways:\u003C\u002Fp>\n    \u003Cul>\n      \u003Cli>With API: Set environment variables \u003Ccode>UNSTRUCTURED_API_KEY\u003C\u002Fcode> and \u003Ccode>UNSTRUCTURED_API_URL\u003C\u002Fcode>\u003C\u002Fli>\n      \u003Cli>Without API: Use the local processing mode by simply not setting these environment variables\u003C\u002Fli>\n    \u003C\u002Ful>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"file_loader\", \"UnstructuredLoader\", {})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cul>\n      \u003Cli>Currently supported file types: [\"pdf\"] (Under development)\u003C\u002Fli>\n      \u003Cli>Installation requirements:\n        \u003Cul>\n          \u003Cli>Install ingest pipeline: \u003Ccode>pip install unstructured-ingest\u003C\u002Fcode>\u003C\u002Fli>\n          \u003Cli>For all document formats: \u003Ccode>pip install \"unstructured[all-docs]\"\u003C\u002Fcode>\u003C\u002Fli>\n          \u003Cli>For specific formats (e.g., PDF only): \u003Ccode>pip install \"unstructured[pdf]\"\u003C\u002Fcode>\u003C\u002Fli>\n        \u003C\u002Ful>\n      \u003C\u002Fli>\n      \u003Cli>More information:\n        \u003Cul>\n          \u003Cli>Unstructured documentation: \u003Ca href=\"https:\u002F\u002Fdocs.unstructured.io\u002Fingestion\u002Foverview\">https:\u002F\u002Fdocs.unstructured.io\u002Fingestion\u002Foverview\u003C\u002Fa>\u003C\u002Fli>\n          \u003Cli>Installation guide: \u003Ca href=\"https:\u002F\u002Fdocs.unstructured.io\u002Fopen-source\u002Finstallation\u002Ffull-installation\">https:\u002F\u002Fdocs.unstructured.io\u002Fopen-source\u002Finstallation\u002Ffull-installation\u003C\u002Fa>\u003C\u002Fli>\n        \u003C\u002Ful>\n      \u003C\u002Fli>\n    \u003C\u002Ful>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Docling)\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"file_loader\", \"DoclingLoader\", {})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> Currently supported file types: please refer to the Docling documentation: https:\u002F\u002Fdocling-project.github.io\u002Fdocling\u002Fusage\u002Fsupported_formats\u002F#supported-output-formats \u003C\u002Fp>\n    \u003Cp> You need to install docling before running, execute: \u003Ccode>pip install docling\u003C\u002Fcode>. More details about Docling: https:\u002F\u002Fdocling-project.github.io\u002Fdocling\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n#### Web Crawler Configuration\n\u003Cpre>\u003Ccode>config.set_provider_config(\"web_crawler\", \"(WebCrawlerName)\", \"(Arguments dict)\")\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The \"WebCrawlerName\" can be one of the following: [\"FireCrawlCrawler\", \"Crawl4AICrawler\", \"JinaCrawler\"]\u003C\u002Fp>\n\u003Cp> The \"Arguments dict\" is a dictionary that contains the necessary arguments for the Web Crawler class.\u003C\u002Fp>\n\n\u003Cdetails>\n  \u003Csummary>Example (FireCrawl)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your FireCrawl API KEY as an env variable \u003Ccode>FIRECRAWL_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"web_crawler\", \"FireCrawlCrawler\", {})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about FireCrawl: https:\u002F\u002Fdocs.firecrawl.dev\u002Fintroduction \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Crawl4AI)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have run \u003Ccode>crawl4ai-setup\u003C\u002Fcode> in your environment.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"web_crawler\", \"Crawl4AICrawler\", {\"browser_config\": {\"headless\": True, \"verbose\": True}})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> You need to install crawl4ai before running, execute: \u003Ccode>pip install crawl4ai\u003C\u002Fcode>. More details about Crawl4AI: https:\u002F\u002Fdocs.crawl4ai.com\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Jina Reader)\u003C\u002Fsummary>\n    \u003Cp> Make sure you have prepared your Jina Reader API KEY as an env variable \u003Ccode>JINA_API_TOKEN\u003C\u002Fcode> or \u003Ccode>JINAAI_API_KEY\u003C\u002Fcode>.\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"web_crawler\", \"JinaCrawler\", {})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> More details about Jina Reader: https:\u002F\u002Fjina.ai\u002Freader\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>Example (Docling)\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"web_crawler\", \"DoclingCrawler\", {})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> Currently supported file types: please refer to the Docling documentation: https:\u002F\u002Fdocling-project.github.io\u002Fdocling\u002Fusage\u002Fsupported_formats\u002F#supported-output-formats \u003C\u002Fp>\n    \u003Cp> You need to install docling before running, execute: \u003Ccode>pip install docling\u003C\u002Fcode>. More details about Docling: https:\u002F\u002Fdocling-project.github.io\u002Fdocling\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\n### Python CLI Mode\n#### Load\n```shell\ndeepsearcher load \"your_local_path_or_url\"\n# load into a specific collection\ndeepsearcher load \"your_local_path_or_url\" --collection_name \"your_collection_name\" --collection_desc \"your_collection_description\"\n```\nExample loading from local file:\n```shell\ndeepsearcher load \"\u002Fpath\u002Fto\u002Fyour\u002Flocal\u002Ffile.pdf\"\n# or more files at once\ndeepsearcher load \"\u002Fpath\u002Fto\u002Fyour\u002Flocal\u002Ffile1.pdf\" \"\u002Fpath\u002Fto\u002Fyour\u002Flocal\u002Ffile2.md\"\n```\nExample loading from url (*Set `FIRECRAWL_API_KEY` in your environment variables, see [FireCrawl](https:\u002F\u002Fdocs.firecrawl.dev\u002Fintroduction) for more details*):\n\n```shell\ndeepsearcher load \"https:\u002F\u002Fwww.wikiwand.com\u002Fen\u002Farticles\u002FDeepSeek\"\n```\n\n#### Query\n```shell\ndeepsearcher query \"Write a report about xxx.\"\n```\n\nMore help information\n```shell\ndeepsearcher --help\n```\nFor more help information about a specific subcommand, you can use `deepsearcher [subcommand] --help`.\n```shell\ndeepsearcher load --help\ndeepsearcher query --help\n```\n\n### Deployment\n\n#### Configure modules\n\nYou can configure all arguments by modifying [config.yaml](.\u002Fconfig.yaml) to set up your system with default modules.\nFor example, set your `OPENAI_API_KEY` in the `llm` section of the YAML file.\n\n#### Start service\nThe main script will run a FastAPI service with default address `localhost:8000`.\n\n```shell\n$ python main.py\n```\n\n#### Access via browser\n\nYou can open url http:\u002F\u002Flocalhost:8000\u002Fdocs in browser to access the web service.\nClick on the button \"Try it out\", it allows you to fill the parameters and directly interact with the API.\n\n\n---\n\n## ❓ Q&A\n\n**Q1**: Why I failed to parse LLM output format \u002F How to select the LLM?\n\n\n**A1**: Small LLMs struggle to follow the prompt to generate a desired response, which usually cause the format parsing problem. A better practice is to use large reasoning models e.g. deepseek-r1 671b, OpenAI o-series, Claude 4 sonnet, etc. as your LLM. \n\n---\n\n**Q2**: \nOSError: We couldn't connect to 'https:\u002F\u002Fhuggingface.co' to load this file, couldn't find it in the cached files and it looks like GPTCache\u002Fparaphrase-albert-small-v2 is not the path to a directory containing a file named config.json.\nCheckout your internet connection or see how to run the library in offline mode at 'https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Ftransformers\u002Finstallation#offline-mode'.\n\n**A2**: This is mainly due to abnormal access to huggingface, which may be a network or permission problem. You can try the following two methods:\n1. If there is a network problem, set up a proxy, try adding the following environment variable.\n```bash\nexport HF_ENDPOINT=https:\u002F\u002Fhf-mirror.com\n```\n2. If there is a permission problem, set up a personal token, try adding the following environment variable.\n```bash\nexport HUGGING_FACE_HUB_TOKEN=xxxx\n```\n\n---\n\n**Q3**: DeepSearcher doesn't run in Jupyter notebook.\n\n**A3**: Install `nest_asyncio` and then put this code block in front of your jupyter notebook.\n\n```\npip install nest_asyncio\n```\n\n```\nimport nest_asyncio\nnest_asyncio.apply()\n```\n\n---\n\n## 🔧 Module Support\n\n### 🔹 Embedding Models\n- [Open-source embedding models](https:\u002F\u002Fmilvus.io\u002Fdocs\u002Fembeddings.md)\n- [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fembeddings\u002Fuse-cases) (`OPENAI_API_KEY` env variable required)\n- [VoyageAI](https:\u002F\u002Fdocs.voyageai.com\u002Fembeddings\u002F) (`VOYAGE_API_KEY` env variable required)\n- [Amazon Bedrock](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002F) (`AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` env variable required)\n- [FastEmbed](https:\u002F\u002Fqdrant.github.io\u002Ffastembed\u002F)\n- [PPIO](https:\u002F\u002Fppinfra.com\u002Fmodel-api\u002Fproduct\u002Fllm-api?utm_source=github_deep-searcher) (`PPIO_API_KEY` env variable required)\n- [Novita AI](https:\u002F\u002Fnovita.ai\u002Fdocs\u002Fapi-reference\u002Fmodel-apis-llm-create-embeddings?utm_source=github_deep-searcher&utm_medium=github_readme&utm_campaign=link) (`NOVITA_API_KEY` env variable required)\n- [IBM watsonx.ai](https:\u002F\u002Fwww.ibm.com\u002Fproducts\u002Fwatsonx-ai\u002Ffoundation-models#ibmembedding) (`WATSONX_APIKEY`, `WATSONX_URL`, `WATSONX_PROJECT_ID` env variables required)\n- [Jiekou.AI](https:\u002F\u002Fjiekou.ai\u002F?utm_source=github_deep-searcher) (`JIEKOU_API_KEY` env variable required)\n\n### 🔹 LLM Support\n- [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels) (`OPENAI_API_KEY` env variable required)\n- [DeepSeek](https:\u002F\u002Fapi-docs.deepseek.com\u002F) (`DEEPSEEK_API_KEY` env variable required)\n- [XAI Grok](https:\u002F\u002Fx.ai\u002Fapi) (`XAI_API_KEY` env variable required)\n- [Anthropic Claude](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fhome) (`ANTHROPIC_API_KEY` env variable required)\n- [SiliconFlow Inference Service](https:\u002F\u002Fdocs.siliconflow.cn\u002Fen\u002Fuserguide\u002Fintroduction) (`SILICONFLOW_API_KEY` env variable required)\n- [PPIO](https:\u002F\u002Fppinfra.com\u002Fmodel-api\u002Fproduct\u002Fllm-api?utm_source=github_deep-searcher) (`PPIO_API_KEY` env variable required)\n- [TogetherAI Inference Service](https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Fintroduction) (`TOGETHER_API_KEY` env variable required)\n- [Google Gemini](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs) (`GEMINI_API_KEY` env variable required)\n- [SambaNova Cloud Inference Service](https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Fintroduction) (`SAMBANOVA_API_KEY` env variable required)\n- [Ollama](https:\u002F\u002Follama.com\u002F)\n- [Novita AI](https:\u002F\u002Fnovita.ai\u002Fdocs\u002Fguides\u002Fintroduction?utm_source=github_deep-searcher&utm_medium=github_readme&utm_campaign=link) (`NOVITA_API_KEY` env variable required)\n- [IBM watsonx.ai](https:\u002F\u002Fwww.ibm.com\u002Fproducts\u002Fwatsonx-ai\u002Ffoundation-models#ibmfm) (`WATSONX_APIKEY`, `WATSONX_URL`, `WATSONX_PROJECT_ID` env variable required)\n- [Jiekou.AI](https:\u002F\u002Fjiekou.ai\u002F?utm_source=github_deep-searcher) (`JIEKOU_API_KEY` env variable required)\n\n### 🔹 Document Loader\n- Local File\n  - PDF(with txt\u002Fmd) loader\n  - [Unstructured](https:\u002F\u002Funstructured.io\u002F) (under development) (`UNSTRUCTURED_API_KEY` and `UNSTRUCTURED_URL` env variables required)\n- Web Crawler\n  - [FireCrawl](https:\u002F\u002Fdocs.firecrawl.dev\u002Fintroduction) (`FIRECRAWL_API_KEY` env variable required)\n  - [Jina Reader](https:\u002F\u002Fjina.ai\u002Freader\u002F) (`JINA_API_TOKEN` env variable required)\n  - [Crawl4AI](https:\u002F\u002Fdocs.crawl4ai.com\u002F) (You should run command `crawl4ai-setup` for the first time)\n\n### 🔹 Vector Database Support\n- [Milvus](https:\u002F\u002Fmilvus.io\u002F) and [Zilliz Cloud](https:\u002F\u002Fwww.zilliz.com\u002F) (fully managed Milvus)\n- [Qdrant](https:\u002F\u002Fqdrant.tech\u002F)\n\n---\n## 📊 Evaluation \nSee the [Evaluation](.\u002Fevaluation) directory for more details.\n\n---\n## 📌 Future Plans\n- Enhance web crawling functionality\n- Support more vector databases (e.g., FAISS...)\n- Add support for additional large models\n- Provide RESTful API interface (**DONE**)\n\nWe welcome contributions! Star & Fork the project and help us build a more powerful DeepSearcher! 🎯\n","![DeepSearcher](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzilliztech_deep-searcher_readme_93586af15086.png)\n\n\u003Cdiv align=\"center\">\n  \n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)\n[![DeepWiki](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDeepWiki-AI%20Docs-orange.svg)](https:\u002F\u002Fdeepwiki.com\u002Fzilliztech\u002Fdeep-searcher)\n[![Twitter](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl\u002Fhttps\u002Ftwitter.com\u002Fzilliz_universe.svg?style=social&label=Follow%20%40Zilliz)](https:\u002F\u002Ftwitter.com\u002Fzilliz_universe)\n\u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FmKc3R95yE5\">\u003Cimg height=\"20\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white\" alt=\"discord\"\u002F>\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\n---\n\nDeepSearcher 结合了最前沿的大型语言模型（OpenAI o3、Qwen3、DeepSeek、Grok 4、Claude 4 Sonnet、Llama 4、QwQ 等）和向量数据库（Milvus、Zilliz Cloud 等），能够基于私有数据进行搜索、评估和推理，提供高度准确的答案和全面的报告。该项目适用于企业知识管理、智能问答系统以及信息检索等场景。\n\n![Architecture](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzilliztech_deep-searcher_readme_b92dca6a34a4.png)\n\n## 🚀 特性\n\n- **私有数据搜索**：在确保数据安全的前提下，最大化利用企业内部数据。必要时，还可整合在线内容以获得更精准的答案。\n- **向量数据库管理**：支持 Milvus 等向量数据库，允许对数据进行分区以实现高效检索。\n- **灵活的嵌入选项**：兼容多种嵌入模型，便于选择最优方案。\n- **多模型支持**：支持 DeepSeek、OpenAI 等大模型，用于智能问答和内容生成。\n- **文档加载器**：支持本地文件加载，网页爬取功能正在开发中。\n\n---\n\n## 🎉 演示\n![demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzilliztech_deep-searcher_readme_01022c0b88d9.gif)\n\n\n## 📖 快速入门\n\n### 安装\n可通过以下任一方法安装 DeepSearcher：\n\n#### 方法一：使用 pip\n创建并激活虚拟环境（推荐 Python 3.10 版本）。\n```bash\npython -m venv .venv\nsource .venv\u002Fbin\u002Factivate\n```\n安装 DeepSearcher：\n```bash\npip install deepsearcher\n```\n\n如需安装可选依赖项，例如 ollama：\n```bash\npip install \"deepsearcher[ollama]\"\n```\n\n#### 方法二：以开发模式安装\n我们建议使用 [uv](https:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fuv) 进行更快、更可靠的安装。请按照 [官方安装指南](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Finstallation\u002F) 安装它。\n\n克隆仓库并进入项目目录：\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002Fzilliztech\u002Fdeep-searcher.git && cd deep-searcher\n```\n同步并安装依赖项：\n```shell\nuv sync\nsource .venv\u002Fbin\u002Factivate\n```\n\n更多详细的开发环境搭建及可选依赖项安装方式，请参阅 [CONTRIBUTING.md](CONTRIBUTING.md#development-environment-setup-with-uv)。\n\n### 快速入门演示\n\n要运行此快速入门演示，请在您的环境变量中准备好 `OPENAI_API_KEY`。如果您更改了配置中的 LLM，请务必准备相应的 API 密钥。\n\n```python\nfrom deepsearcher.configuration import Configuration, init_config\nfrom deepsearcher.online_query import query\n\nconfig = Configuration()\n\n# 在此处自定义您的配置，\n# 更多配置详情请参见下方的“配置详情”部分。\nconfig.set_provider_config(\"llm\", \"OpenAI\", {\"model\": \"o1-mini\"})\nconfig.set_provider_config(\"embedding\", \"OpenAIEmbedding\", {\"model\": \"text-embedding-ada-002\"})\ninit_config(config = config)\n\n# 加载您的本地数据\nfrom deepsearcher.offline_loading import load_from_local_files\nload_from_local_files(paths_or_directory=your_local_path)\n\n# （可选）从网页爬取加载（需设置 `FIRECRAWL_API_KEY` 环境变量）\nfrom deepsearcher.offline_loading import load_from_website\nload_from_website(urls=website_url)\n\n# 查询\nresult = query(\"写一篇关于 xxx 的报告。\") # 您的问题在此处\n```\n### 配置详情：\n#### LLM 配置\n\n\u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"(LLMName)\", \"(Arguments dict)\")\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>“LLMName”可以是以下之一：[\"DeepSeek\", \"OpenAI\", \"XAI\", \"SiliconFlow\", \"Aliyun\", \"PPIO\", \"TogetherAI\", \"Gemini\", \"Ollama\", \"Novita\", \"Jiekou.AI\"]\u003C\u002Fp>\n\u003Cp>“Arguments dict”是一个包含该 LLM 类所需参数的字典。\u003C\u002Fp>\n\n\u003Cdetails>\n  \u003Csummary>示例（OpenAI）\u003C\u002Fsummary>\n    \u003Cp>请确保您已将 OPENAI API KEY 设置为环境变量 \u003Ccode>OPENAI_API_KEY\u003C\u002Fcode>。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"OpenAI\", {\"model\": \"o1-mini\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp>有关 OpenAI 模型的更多信息：https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（阿里云百炼的 Qwen3）\u003C\u002Fsummary>\n    \u003Cp>请确保您已将百炼 API KEY 设置为环境变量 \u003Ccode>DASHSCOPE_API_KEY\u003C\u002Fcode>。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"Aliyun\", {\"model\": \"qwen-plus-latest\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp>有关阿里云百炼模型的更多信息：https:\u002F\u002Fbailian.console.aliyun.com \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n  \u003Csummary>示例（来自 OpenRouter 的 Qwen3）\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"OpenAI\", {\"model\": \"qwen\u002Fqwen3-235b-a22b:free\", \"base_url\": \"https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\", \"api_key\": \"OPENROUTER_API_KEY\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp>有关 OpenRouter 模型的更多信息：https:\u002F\u002Fopenrouter.ai\u002Fqwen\u002Fqwen3-235b-a22b:free \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n  \u003Csummary>示例（来自官方的 DeepSeek）\u003C\u002Fsummary>\n    \u003Cp>请确保您已将 DEEPSEEK API KEY 设置为环境变量 \u003Ccode>DEEPSEEK_API_KEY\u003C\u002Fcode>。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"DeepSeek\", {\"model\": \"deepseek-reasoner\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp>有关 DeepSeek 的更多信息：https:\u002F\u002Fapi-docs.deepseek.com\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（来自 SiliconFlow 的 DeepSeek）\u003C\u002Fsummary>\n    \u003Cp>请确保您已将 SILICONFLOW API KEY 设置为环境变量 \u003Ccode>SILICONFLOW_API_KEY\u003C\u002Fcode>。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"SiliconFlow\", {\"model\": \"deepseek-ai\u002FDeepSeek-R1\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp>有关 SiliconFlow 的更多信息：https:\u002F\u002Fdocs.siliconflow.cn\u002Fquickstart \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（来自 TogetherAI 的 DeepSeek）\u003C\u002Fsummary>\n    \u003Cp>请确保您已将 TOGETHER API KEY 设置为环境变量 \u003Ccode>TOGETHER_API_KEY\u003C\u002Fcode>。\u003C\u002Fp>\n    对于 DeepSeek R1：\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"TogetherAI\", {\"model\": \"deepseek-ai\u002FDeepSeek-R1\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    对于 Llama 4：\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"TogetherAI\", {\"model\": \"meta-llama\u002FLlama-4-Scout-17B-16E-Instruct\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp>在运行之前需要先安装 together，执行：\u003Ccode>pip install together\u003C\u002Fcode>。有关 TogetherAI 的更多信息：https:\u002F\u002Fwww.together.ai\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（XAI Grok）\u003C\u002Fsummary>\n    \u003Cp> 请确保已将 XAI API 密钥作为环境变量 \u003Ccode>XAI_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"XAI\", {\"model\": \"grok-4-0709\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 XAI Grok 的更多详情：https:\u002F\u002Fdocs.x.ai\u002Fdocs\u002Foverview#featured-models \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Claude）\u003C\u002Fsummary>\n    \u003Cp> 请确保已将 ANTHROPIC API 密钥作为环境变量 \u003Ccode>ANTHROPIC_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"Anthropic\", {\"model\": \"claude-sonnet-4-0\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 Anthropic Claude 的更多详情：https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fhome \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Google Gemini）\u003C\u002Fsummary>\n    \u003Cp> 请确保已将 GEMINI API 密钥作为环境变量 \u003Ccode>GEMINI_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config('llm', 'Gemini', { 'model': 'gemini-2.0-flash' })\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 在运行前需要安装 gemini，请执行：\u003Ccode>pip install google-genai\u003C\u002Fcode>。关于 Gemini 的更多详情：https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（来自 PPIO 的 DeepSeek）\u003C\u002Fsummary>\n    \u003Cp> 请确保已将 PPIO API 密钥作为环境变量 \u003Ccode>PPIO_API_KEY\u003C\u002Fcode> 准备好。您可以在 \u003Ca href=\"https:\u002F\u002Fppinfra.com\u002Fsettings\u002Fkey-management?utm_source=github_deep-searcher\">此处\u003C\u002Fa>创建 API 密钥。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"PPIO\", {\"model\": \"deepseek\u002Fdeepseek-r1-turbo\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 PPIO 的更多详情：https:\u002F\u002Fppinfra.com\u002Fdocs\u002Fget-started\u002Fquickstart.html?utm_source=github_deep-searcher \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（来自 Jiekou.AI 的 Claude Sonnet 4.5）\u003C\u002Fsummary>\n    \u003Cp> 请确保已将 Jiekou.AI API 密钥作为环境变量 \u003Ccode>JIEKOU_API_KEY\u003C\u002Fcode> 准备好。您可以在 \u003Ca href=\"https:\u002F\u002Fjiekou.ai\u002Fsettings\u002Fkey-management?utm_source=github_deep-searcher\">此处\u003C\u002Fa>创建 API 密钥。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"JiekouAI\", {\"model\": \"claude-sonnet-4-5-20250929\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 Jiekou.AI 的更多详情：https:\u002F\u002Fdocs.jiekou.ai\u002Fdocs\u002Fsupport\u002Fquickstart?utm_source=github_deep-searcher \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Ollama）\u003C\u002Fsummary>\n  \u003Cp> 请按照 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjmorganca\u002Follama\">这些说明\u003C\u002Fa>设置并运行本地 Ollama 实例：\u003C\u002Fp>\n  \u003Cp> \u003Ca href=\"https:\u002F\u002Follama.ai\u002Fdownload\">下载\u003C\u002Fa>并安装 Ollama 到支持的平台（包括 Windows Subsystem for Linux）。\u003C\u002Fp>\n  \u003Cp> 通过 \u003Ca href=\"https:\u002F\u002Follama.ai\u002Flibrary\">模型库\u003C\u002Fa>查看可用模型列表。\u003C\u002Fp>\n  \u003Cp> 使用 \u003Ccode>ollama pull &lt;name-of-model&gt;\u003C\u002Fcode> 获取可用的 LLM 模型。\u003C\u002Fp>\n  \u003Cp> 示例： \u003Ccode>ollama pull qwen3\u003C\u002Fcode>\u003C\u002Fp>\n  \u003Cp> 要直接从命令行与模型对话，使用 \u003Ccode>ollama run &lt;name-of-model&gt;\u003C\u002Fcode>。\u003C\u002Fp>\n  \u003Cp> 默认情况下，Ollama 在 \u003Ca href=\"http:\u002F\u002Flocalhost:11434\">http:\u002F\u002Flocalhost:11434\u003C\u002Fa> 上提供用于运行和管理模型的 REST API。\u003C\u002Fp>\n  \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"Ollama\", {\"model\": \"qwen3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Volcengine）\u003C\u002Fsummary>\n    \u003Cp> 请确保已将 Volcengine API 密钥作为环境变量 \u003Ccode>VOLCENGINE_API_KEY\u003C\u002Fcode> 准备好。您可以在 \u003Ca href=\"https:\u002F\u002Fconsole.volcengine.com\u002Fark\u002Fregion:ark+cn-beijing\u002FapiKey\">此处\u003C\u002Fa>创建 API 密钥。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"Volcengine\", {\"model\": \"deepseek-r1-250120\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 Volcengine 的更多详情：https:\u002F\u002Fwww.volcengine.com\u002Fdocs\u002F82379\u002F1099455?utm_source=github_deep-searcher \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（GLM）\u003C\u002Fsummary>\n    \u003Cp> 请确保已将 GLM API 密钥作为环境变量 \u003Ccode>GLM_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"GLM\", {\"model\": \"glm-4-plus\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 在运行前需要安装 zhipuai，请执行：\u003Ccode>pip install zhipuai\u003C\u002Fcode>。关于 GLM 的更多详情：https:\u002F\u002Fbigmodel.cn\u002Fdev\u002Fwelcome \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Amazon Bedrock）\u003C\u002Fsummary>\n    \u003Cp> 请确保已将 Amazon Bedrock API 密钥作为环境变量 \u003Ccode>AWS_ACCESS_KEY_ID\u003C\u002Fcode> 和 \u003Ccode>AWS_SECRET_ACCESS_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"Bedrock\", {\"model\": \"us.deepseek.r1-v1:0\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 在运行前需要安装 boto3，请执行：\u003Ccode>pip install boto3\u003C\u002Fcode>。关于 Amazon Bedrock 的更多详情：https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（IBM watsonx.ai）\u003C\u002Fsummary>\n    \u003Cp> 请确保已将 watsonx.ai 的凭据作为环境变量 \u003Ccode>WATSONX_APIKEY\u003C\u002Fcode>、\u003Ccode>WATSONX_URL\u003C\u002Fcode> 和 \u003Ccode>WATSONX_PROJECT_ID\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"llm\", \"watsonx\", {\"model\": \"us.deepseek.r1-v1:0\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 在运行前需要安装 ibm-watsonx-ai，请执行：\u003Ccode>pip install ibm-watsonx-ai\u003C\u002Fcode>。关于 IBM watsonx.ai 的更多详情：https:\u002F\u002Fwww.ibm.com\u002Fproducts\u002Fwatsonx-ai\u002Ffoundation-models \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\n#### 嵌入模型配置\n\u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"(EmbeddingModelName)\", \"(Arguments dict)\")\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>“EmbeddingModelName”可以是以下之一：[\"MilvusEmbedding\", \"OpenAIEmbedding\", \"VoyageEmbedding\", \"SiliconflowEmbedding\", \"PPIOEmbedding\", \"NovitaEmbedding\", \"JiekouAIEmbedding\"]\u003C\u002Fp>\n\u003Cp> “Arguments dict”是一个字典，包含嵌入模型类所需的必要参数。\u003C\u002Fp>\n\n\u003Cdetails>\n  \u003Csummary>示例（OpenAI 嵌入）\u003C\u002Fsummary>\n    \u003Cp> 请确保已将 OpenAI API 密钥作为环境变量 \u003Ccode>OPENAI_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"OpenAIEmbedding\", {\"model\": \"text-embedding-3-small\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 OpenAI 模型的更多详情：https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fembeddings\u002Fuse-cases \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Azure 版 OpenAI 嵌入）\u003C\u002Fsummary>\n    \u003Cp> 请确保已将 OpenAI API 密钥作为环境变量 \u003Ccode>OPENAI_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"OpenAIEmbedding\", {\n    \"model\": \"text-embedding-ada-002\",\n    \"azure_endpoint\": \"https:\u002F\u002F\u003Cyouraifoundry>.openai.azure.com\u002F\",\n    \"api_version\": \"2023-05-15\"\n})\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Pymilvus内置嵌入模型）\u003C\u002Fsummary>\n    \u003Cp> 使用 Pymilvus 中的内置嵌入模型，您可以将模型名称设置为 \u003Ccode>\"default\"\u003C\u002Fcode>、\u003Ccode>\"BAAI\u002Fbge-base-en-v1.5\"\u003C\u002Fcode>、\u003Ccode>\"BAAI\u002Fbge-large-en-v1.5\"\u003C\u002Fcode>、\u003Ccode>\"jina-embeddings-v3\"\u003C\u002Fcode> 等。 \u003Cbr\u002F>\n    更多详情请参阅 [milvus_embedding.py](deepsearcher\u002Fembedding\u002Fmilvus_embedding.py)。  \u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"MilvusEmbedding\", {\"model\": \"BAAI\u002Fbge-base-en-v1.5\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"MilvusEmbedding\", {\"model\": \"jina-embeddings-v3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 对于 Jina 的嵌入模型，您需要\u003Ccode>JINAAI_API_KEY\u003C\u002Fcode>。\u003C\u002Fp>\n    \u003Cp> 在运行之前，您需要安装 pymilvus model，请执行：\u003Ccode>pip install pymilvus.model\u003C\u002Fcode>。关于 Pymilvus 的更多详情：https:\u002F\u002Fmilvus.io\u002Fdocs\u002Fembeddings.md \u003C\u002Fp>\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（VoyageAI 嵌入）\u003C\u002Fsummary>\n    \u003Cp> 请确保您已将 VOYAGE API KEY 作为环境变量 \u003Ccode>VOYAGE_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"VoyageEmbedding\", {\"model\": \"voyage-3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 在运行前，您需要安装 voyageai，请执行：\u003Ccode>pip install voyageai\u003C\u002Fcode>。关于 VoyageAI 的更多详情：https:\u002F\u002Fdocs.voyageai.com\u002Fembeddings\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Amazon Bedrock 嵌入）\u003C\u002Fsummary>\n  \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"BedrockEmbedding\", {\"model\": \"amazon.titan-embed-text-v2:0\"})\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003Cp> 在运行前，您需要安装 boto3，请执行：\u003Ccode>pip install boto3\u003C\u002Fcode>。关于 Amazon Bedrock 的更多详情：https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Novita AI 嵌入）\u003C\u002Fsummary>\n    \u003Cp> 请确保您已将 Novita AI API KEY 作为环境变量 \u003Ccode>NOVITA_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"NovitaEmbedding\", {\"model\": \"baai\u002Fbge-m3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 Novita AI 的更多详情：https:\u002F\u002Fnovita.ai\u002Fdocs\u002Fapi-reference\u002Fmodel-apis-llm-create-embeddings?utm_source=github_deep-searcher&utm_medium=github_readme&utm_campaign=link \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Siliconflow 嵌入）\u003C\u002Fsummary>\n    \u003Cp> 请确保您已将 Siliconflow API KEY 作为环境变量 \u003Ccode>SILICONFLOW_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"SiliconflowEmbedding\", {\"model\": \"BAAI\u002Fbge-m3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 Siliconflow 的更多详情：https:\u002F\u002Fdocs.siliconflow.cn\u002Fen\u002Fapi-reference\u002Fembeddings\u002Fcreate-embeddings \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Volcengine 嵌入）\u003C\u002Fsummary>\n    \u003Cp> 请确保您已将 Volcengine API KEY 作为环境变量 \u003Ccode>VOLCENGINE_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"VolcengineEmbedding\", {\"model\": \"doubao-embedding-text-240515\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 Volcengine 的更多详情：https:\u002F\u002Fwww.volcengine.com\u002Fdocs\u002F82379\u002F1302003 \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（GLM 嵌入）\u003C\u002Fsummary>\n    \u003Cp> 请确保您已将 GLM API KEY 作为环境变量 \u003Ccode>GLM_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"GLMEmbedding\", {\"model\": \"embedding-3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 在运行前，您需要安装 zhipuai，请执行：\u003Ccode>pip install zhipuai\u003C\u002Fcode>。关于 GLM 的更多详情：https:\u002F\u002Fbigmodel.cn\u002Fdev\u002Fwelcome \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Google Gemini 嵌入）\u003C\u002Fsummary>\n    \u003Cp> 请确保您已将 Gemini API KEY 作为环境变量 \u003Ccode>GEMINI_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"GeminiEmbedding\", {\"model\": \"text-embedding-004\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 在运行前，您需要安装 gemini，请执行：\u003Ccode>pip install google-genai\u003C\u002Fcode>。关于 Gemini 的更多详情：https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Ollama 嵌入）\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"OllamaEmbedding\", {\"model\": \"bge-m3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 在运行前，您需要安装 ollama，请执行：\u003Ccode>pip install ollama\u003C\u002Fcode>。关于 Ollama Python SDK 的更多详情：https:\u002F\u002Fgithub.com\u002Follama\u002Follama-python \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（PPIO 嵌入）\u003C\u002Fsummary>\n    \u003Cp> 请确保您已将 PPIO API KEY 作为环境变量 \u003Ccode>PPIO_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"PPIOEmbedding\", {\"model\": \"baai\u002Fbge-m3\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 PPIO 的更多详情：https:\u002F\u002Fppinfra.com\u002Fdocs\u002Fget-started\u002Fquickstart.html?utm_source=github_deep-searcher \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Jiekou.AI 嵌入）\u003C\u002Fsummary>\n    \u003Cp> 请确保您已将 Jiekou.AI API KEY 作为环境变量 \u003Ccode>JIEKOU_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"JiekouAIEmbedding\", {\"model\": \"qwen\u002Fqwen3-embedding-8b\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 Jiekou.AI 的更多详情：https:\u002F\u002Fdocs.jiekou.ai\u002Fdocs\u002Fsupport\u002Fquickstart?utm_source=github_deep-searcher \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（FastEmbed 嵌入）\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"FastEmbedEmbedding\", {\"model\": \"intfloat\u002Fmultilingual-e5-large\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 在运行前，您需要安装 fastembed，请执行：\u003Ccode>pip install fastembed\u003C\u002Fcode>。关于 fastembed 的更多详情：https:\u002F\u002Fgithub.com\u002Fqdrant\u002Ffastembed \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n  \u003Csummary>示例（IBM watsonx.ai 嵌入）\u003C\u002Fsummary>\n    \u003Cp> 请确保您已将 WatsonX 凭证作为环境变量 \u003Ccode>WATSONX_APIKEY\u003C\u002Fcode>、\u003Ccode>WATSONX_URL\u003C\u002Fcode> 和 \u003Ccode>WATSONX_PROJECT_ID\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"WatsonXEmbedding\", {\"model\": \"ibm\u002Fslate-125m-english-rtrvr-v2\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"embedding\", \"WatsonXEmbedding\", {\"model\": \"sentence-transformers\u002Fall-minilm-l6-v2\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 在运行前，您需要安装 ibm-watsonx-ai，请执行：\u003Ccode>pip install ibm-watsonx-ai\u003C\u002Fcode>。关于 IBM watsonx.ai 的更多详情：https:\u002F\u002Fwww.ibm.com\u002Fproducts\u002Fwatsonx-ai\u002Ffoundation-models \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n#### 向量数据库配置\n\u003Cpre>\u003Ccode>config.set_provider_config(\"vector_db\", \"(VectorDBName)\", \"(Arguments dict)\")\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>“VectorDBName”可以是以下之一：[\"Milvus\"]（开发中）\u003C\u002Fp>\n\u003Cp> “Arguments dict”是一个字典，包含向量数据库类所需的必要参数。\u003C\u002Fp>\n\n\u003Cdetails>\n  \u003Csummary>示例（Milvus）\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"vector_db\", \"Milvus\", {\"uri\": \".\u002Fmilvus.db\", \"token\": \"\"})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 Milvus 配置的更多详情：\u003C\u002Fp>\n    \u003Cul>\n        \u003Cli>\n            将 \u003Ccode>uri\u003C\u002Fcode> 设置为本地文件，例如 \u003Ccode>.\u002Fmilvus.db\u003C\u002Fcode>,是最便捷的方式，因为它会自动利用 \u003Ca href=\"https:\u002F\u002Fmilvus.io\u002Fdocs\u002Fmilvus_lite.md\" target=\"_blank\">Milvus Lite\u003C\u002Fa> 将所有数据存储在这个文件中。\n        \u003C\u002Fli>\n    \u003C\u002Ful>\n    \u003Cul>\n      \u003Cli>\n          如果你有一个大规模的数据集，可以使用 \n          \u003Ca href=\"https:\u002F\u002Fmilvus.io\u002Fdocs\u002Fquickstart.md\" target=\"_blank\">Docker 或 Kubernetes\u003C\u002Fa> 来搭建性能更高的 Milvus 服务器。在这种情况下，将服务器 URI，例如 \u003Ccode>http:\u002F\u002Flocalhost:19530\u003C\u002Fcode>,作为你的 \u003Ccode>uri\u003C\u002Fcode>。你还可以使用 Milvus 支持的其他连接参数，如 \u003Ccode>host\u003C\u002Fcode>、\u003Ccode>user\u003C\u002Fcode>、\u003Ccode>password\u003C\u002Fcode> 或 \u003Ccode>secure\u003C\u002Fcode>。\n        \u003C\u002Fli>\n    \u003C\u002Ful>\n    \u003Cul>\n        \u003Cli>\n            如果你想使用 \u003Ca href=\"https:\u002F\u002Fzilliz.com\u002Fcloud\" target=\"_blank\">Zilliz Cloud\u003C\u002Fa>,即 Milvus 的全托管云服务，则需要根据 Zilliz Cloud 中的 \u003Ca href=\"https:\u002F\u002Fdocs.zilliz.com\u002Fdocs\u002Fon-zilliz-cloud-console#free-cluster-details\" \n            target=\"_blank\">公共端点和 API 密钥\u003C\u002Fa>来调整 \u003Ccode>uri\u003C\u002Fcode> 和 \u003Ccode>token\u003C\u002Fcode>。\n        \u003C\u002Fli>\n    \u003C\u002Ful>\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（AZURE AI 搜索）\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"vector_db\", \"AzureSearch\", {\n    \"endpoint\": \"https:\u002F\u002F\u003Cyourazureaisearch>.search.windows.net\",\n    \"index_name\": \"\u003Cyourindex>\",\n    \"api_key\": \"\u003Cyourkey>\",\n    \"vector_field\": \"\"\n})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 关于 Milvus 配置的更多详情：\u003C\u002Fp>\n\n\u003C\u002Fdetails>\n\n#### 文件加载器配置\n\u003Cpre>\u003Ccode>config.set_provider_config(\"file_loader\", \"(FileLoaderName)\", \"(Arguments dict)\")\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\"FileLoaderName\" 可以是以下之一：[\"PDFLoader\", \"TextLoader\", \"UnstructuredLoader\"]\u003C\u002Fp>\n\u003Cp>\"Arguments dict\" 是一个字典，包含 File Loader 类所需的必要参数。\u003C\u002Fp>\n\n\u003Cdetails>\n  \u003Csummary>示例（Unstructured）\u003C\u002Fsummary>\n    \u003Cp>你可以通过两种方式使用 Unstructured：\u003C\u002Fp>\n    \u003Cul>\n      \u003Cli>使用 API：设置环境变量 \u003Ccode>UNSTRUCTURED_API_KEY\u003C\u002Fcode> 和 \u003Ccode>UNSTRUCTURED_API_URL\u003C\u002Fcode>\u003C\u002Fli>\n      \u003Cli>不使用 API：直接使用本地处理模式，只需不设置这些环境变量即可\u003C\u002Fli>\n    \u003C\u002Ful>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"file_loader\", \"UnstructuredLoader\", {})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cul>\n      \u003Cli>目前支持的文件类型：[\"pdf\"]（正在开发中）\u003C\u002Fli>\n      \u003Cli>安装要求：\n        \u003Cul>\n          \u003Cli>安装摄取管道： \u003Ccode>pip install unstructured-ingest\u003C\u002Fcode>\u003C\u002Fli>\n          \u003Cli>支持所有文档格式： \u003Ccode>pip install \"unstructured[all-docs]\"\u003C\u002Fcode>\u003C\u002Fli>\n          \u003Cli>仅支持特定格式（例如 PDF）： \u003Ccode>pip install \"unstructured[pdf]\"\u003C\u002Fcode>\u003C\u002Fli>\n        \u003C\u002Ful>\n      \u003C\u002Fli>\n      \u003Cli>更多信息：\n        \u003Cul>\n          \u003Cli>Unstructured 文档： \u003Ca href=\"https:\u002F\u002Fdocs.unstructured.io\u002Fingestion\u002Foverview\">https:\u002F\u002Fdocs.unstructured.io\u002Fingestion\u002Foverview\u003C\u002Fa>\u003C\u002Fli>\n          \u003Cli>安装指南： \u003Ca href=\"https:\u002F\u002Fdocs.unstructured.io\u002Fopen-source\u002Finstallation\u002Ffull-installation\">https:\u002F\u002Fdocs.unstructured.io\u002Fopen-source\u002Finstallation\u002Ffull-installation\u003C\u002Fa>\u003C\u002Fli>\n        \u003C\u002Ful>\n      \u003C\u002Fli>\n    \u003C\u002Ful>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Docling）\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"file_loader\", \"DoclingLoader\", {})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp> 目前支持的文件类型，请参考 Docling 文档： https:\u002F\u002Fdocling-project.github.io\u002Fdocling\u002Fusage\u002Fsupported_formats\u002F#supported-output-formats \u003C\u002Fp>\n    \u003Cp> 在运行之前需要安装 Docling，执行命令：\u003Ccode>pip install docling\u003C\u002Fcode>。关于 Docling 的更多详情： https:\u002F\u002Fdocling-project.github.io\u002Fdocling\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n#### 网络爬虫配置\n\u003Cpre>\u003Ccode>config.set_provider_config(\"web_crawler\", \"(WebCrawlerName)\", \"(Arguments dict)\")\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\"WebCrawlerName\" 可以是以下之一：[\"FireCrawlCrawler\", \"Crawl4AICrawler\", \"JinaCrawler\"]\u003C\u002Fp>\n\u003Cp>\"Arguments dict\" 是一个字典，包含 Web Crawler 类所需的必要参数。\u003C\u002Fp>\n\n\u003Cdetails>\n  \u003Csummary>示例（FireCrawl）\u003C\u002Fsummary>\n    \u003Cp>请确保已将 FireCrawl API KEY 作为环境变量 \u003Ccode>FIRECRAWL_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"web_crawler\", \"FireCrawlCrawler\", {})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp>关于 FireCrawl 的更多详情： https:\u002F\u002Fdocs.firecrawl.dev\u002Fintroduction \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Crawl4AI）\u003C\u002Fsummary>\n    \u003Cp>请确保已在环境中运行过 \u003Ccode>crawl4ai-setup\u003C\u002Fcode>。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"web_crawler\", \"Crawl4AICrawler\", {\"browser_config\": {\"headless\": True, \"verbose\": True}})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp>在运行之前需要安装 Crawl4AI，执行命令：\u003Ccode>pip install crawl4ai\u003C\u002Fcode>。关于 Crawl4AI 的更多详情： https:\u002F\u002Fdocs.crawl4ai.com\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Jina Reader）\u003C\u002Fsummary>\n    \u003Cp>请确保已将 Jina Reader API KEY 作为环境变量 \u003Ccode>JINA_API_TOKEN\u003C\u002Fcode> 或 \u003Ccode>JINAAI_API_KEY\u003C\u002Fcode> 准备好。\u003C\u002Fp>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"web_crawler\", \"JinaCrawler\", {})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp>关于 Jina Reader 的更多详情： https:\u002F\u002Fjina.ai\u002Freader\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>示例（Docling）\u003C\u002Fsummary>\n    \u003Cpre>\u003Ccode>config.set_provider_config(\"web_crawler\", \"DoclingCrawler\", {})\u003C\u002Fcode>\u003C\u002Fpre>\n    \u003Cp>目前支持的文件类型，请参考 Docling 文档： https:\u002F\u002Fdocling-project.github.io\u002Fdocling\u002Fusage\u002Fsupported_formats\u002F#supported-output-formats \u003C\u002Fp>\n    \u003Cp>在运行之前需要安装 Docling，执行命令：\u003Ccode>pip install docling\u003C\u002Fcode>。关于 Docling 的更多详情： https:\u002F\u002Fdocling-project.github.io\u002Fdocling\u002F \u003C\u002Fp>\n\u003C\u002Fdetails>\n\n\n\n\n### Python CLI 模式\n#### 加载\n```shell\ndeepsearcher load \"your_local_path_or_url\"\n# 加载到特定集合\ndeepsearcher load \"your_local_path_or_url\" --collection_name \"your_collection_name\" --collection_desc \"your_collection_description\"\n```\n从本地文件加载示例：\n```shell\ndeepsearcher load \"\u002Fpath\u002Fto\u002Fyour\u002Flocal\u002Ffile.pdf\"\n\n# 或一次加载多个文件\ndeepsearcher load \"\u002Fpath\u002Fto\u002Fyour\u002Flocal\u002Ffile1.pdf\" \"\u002Fpath\u002Fto\u002Fyour\u002Flocal\u002Ffile2.md\"\n```\n从 URL 加载示例（*请在环境变量中设置 `FIRECRAWL_API_KEY`，详情请参阅 [FireCrawl](https:\u002F\u002Fdocs.firecrawl.dev\u002Fintroduction)）：\n\n```shell\ndeepsearcher load \"https:\u002F\u002Fwww.wikiwand.com\u002Fen\u002Farticles\u002FDeepSeek\"\n```\n\n#### 查询\n```shell\ndeepsearcher query \"写一篇关于 xxx 的报告。\"\n```\n\n更多帮助信息\n```shell\ndeepsearcher --help\n```\n如需了解特定子命令的更多信息，可使用 `deepsearcher [子命令] --help`。\n```shell\ndeepsearcher load --help\ndeepsearcher query --help\n```\n\n### 部署\n\n#### 配置模块\n\n您可以通过修改 [config.yaml](.\u002Fconfig.yaml) 来配置所有参数，从而使用默认模块设置您的系统。\n例如，在 YAML 文件的 `llm` 部分设置您的 `OPENAI_API_KEY`。\n\n#### 启动服务\n主脚本将运行一个 FastAPI 服务，默认地址为 `localhost:8000`。\n\n```shell\n$ python main.py\n```\n\n#### 浏览器访问\n\n您可以在浏览器中打开网址 http:\u002F\u002Flocalhost:8000\u002Fdocs 访问 Web 服务。\n点击“Try it out”按钮，您可以填写参数并直接与 API 交互。\n\n\n---\n\n## ❓ 问答\n\n**Q1**: 为什么我无法解析 LLM 的输出格式？如何选择合适的 LLM？\n\n\n**A1**: 小型 LLM 很难按照提示生成期望的响应，这通常会导致格式解析问题。更好的做法是使用大型推理模型，例如 deepseek-r1 671b、OpenAI o 系列、Claude 4 sonnet 等作为您的 LLM。\n\n---\n\n**Q2**:\nOSError: 我们无法连接到 'https:\u002F\u002Fhuggingface.co' 来加载此文件，缓存中也找不到它，而且看起来 GPTCache\u002Fparaphrase-albert-small-v2 并不是包含名为 config.json 文件的目录路径。\n请检查您的网络连接，或参阅 https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Ftransformers\u002Finstallation#offline-mode 了解如何在离线模式下运行该库。\n\n**A2**: 这主要是由于对 Hugging Face 的访问异常，可能是网络或权限问题。您可以尝试以下两种方法：\n1. 如果是网络问题，请设置代理，尝试添加以下环境变量。\n```bash\nexport HF_ENDPOINT=https:\u002F\u002Fhf-mirror.com\n```\n2. 如果是权限问题，请设置个人令牌，尝试添加以下环境变量。\n```bash\nexport HUGGING_FACE_HUB_TOKEN=xxxx\n```\n\n---\n\n**Q3**: DeepSearcher 在 Jupyter Notebook 中无法运行。\n\n**A3**: 安装 `nest_asyncio`，然后在您的 Jupyter Notebook 前面加入以下代码块。\n\n```\npip install nest_asyncio\n```\n\n```\nimport nest_asyncio\nnest_asyncio.apply()\n```\n\n---\n\n## 🔧 模块支持\n\n### 🔹 嵌入模型\n- [开源嵌入模型](https:\u002F\u002Fmilvus.io\u002Fdocs\u002Fembeddings.md)\n- [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fembeddings\u002Fuse-cases)（需要 `OPENAI_API_KEY` 环境变量）\n- [VoyageAI](https:\u002F\u002Fdocs.voyageai.com\u002Fembeddings\u002F)（需要 `VOYAGE_API_KEY` 环境变量）\n- [Amazon Bedrock](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002F)（需要 `AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY` 环境变量）\n- [FastEmbed](https:\u002F\u002Fqdrant.github.io\u002Ffastembed\u002F)\n- [PPIO](https:\u002F\u002Fppinfra.com\u002Fmodel-api\u002Fproduct\u002Fllm-api?utm_source=github_deep-searcher)（需要 `PPIO_API_KEY` 环境变量）\n- [Novita AI](https:\u002F\u002Fnovita.ai\u002Fdocs\u002Fapi-reference\u002Fmodel-apis-llm-create-embeddings?utm_source=github_deep-searcher&utm_medium=github_readme&utm_campaign=link)（需要 `NOVITA_API_KEY` 环境变量）\n- [IBM watsonx.ai](https:\u002F\u002Fwww.ibm.com\u002Fproducts\u002Fwatsonx-ai\u002Ffoundation-models#ibmembedding)（需要 `WATSONX_APIKEY`、`WATSONX_URL` 和 `WATSONX_PROJECT_ID` 环境变量）\n- [Jiekou.AI](https:\u002F\u002Fjiekou.ai\u002F?utm_source=github_deep-searcher)（需要 `JIEKOU_API_KEY` 环境变量）\n\n### 🔹 LLM 支持\n- [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels)（需要 `OPENAI_API_KEY` 环境变量）\n- [DeepSeek](https:\u002F\u002Fapi-docs.deepseek.com\u002F)（需要 `DEEPSEEK_API_KEY` 环境变量）\n- [XAI Grok](https:\u002F\u002Fx.ai\u002Fapi)（需要 `XAI_API_KEY` 环境变量）\n- [Anthropic Claude](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fhome)（需要 `ANTHROPIC_API_KEY` 环境变量）\n- [SiliconFlow 推理服务](https:\u002F\u002Fdocs.siliconflow.cn\u002Fen\u002Fuserguide\u002Fintroduction)（需要 `SILICONFLOW_API_KEY` 环境变量）\n- [PPIO](https:\u002F\u002Fppinfra.com\u002Fmodel-api\u002Fproduct\u002Fllm-api?utm_source=github_deep-searcher)（需要 `PPIO_API_KEY` 环境变量）\n- [TogetherAI 推理服务](https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Fintroduction)（需要 `TOGETHER_API_KEY` 环境变量）\n- [Google Gemini](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs)（需要 `GEMINI_API_KEY` 环境变量）\n- [SambaNova 云推理服务](https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Fintroduction)（需要 `SAMBANOVA_API_KEY` 环境变量）\n- [Ollama](https:\u002F\u002Follama.com\u002F)\n- [Novita AI](https:\u002F\u002Fnovita.ai\u002Fdocs\u002Fguides\u002Fintroduction?utm_source=github_deep-searcher&utm_medium=github_readme&utm_campaign=link)（需要 `NOVITA_API_KEY` 环境变量）\n- [IBM watsonx.ai](https:\u002F\u002Fwww.ibm.com\u002Fproducts\u002Fwatsonx-ai\u002Ffoundation-models#ibmfm)（需要 `WATSONX_APIKEY`、`WATSONX_URL` 和 `WATSONX_PROJECT_ID` 环境变量）\n- [Jiekou.AI](https:\u002F\u002Fjiekou.ai\u002F?utm_source=github_deep-searcher)（需要 `JIEKOU_API_KEY` 环境变量）\n\n### 🔹 文档加载器\n- 本地文件\n  - PDF（带 txt\u002Fmd）加载器\n  - [Unstructured](https:\u002F\u002Funstructured.io\u002F)（开发中）（需要 `UNSTRUCTURED_API_KEY` 和 `UNSTRUCTURED_URL` 环境变量）\n- 网页爬虫\n  - [FireCrawl](https:\u002F\u002Fdocs.firecrawl.dev\u002Fintroduction)（需要 `FIRECRAWL_API_KEY` 环境变量）\n  - [Jina Reader](https:\u002F\u002Fjina.ai\u002Freader\u002F)（需要 `JINA_API_TOKEN` 环境变量）\n  - [Crawl4AI](https:\u002F\u002Fdocs.crawl4ai.com\u002F)（首次使用时需运行 `crawl4ai-setup` 命令）\n\n### 🔹 向量数据库支持\n- [Milvus](https:\u002F\u002Fmilvus.io\u002F) 和 [Zilliz Cloud](https:\u002F\u002Fwww.zilliz.com\u002F)（完全托管的 Milvus）\n- [Qdrant](https:\u002F\u002Fqdrant.tech\u002F)\n\n---\n## 📊 评估 \n更多详情请参阅 [Evaluation](.\u002Fevaluation) 目录。\n\n---\n## 📌 未来计划\n- 增强网页爬取功能\n- 支持更多向量数据库（例如 FAISS 等）\n- 增加对更多大型模型的支持\n- 提供 RESTful API 接口（**已完成**）\n\n我们欢迎各位贡献！请给项目点赞并 Fork，帮助我们打造更强大的 DeepSearcher！🎯","# DeepSearcher 快速上手指南\n\nDeepSearcher 是一款结合前沿大语言模型（LLM）与向量数据库（如 Milvus）的开源工具，专为私有数据搜索、评估和推理设计。它适用于企业知识库管理、智能问答系统及信息检索场景，能够提供高精度的答案和综合报告。\n\n## 环境准备\n\n在开始之前，请确保满足以下系统要求和前置依赖：\n\n*   **操作系统**：Linux, macOS, 或 Windows (推荐 WSL)\n*   **Python 版本**：推荐 Python 3.10 及以上版本\n*   **API 密钥**：根据你选择的大模型提供商（如 OpenAI, DeepSeek, 阿里云等），需提前在环境变量中配置对应的 `API_KEY`。\n*   **网络环境**：由于需要下载依赖和连接模型服务，请确保网络畅通。国内用户若遇到下载缓慢问题，可配置 pip 国内镜像源（如清华源、阿里源）。\n\n## 安装步骤\n\n你可以选择以下任一方式进行安装。\n\n### 方式一：使用 pip 安装（推荐）\n\n1.  **创建并激活虚拟环境**：\n    ```bash\n    python -m venv .venv\n    # Linux\u002FmacOS\n    source .venv\u002Fbin\u002Factivate\n    # Windows\n    .venv\\Scripts\\activate\n    ```\n\n2.  **安装 DeepSearcher**：\n    ```bash\n    pip install deepsearcher\n    ```\n    *(可选) 若需使用 Ollama 等额外依赖：*\n    ```bash\n    pip install \"deepsearcher[ollama]\"\n    ```\n\n### 方式二：源码安装（开发模式）\n\n推荐使用 `uv` 进行更快速的依赖管理。\n\n1.  **克隆项目并进入目录**：\n    ```shell\n    git clone https:\u002F\u002Fgithub.com\u002Fzilliztech\u002Fdeep-searcher.git && cd deep-searcher\n    ```\n\n2.  **同步并安装依赖**：\n    ```shell\n    uv sync\n    source .venv\u002Fbin\u002Factivate\n    ```\n\n## 基本使用\n\n以下是最简单的使用流程，包含配置、加载本地数据和查询三个步骤。\n\n> **注意**：运行前请确保已设置环境变量 `OPENAI_API_KEY`（若使用其他模型，请设置对应 Key 并修改配置代码）。\n\n### 1. 初始化配置与加载数据\n\n创建一个 Python 脚本（例如 `main.py`），填入以下代码：\n\n```python\nfrom deepsearcher.configuration import Configuration, init_config\nfrom deepsearcher.online_query import query\nfrom deepsearcher.offline_loading import load_from_local_files\n\n# 1. 初始化配置\nconfig = Configuration()\n\n# 设置 LLM (示例使用 OpenAI o1-mini，可根据需求替换为 DeepSeek, Qwen 等)\nconfig.set_provider_config(\"llm\", \"OpenAI\", {\"model\": \"o1-mini\"})\n\n# 设置 Embedding 模型\nconfig.set_provider_config(\"embedding\", \"OpenAIEmbedding\", {\"model\": \"text-embedding-ada-002\"})\n\ninit_config(config=config)\n\n# 2. 加载本地数据 (替换为你的文件或文件夹路径)\n# 支持 txt, pdf, md 等多种格式\nload_from_local_files(paths_or_directory=\".\u002Fyour_data_folder\")\n\n# (可选) 加载网页数据 (需设置 FIRECRAWL_API_KEY 环境变量)\n# from deepsearcher.offline_loading import load_from_website\n# load_from_website(urls=\"https:\u002F\u002Fexample.com\")\n```\n\n### 2. 执行查询\n\n在同一脚本中或交互式环境中调用查询接口：\n\n```python\n# 3. 发起查询\nresult = query(\"请根据加载的数据写一份关于 xxx 的报告。\")\n\nprint(result)\n```\n\n### 常用模型配置参考\n\nDeepSearcher 支持多种国内外主流大模型，修改 `config.set_provider_config` 即可切换：\n\n*   **DeepSeek (官方)**:\n    ```python\n    # 需设置环境变量 DEEPSEEK_API_KEY\n    config.set_provider_config(\"llm\", \"DeepSeek\", {\"model\": \"deepseek-reasoner\"})\n    ```\n*   **阿里云通义千问 (Qwen)**:\n    ```python\n    # 需设置环境变量 DASHSCOPE_API_KEY\n    config.set_provider_config(\"llm\", \"Aliyun\", {\"model\": \"qwen-plus-latest\"})\n    ```\n*   **Ollama (本地部署)**:\n    ```python\n    # 需先运行 ollama pull qwen3\n    config.set_provider_config(\"llm\", \"Ollama\", {\"model\": \"qwen3\"})\n    ```\n*   **SiliconFlow (硅基流动)**:\n    ```python\n    # 需设置环境变量 SILICONFLOW_API_KEY\n    config.set_provider_config(\"llm\", \"SiliconFlow\", {\"model\": \"deepseek-ai\u002FDeepSeek-R1\"})\n    ```\n\n更多模型支持及详细参数请参考官方配置文档。","某大型制造企业的技术合规团队需要每周从数千页的内部设备维修手册、历史故障报告及最新行业标准中，整理出针对新型号机器人的安全合规分析报告。\n\n### 没有 deep-searcher 时\n- **信息检索如大海捞针**：工程师需手动在多个文件夹和系统中搜索关键词，耗时数小时才能拼凑出零散信息，极易遗漏关键的历史故障案例。\n- **数据孤岛导致判断偏差**：内部私有数据（如未公开的维修日志）与外部最新行业法规无法自动关联，导致报告往往缺乏全面性，存在合规盲区。\n- **人工整合效率低下**：收集到的碎片化信息需要人工阅读、理解并重新撰写报告，不仅速度慢，还容易因疲劳产生人为错误。\n- **数据安全顾虑重重**：为了获取更智能的分析，团队不敢将敏感的內部技术文档上传至公共 AI 平台，只能放弃使用先进的生成式 AI 能力。\n\n### 使用 deep-searcher 后\n- **私有数据秒级精准定位**：deep-searcher 利用向量数据库直接索引本地维修手册和故障库，结合 LLM 的推理能力，能在几秒钟内精准提取跨文档的关键证据链。\n- **内外数据融合深度推理**：工具自动将企业内部数据与联网获取的最新行业标准进行交叉验证，生成的分析逻辑严密，确保每一份结论都有据可查。\n- **自动化生成专业报告**：只需输入一个指令，deep-searcher 即可自动完成信息检索、评估和推理，直接输出结构完整、引用清晰的高质量合规报告，效率提升数十倍。\n- **本地部署保障数据隐私**：整个检索与推理过程在企业内部环境或受控云环境中运行，敏感技术数据不出域，让团队能放心地利用最强的大模型能力。\n\ndeep-searcher 将原本需要数天的人工调研工作压缩至分钟级，同时确保了企业核心数据的安全与决策依据的全面性。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzilliztech_deep-searcher_0715e5f4.png","zilliztech","Zilliz","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fzilliztech_c42ecbb4.png","Vector Database for Enterprise-grade AI and LLM applications",null,"info@zilliz.com","zilliz_universe","https:\u002F\u002Fzilliz.com\u002Fcloud","https:\u002F\u002Fgithub.com\u002Fzilliztech",[24,28,32],{"name":25,"color":26,"percentage":27},"Python","#3572A5",99.9,{"name":29,"color":30,"percentage":31},"Dockerfile","#384d54",0.1,{"name":33,"color":34,"percentage":35},"Makefile","#427819",0,7749,750,"2026-04-10T04:14:00","Apache-2.0",2,"未说明",{"notes":43,"python":44,"dependencies":45},"该工具主要依赖云端 LLM API（如 OpenAI, DeepSeek, Qwen 等）和本地\u002F云端向量数据库（如 Milvus），而非本地运行大模型，因此对本地 GPU 无强制要求。若使用 Ollama 本地部署模型，需自行安装 Ollama 并拉取对应模型。安装推荐使用 uv 工具以获得更快的速度。使用前需在环境变量中配置相应服务的 API Key（如 OPENAI_API_KEY, DASHSCOPE_API_KEY 等）。","3.10 (推荐)",[46,47,48,49,50,51,52],"deepsearcher","uv (推荐用于开发模式安装)","together (使用 TogetherAI 时需安装)","google-genai (使用 Gemini 时需安装)","zhipuai (使用 GLM 时需安装)","boto3 (使用 Amazon Bedrock 时需安装)","ibm-watsonx-ai (使用 IBM watsonx.ai 时需安装)",[54,55,56,57,58],"开发框架","语言模型","数据工具","其他","Agent",[60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76],"agent","llm","rag","vector-database","deepseek","agentic-rag","milvus","openai","zilliz","deep-research","deepseek-r1","grok","grok3","reasoning-models","claude","llama4","qwen3","ready","2026-03-27T02:49:30.150509","2026-04-11T03:25:16.971363",[81,86,91,96,101,106],{"id":82,"question_zh":83,"answer_zh":84,"source_url":85},28734,"在 Windows 系统上运行时遇到 'ModuleNotFoundError: No module named milvus_lite' 错误如何解决？","这是因为 Milvus Lite 目前不支持 Windows 系统。\n解决方案：\n1. 不要使用本地的 Milvus Lite。\n2. 改为使用在线版 Milvus 服务。\n3. 或者通过 Docker 部署完整的 Milvus 服务器并在 Windows 上连接使用。","https:\u002F\u002Fgithub.com\u002Fzilliztech\u002Fdeep-searcher\u002Fissues\u002F67",{"id":87,"question_zh":88,"answer_zh":89,"source_url":90},28733,"使用 Ollama 运行 deepseek-r1 等小模型时出现 'ValueError: invalid literal for int()' 解析错误怎么办？","该错误通常是因为较小的模型（如 deepseek-r1 8b）无法完全遵循提示词格式，导致返回内容无法被正确解析为整数。据统计，小模型约有 35% 的概率会出现此解析错误。\n解决方案：\n1. 尝试使用参数量更大的模型以提高遵循指令的能力。\n2. 如果必须使用小模型，可能需要调整代码中的解析逻辑以增加容错性。\n维护者计划更新文档说明小模型可能导致解析错误的问题。","https:\u002F\u002Fgithub.com\u002Fzilliztech\u002Fdeep-searcher\u002Fissues\u002F99",{"id":92,"question_zh":93,"answer_zh":94,"source_url":95},28735,"如何在 Jupyter Notebook 中运行 DeepSearcher？遇到 asyncio 相关错误怎么办？","DeepSearcher 默认使用 `asyncio.run()`，这在 Jupyter Notebook 环境中会导致冲突报错。\n解决方案有两种：\n1. （推荐）将代码保存为 `.py` 脚本文件并在终端运行，避免在 Notebook 中直接运行。\n2. 如果必须在 Notebook 中使用，需安装并应用 `nest_asyncio` 库。在代码开头添加：\n```python\nimport nest_asyncio\nnest_asyncio.apply()\n```\n注意：维护者倾向于建议在脚本中运行，而非修改核心依赖来适配 Notebook。","https:\u002F\u002Fgithub.com\u002Fzilliztech\u002Fdeep-searcher\u002Fissues\u002F44",{"id":97,"question_zh":98,"answer_zh":99,"source_url":100},28736,"向 Milvus 插入数据时报错 'string length exceeds max length'（字符串长度超过限制）如何设置字符限制？","当待插入的文本片段长度超过 Milvus 字段限制（默认为 65536）时会报此错。\n解决方案：\n需要调整文本切分策略。请查看项目中的 `.\u002Floader\u002Fspliter.py` 文件，在该文件中可以配置文本切分的长度限制，确保切分后的每个片段长度不超过数据库允许的最大值。","https:\u002F\u002Fgithub.com\u002Fzilliztech\u002Fdeep-searcher\u002Fissues\u002F106",{"id":102,"question_zh":103,"answer_zh":104,"source_url":105},28737,"遇到 'ImportError: sys.meta_path is None' 错误是否与 Python 版本有关？","是的，该错误与 Python 版本兼容性有关。有用户反馈在 Python 3.13.2 (MacBook M4) 上遇到此问题。\n解决方案：\n降级 Python 版本至 3.10.x（例如 Python 3.10.16）可解决该问题。建议在使用该项目时使用 Python 3.10 环境。","https:\u002F\u002Fgithub.com\u002Fzilliztech\u002Fdeep-searcher\u002Fissues\u002F88",{"id":107,"question_zh":108,"answer_zh":109,"source_url":110},28738,"如何实现消息回调以便在前端实时显示 Agent 的工作状态和调试信息？","目前可以通过在每个 Agent 步骤中将消息写入 SQLite 数据库来实现类似回调的效果，供前端轮询读取。\n参考实现思路：\n1. 定义一个包含 task_id, status, answer, debug_message 等字段的数据结构。\n2. 在 Agent 执行过程中（如日志打印处），调用更新函数将当前状态写入数据库：\n```python\ndata = {\n    'task_id': input_data[\"id\"],\n    'status': \"Running\",\n    'debug_message': f\"\u003Cthink> Summarize answer... \u003C\u002Fthink>\"\n}\nupdate_agent_msg(data)\n```\n3. 前端或监控脚本定期查询数据库获取最新状态并展示。","https:\u002F\u002Fgithub.com\u002Fzilliztech\u002Fdeep-searcher\u002Fissues\u002F131",[112],{"id":113,"version":114,"summary_zh":115,"released_at":116},197637,"embedding_model","Milvus默认嵌入模型（GPTCache模型）","2025-02-20T02:19:59",[118,128,136,144,152,161],{"id":119,"name":120,"github_repo":121,"description_zh":122,"stars":123,"difficulty_score":124,"last_commit_at":125,"category_tags":126,"status":77},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",[58,54,127,56],"图像",{"id":129,"name":130,"github_repo":131,"description_zh":132,"stars":133,"difficulty_score":124,"last_commit_at":134,"category_tags":135,"status":77},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",[54,127,58],{"id":137,"name":138,"github_repo":139,"description_zh":140,"stars":141,"difficulty_score":40,"last_commit_at":142,"category_tags":143,"status":77},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 真正成长为懂上",149489,"2026-04-10T11:32:46",[54,58,55],{"id":145,"name":146,"github_repo":147,"description_zh":148,"stars":149,"difficulty_score":40,"last_commit_at":150,"category_tags":151,"status":77},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[54,127,58],{"id":153,"name":154,"github_repo":155,"description_zh":156,"stars":157,"difficulty_score":40,"last_commit_at":158,"category_tags":159,"status":77},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",[160,58,127,54],"插件",{"id":162,"name":163,"github_repo":164,"description_zh":165,"stars":166,"difficulty_score":40,"last_commit_at":167,"category_tags":168,"status":77},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[160,54]]