deep-searcher
deep-searcher 是一款开源的深度研究工具,旨在让大语言模型基于企业私有数据进行精准的搜索、评估与推理。它有效解决了通用 AI 在面对内部专有资料时“不知情”或易产生幻觉的痛点,能够结合本地文档与必要的网络信息,生成高准确度的回答及综合报告。
该工具特别适合开发者、技术研究人员以及需要构建智能问答系统或知识库的企业团队使用。其核心亮点在于创新地融合了前沿大模型(如 OpenAI o3、Qwen3、DeepSeek 等)与高性能向量数据库(如 Milvus)。通过灵活的嵌入模型选择和高效的数据分区管理,deep-searcher 不仅能安全地最大化利用内部数据,还支持从本地文件加载及网页抓取,实现了公私域信息的智能协同。无论是搭建企业级知识管理平台,还是开发复杂的信息检索应用,deep-searcher 都提供了强大且易于集成的 Python 解决方案,帮助用户在确保数据安全的前提下,挖掘数据的深层价值。
使用场景
某大型制造企业的技术合规团队需要每周从数千页的内部设备维修手册、历史故障报告及最新行业标准中,整理出针对新型号机器人的安全合规分析报告。
没有 deep-searcher 时
- 信息检索如大海捞针:工程师需手动在多个文件夹和系统中搜索关键词,耗时数小时才能拼凑出零散信息,极易遗漏关键的历史故障案例。
- 数据孤岛导致判断偏差:内部私有数据(如未公开的维修日志)与外部最新行业法规无法自动关联,导致报告往往缺乏全面性,存在合规盲区。
- 人工整合效率低下:收集到的碎片化信息需要人工阅读、理解并重新撰写报告,不仅速度慢,还容易因疲劳产生人为错误。
- 数据安全顾虑重重:为了获取更智能的分析,团队不敢将敏感的內部技术文档上传至公共 AI 平台,只能放弃使用先进的生成式 AI 能力。
使用 deep-searcher 后
- 私有数据秒级精准定位:deep-searcher 利用向量数据库直接索引本地维修手册和故障库,结合 LLM 的推理能力,能在几秒钟内精准提取跨文档的关键证据链。
- 内外数据融合深度推理:工具自动将企业内部数据与联网获取的最新行业标准进行交叉验证,生成的分析逻辑严密,确保每一份结论都有据可查。
- 自动化生成专业报告:只需输入一个指令,deep-searcher 即可自动完成信息检索、评估和推理,直接输出结构完整、引用清晰的高质量合规报告,效率提升数十倍。
- 本地部署保障数据隐私:整个检索与推理过程在企业内部环境或受控云环境中运行,敏感技术数据不出域,让团队能放心地利用最强的大模型能力。
deep-searcher 将原本需要数天的人工调研工作压缩至分钟级,同时确保了企业核心数据的安全与决策依据的全面性。
运行环境要求
- 未说明
未说明
未说明

快速开始

DeepSearcher 结合了最前沿的大型语言模型(OpenAI o3、Qwen3、DeepSeek、Grok 4、Claude 4 Sonnet、Llama 4、QwQ 等)和向量数据库(Milvus、Zilliz Cloud 等),能够基于私有数据进行搜索、评估和推理,提供高度准确的答案和全面的报告。该项目适用于企业知识管理、智能问答系统以及信息检索等场景。

🚀 特性
- 私有数据搜索:在确保数据安全的前提下,最大化利用企业内部数据。必要时,还可整合在线内容以获得更精准的答案。
- 向量数据库管理:支持 Milvus 等向量数据库,允许对数据进行分区以实现高效检索。
- 灵活的嵌入选项:兼容多种嵌入模型,便于选择最优方案。
- 多模型支持:支持 DeepSeek、OpenAI 等大模型,用于智能问答和内容生成。
- 文档加载器:支持本地文件加载,网页爬取功能正在开发中。
🎉 演示

📖 快速入门
安装
可通过以下任一方法安装 DeepSearcher:
方法一:使用 pip
创建并激活虚拟环境(推荐 Python 3.10 版本)。
python -m venv .venv
source .venv/bin/activate
安装 DeepSearcher:
pip install deepsearcher
如需安装可选依赖项,例如 ollama:
pip install "deepsearcher[ollama]"
方法二:以开发模式安装
我们建议使用 uv 进行更快、更可靠的安装。请按照 官方安装指南 安装它。
克隆仓库并进入项目目录:
git clone https://github.com/zilliztech/deep-searcher.git && cd deep-searcher
同步并安装依赖项:
uv sync
source .venv/bin/activate
更多详细的开发环境搭建及可选依赖项安装方式,请参阅 CONTRIBUTING.md。
快速入门演示
要运行此快速入门演示,请在您的环境变量中准备好 OPENAI_API_KEY。如果您更改了配置中的 LLM,请务必准备相应的 API 密钥。
from deepsearcher.configuration import Configuration, init_config
from deepsearcher.online_query import query
config = Configuration()
# 在此处自定义您的配置,
# 更多配置详情请参见下方的“配置详情”部分。
config.set_provider_config("llm", "OpenAI", {"model": "o1-mini"})
config.set_provider_config("embedding", "OpenAIEmbedding", {"model": "text-embedding-ada-002"})
init_config(config = config)
# 加载您的本地数据
from deepsearcher.offline_loading import load_from_local_files
load_from_local_files(paths_or_directory=your_local_path)
# (可选)从网页爬取加载(需设置 `FIRECRAWL_API_KEY` 环境变量)
from deepsearcher.offline_loading import load_from_website
load_from_website(urls=website_url)
# 查询
result = query("写一篇关于 xxx 的报告。") # 您的问题在此处
配置详情:
LLM 配置
config.set_provider_config("llm", "(LLMName)", "(Arguments dict)")
“LLMName”可以是以下之一:["DeepSeek", "OpenAI", "XAI", "SiliconFlow", "Aliyun", "PPIO", "TogetherAI", "Gemini", "Ollama", "Novita", "Jiekou.AI"]
“Arguments dict”是一个包含该 LLM 类所需参数的字典。
示例(OpenAI)
请确保您已将 OPENAI API KEY 设置为环境变量 OPENAI_API_KEY。
config.set_provider_config("llm", "OpenAI", {"model": "o1-mini"})
有关 OpenAI 模型的更多信息:https://platform.openai.com/docs/models
示例(阿里云百炼的 Qwen3)
请确保您已将百炼 API KEY 设置为环境变量 DASHSCOPE_API_KEY。
config.set_provider_config("llm", "Aliyun", {"model": "qwen-plus-latest"})
有关阿里云百炼模型的更多信息:https://bailian.console.aliyun.com
示例(来自 OpenRouter 的 Qwen3)
config.set_provider_config("llm", "OpenAI", {"model": "qwen/qwen3-235b-a22b:free", "base_url": "https://openrouter.ai/api/v1", "api_key": "OPENROUTER_API_KEY"})
有关 OpenRouter 模型的更多信息:https://openrouter.ai/qwen/qwen3-235b-a22b:free
示例(来自官方的 DeepSeek)
请确保您已将 DEEPSEEK API KEY 设置为环境变量 DEEPSEEK_API_KEY。
config.set_provider_config("llm", "DeepSeek", {"model": "deepseek-reasoner"})
有关 DeepSeek 的更多信息:https://api-docs.deepseek.com/
示例(来自 SiliconFlow 的 DeepSeek)
请确保您已将 SILICONFLOW API KEY 设置为环境变量 SILICONFLOW_API_KEY。
config.set_provider_config("llm", "SiliconFlow", {"model": "deepseek-ai/DeepSeek-R1"})
有关 SiliconFlow 的更多信息:https://docs.siliconflow.cn/quickstart
示例(来自 TogetherAI 的 DeepSeek)
请确保您已将 TOGETHER API KEY 设置为环境变量 TOGETHER_API_KEY。
config.set_provider_config("llm", "TogetherAI", {"model": "deepseek-ai/DeepSeek-R1"})
对于 Llama 4:
config.set_provider_config("llm", "TogetherAI", {"model": "meta-llama/Llama-4-Scout-17B-16E-Instruct"})
在运行之前需要先安装 together,执行:pip install together。有关 TogetherAI 的更多信息:https://www.together.ai/
示例(XAI Grok)
请确保已将 XAI API 密钥作为环境变量 XAI_API_KEY 准备好。
config.set_provider_config("llm", "XAI", {"model": "grok-4-0709"})
关于 XAI Grok 的更多详情:https://docs.x.ai/docs/overview#featured-models
示例(Claude)
请确保已将 ANTHROPIC API 密钥作为环境变量 ANTHROPIC_API_KEY 准备好。
config.set_provider_config("llm", "Anthropic", {"model": "claude-sonnet-4-0"})
关于 Anthropic Claude 的更多详情:https://docs.anthropic.com/en/home
示例(Google Gemini)
请确保已将 GEMINI API 密钥作为环境变量 GEMINI_API_KEY 准备好。
config.set_provider_config('llm', 'Gemini', { 'model': 'gemini-2.0-flash' })
在运行前需要安装 gemini,请执行:pip install google-genai。关于 Gemini 的更多详情:https://ai.google.dev/gemini-api/docs
示例(来自 PPIO 的 DeepSeek)
请确保已将 PPIO API 密钥作为环境变量 PPIO_API_KEY 准备好。您可以在 此处创建 API 密钥。
config.set_provider_config("llm", "PPIO", {"model": "deepseek/deepseek-r1-turbo"})
关于 PPIO 的更多详情:https://ppinfra.com/docs/get-started/quickstart.html?utm_source=github_deep-searcher
示例(来自 Jiekou.AI 的 Claude Sonnet 4.5)
请确保已将 Jiekou.AI API 密钥作为环境变量 JIEKOU_API_KEY 准备好。您可以在 此处创建 API 密钥。
config.set_provider_config("llm", "JiekouAI", {"model": "claude-sonnet-4-5-20250929"})
关于 Jiekou.AI 的更多详情:https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_deep-searcher
示例(Ollama)
请按照 这些说明设置并运行本地 Ollama 实例:
下载并安装 Ollama 到支持的平台(包括 Windows Subsystem for Linux)。
通过 模型库查看可用模型列表。
使用 ollama pull <name-of-model> 获取可用的 LLM 模型。
示例: ollama pull qwen3
要直接从命令行与模型对话,使用 ollama run <name-of-model>。
默认情况下,Ollama 在 http://localhost:11434 上提供用于运行和管理模型的 REST API。
config.set_provider_config("llm", "Ollama", {"model": "qwen3"})
示例(Volcengine)
请确保已将 Volcengine API 密钥作为环境变量 VOLCENGINE_API_KEY 准备好。您可以在 此处创建 API 密钥。
config.set_provider_config("llm", "Volcengine", {"model": "deepseek-r1-250120"})
关于 Volcengine 的更多详情:https://www.volcengine.com/docs/82379/1099455?utm_source=github_deep-searcher
示例(GLM)
请确保已将 GLM API 密钥作为环境变量 GLM_API_KEY 准备好。
config.set_provider_config("llm", "GLM", {"model": "glm-4-plus"})
在运行前需要安装 zhipuai,请执行:pip install zhipuai。关于 GLM 的更多详情:https://bigmodel.cn/dev/welcome
示例(Amazon Bedrock)
请确保已将 Amazon Bedrock API 密钥作为环境变量 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 准备好。
config.set_provider_config("llm", "Bedrock", {"model": "us.deepseek.r1-v1:0"})
在运行前需要安装 boto3,请执行:pip install boto3。关于 Amazon Bedrock 的更多详情:https://docs.aws.amazon.com/bedrock/
示例(IBM watsonx.ai)
请确保已将 watsonx.ai 的凭据作为环境变量 WATSONX_APIKEY、WATSONX_URL 和 WATSONX_PROJECT_ID 准备好。
config.set_provider_config("llm", "watsonx", {"model": "us.deepseek.r1-v1:0"})
在运行前需要安装 ibm-watsonx-ai,请执行:pip install ibm-watsonx-ai。关于 IBM watsonx.ai 的更多详情:https://www.ibm.com/products/watsonx-ai/foundation-models
嵌入模型配置
config.set_provider_config("embedding", "(EmbeddingModelName)", "(Arguments dict)")
“EmbeddingModelName”可以是以下之一:["MilvusEmbedding", "OpenAIEmbedding", "VoyageEmbedding", "SiliconflowEmbedding", "PPIOEmbedding", "NovitaEmbedding", "JiekouAIEmbedding"]
“Arguments dict”是一个字典,包含嵌入模型类所需的必要参数。
示例(OpenAI 嵌入)
请确保已将 OpenAI API 密钥作为环境变量 OPENAI_API_KEY 准备好。
config.set_provider_config("embedding", "OpenAIEmbedding", {"model": "text-embedding-3-small"})
关于 OpenAI 模型的更多详情:https://platform.openai.com/docs/guides/embeddings/use-cases
示例(Azure 版 OpenAI 嵌入)
请确保已将 OpenAI API 密钥作为环境变量 OPENAI_API_KEY 准备好。
config.set_provider_config("embedding", "OpenAIEmbedding", {
"model": "text-embedding-ada-002",
"azure_endpoint": "https://.openai.azure.com/",
"api_version": "2023-05-15"
})
示例(Pymilvus内置嵌入模型)
使用 Pymilvus 中的内置嵌入模型,您可以将模型名称设置为 "default"、"BAAI/bge-base-en-v1.5"、"BAAI/bge-large-en-v1.5"、"jina-embeddings-v3" 等。
更多详情请参阅 [milvus_embedding.py](deepsearcher/embedding/milvus_embedding.py)。
config.set_provider_config("embedding", "MilvusEmbedding", {"model": "BAAI/bge-base-en-v1.5"})
config.set_provider_config("embedding", "MilvusEmbedding", {"model": "jina-embeddings-v3"})
对于 Jina 的嵌入模型,您需要JINAAI_API_KEY。
在运行之前,您需要安装 pymilvus model,请执行:pip install pymilvus.model。关于 Pymilvus 的更多详情:https://milvus.io/docs/embeddings.md
示例(VoyageAI 嵌入)
请确保您已将 VOYAGE API KEY 作为环境变量 VOYAGE_API_KEY 准备好。
config.set_provider_config("embedding", "VoyageEmbedding", {"model": "voyage-3"})
在运行前,您需要安装 voyageai,请执行:pip install voyageai。关于 VoyageAI 的更多详情:https://docs.voyageai.com/embeddings/
示例(Amazon Bedrock 嵌入)
config.set_provider_config("embedding", "BedrockEmbedding", {"model": "amazon.titan-embed-text-v2:0"})
在运行前,您需要安装 boto3,请执行:pip install boto3。关于 Amazon Bedrock 的更多详情:https://docs.aws.amazon.com/bedrock/
示例(Novita AI 嵌入)
请确保您已将 Novita AI API KEY 作为环境变量 NOVITA_API_KEY 准备好。
config.set_provider_config("embedding", "NovitaEmbedding", {"model": "baai/bge-m3"})
关于 Novita AI 的更多详情:https://novita.ai/docs/api-reference/model-apis-llm-create-embeddings?utm_source=github_deep-searcher&utm_medium=github_readme&utm_campaign=link
示例(Siliconflow 嵌入)
请确保您已将 Siliconflow API KEY 作为环境变量 SILICONFLOW_API_KEY 准备好。
config.set_provider_config("embedding", "SiliconflowEmbedding", {"model": "BAAI/bge-m3"})
关于 Siliconflow 的更多详情:https://docs.siliconflow.cn/en/api-reference/embeddings/create-embeddings
示例(Volcengine 嵌入)
请确保您已将 Volcengine API KEY 作为环境变量 VOLCENGINE_API_KEY 准备好。
config.set_provider_config("embedding", "VolcengineEmbedding", {"model": "doubao-embedding-text-240515"})
关于 Volcengine 的更多详情:https://www.volcengine.com/docs/82379/1302003
示例(GLM 嵌入)
请确保您已将 GLM API KEY 作为环境变量 GLM_API_KEY 准备好。
config.set_provider_config("embedding", "GLMEmbedding", {"model": "embedding-3"})
在运行前,您需要安装 zhipuai,请执行:pip install zhipuai。关于 GLM 的更多详情:https://bigmodel.cn/dev/welcome
示例(Google Gemini 嵌入)
请确保您已将 Gemini API KEY 作为环境变量 GEMINI_API_KEY 准备好。
config.set_provider_config("embedding", "GeminiEmbedding", {"model": "text-embedding-004"})
在运行前,您需要安装 gemini,请执行:pip install google-genai。关于 Gemini 的更多详情:https://ai.google.dev/gemini-api/docs
示例(Ollama 嵌入)
config.set_provider_config("embedding", "OllamaEmbedding", {"model": "bge-m3"})
在运行前,您需要安装 ollama,请执行:pip install ollama。关于 Ollama Python SDK 的更多详情:https://github.com/ollama/ollama-python
示例(PPIO 嵌入)
请确保您已将 PPIO API KEY 作为环境变量 PPIO_API_KEY 准备好。
config.set_provider_config("embedding", "PPIOEmbedding", {"model": "baai/bge-m3"})
关于 PPIO 的更多详情:https://ppinfra.com/docs/get-started/quickstart.html?utm_source=github_deep-searcher
示例(Jiekou.AI 嵌入)
请确保您已将 Jiekou.AI API KEY 作为环境变量 JIEKOU_API_KEY 准备好。
config.set_provider_config("embedding", "JiekouAIEmbedding", {"model": "qwen/qwen3-embedding-8b"})
关于 Jiekou.AI 的更多详情:https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_deep-searcher
示例(FastEmbed 嵌入)
config.set_provider_config("embedding", "FastEmbedEmbedding", {"model": "intfloat/multilingual-e5-large"})
在运行前,您需要安装 fastembed,请执行:pip install fastembed。关于 fastembed 的更多详情:https://github.com/qdrant/fastembed
示例(IBM watsonx.ai 嵌入)
请确保您已将 WatsonX 凭证作为环境变量 WATSONX_APIKEY、WATSONX_URL 和 WATSONX_PROJECT_ID 准备好。
config.set_provider_config("embedding", "WatsonXEmbedding", {"model": "ibm/slate-125m-english-rtrvr-v2"})
config.set_provider_config("embedding", "WatsonXEmbedding", {"model": "sentence-transformers/all-minilm-l6-v2"})
在运行前,您需要安装 ibm-watsonx-ai,请执行:pip install ibm-watsonx-ai。关于 IBM watsonx.ai 的更多详情:https://www.ibm.com/products/watsonx-ai/foundation-models
向量数据库配置
config.set_provider_config("vector_db", "(VectorDBName)", "(Arguments dict)")
“VectorDBName”可以是以下之一:["Milvus"](开发中)
“Arguments dict”是一个字典,包含向量数据库类所需的必要参数。
示例(Milvus)
config.set_provider_config("vector_db", "Milvus", {"uri": "./milvus.db", "token": ""})
关于 Milvus 配置的更多详情:
-
将
uri设置为本地文件,例如./milvus.db,是最便捷的方式,因为它会自动利用 Milvus Lite 将所有数据存储在这个文件中。
-
如果你有一个大规模的数据集,可以使用
Docker 或 Kubernetes 来搭建性能更高的 Milvus 服务器。在这种情况下,将服务器 URI,例如
http://localhost:19530,作为你的uri。你还可以使用 Milvus 支持的其他连接参数,如host、user、password或secure。
-
如果你想使用 Zilliz Cloud,即 Milvus 的全托管云服务,则需要根据 Zilliz Cloud 中的 公共端点和 API 密钥来调整
uri和token。
示例(AZURE AI 搜索)
config.set_provider_config("vector_db", "AzureSearch", {
"endpoint": "https://.search.windows.net",
"index_name": "",
"api_key": "",
"vector_field": ""
})
关于 Milvus 配置的更多详情:
文件加载器配置
config.set_provider_config("file_loader", "(FileLoaderName)", "(Arguments dict)")
"FileLoaderName" 可以是以下之一:["PDFLoader", "TextLoader", "UnstructuredLoader"]
"Arguments dict" 是一个字典,包含 File Loader 类所需的必要参数。
示例(Unstructured)
你可以通过两种方式使用 Unstructured:
- 使用 API:设置环境变量
UNSTRUCTURED_API_KEY和UNSTRUCTURED_API_URL - 不使用 API:直接使用本地处理模式,只需不设置这些环境变量即可
config.set_provider_config("file_loader", "UnstructuredLoader", {})
- 目前支持的文件类型:["pdf"](正在开发中)
- 安装要求:
- 安装摄取管道:
pip install unstructured-ingest - 支持所有文档格式:
pip install "unstructured[all-docs]" - 仅支持特定格式(例如 PDF):
pip install "unstructured[pdf]"
- 安装摄取管道:
- 更多信息:
示例(Docling)
config.set_provider_config("file_loader", "DoclingLoader", {})
目前支持的文件类型,请参考 Docling 文档: https://docling-project.github.io/docling/usage/supported_formats/#supported-output-formats
在运行之前需要安装 Docling,执行命令:pip install docling。关于 Docling 的更多详情: https://docling-project.github.io/docling/
网络爬虫配置
config.set_provider_config("web_crawler", "(WebCrawlerName)", "(Arguments dict)")
"WebCrawlerName" 可以是以下之一:["FireCrawlCrawler", "Crawl4AICrawler", "JinaCrawler"]
"Arguments dict" 是一个字典,包含 Web Crawler 类所需的必要参数。
示例(FireCrawl)
请确保已将 FireCrawl API KEY 作为环境变量 FIRECRAWL_API_KEY 准备好。
config.set_provider_config("web_crawler", "FireCrawlCrawler", {})
关于 FireCrawl 的更多详情: https://docs.firecrawl.dev/introduction
示例(Crawl4AI)
请确保已在环境中运行过 crawl4ai-setup。
config.set_provider_config("web_crawler", "Crawl4AICrawler", {"browser_config": {"headless": True, "verbose": True}})
在运行之前需要安装 Crawl4AI,执行命令:pip install crawl4ai。关于 Crawl4AI 的更多详情: https://docs.crawl4ai.com/
示例(Jina Reader)
请确保已将 Jina Reader API KEY 作为环境变量 JINA_API_TOKEN 或 JINAAI_API_KEY 准备好。
config.set_provider_config("web_crawler", "JinaCrawler", {})
关于 Jina Reader 的更多详情: https://jina.ai/reader/
示例(Docling)
config.set_provider_config("web_crawler", "DoclingCrawler", {})
目前支持的文件类型,请参考 Docling 文档: https://docling-project.github.io/docling/usage/supported_formats/#supported-output-formats
在运行之前需要安装 Docling,执行命令:pip install docling。关于 Docling 的更多详情: https://docling-project.github.io/docling/
Python CLI 模式
加载
deepsearcher load "your_local_path_or_url"
# 加载到特定集合
deepsearcher load "your_local_path_or_url" --collection_name "your_collection_name" --collection_desc "your_collection_description"
从本地文件加载示例:
deepsearcher load "/path/to/your/local/file.pdf"
# 或一次加载多个文件
deepsearcher load "/path/to/your/local/file1.pdf" "/path/to/your/local/file2.md"
从 URL 加载示例(*请在环境变量中设置 FIRECRAWL_API_KEY,详情请参阅 FireCrawl):
deepsearcher load "https://www.wikiwand.com/en/articles/DeepSeek"
查询
deepsearcher query "写一篇关于 xxx 的报告。"
更多帮助信息
deepsearcher --help
如需了解特定子命令的更多信息,可使用 deepsearcher [子命令] --help。
deepsearcher load --help
deepsearcher query --help
部署
配置模块
您可以通过修改 config.yaml 来配置所有参数,从而使用默认模块设置您的系统。
例如,在 YAML 文件的 llm 部分设置您的 OPENAI_API_KEY。
启动服务
主脚本将运行一个 FastAPI 服务,默认地址为 localhost:8000。
$ python main.py
浏览器访问
您可以在浏览器中打开网址 http://localhost:8000/docs 访问 Web 服务。 点击“Try it out”按钮,您可以填写参数并直接与 API 交互。
❓ 问答
Q1: 为什么我无法解析 LLM 的输出格式?如何选择合适的 LLM?
A1: 小型 LLM 很难按照提示生成期望的响应,这通常会导致格式解析问题。更好的做法是使用大型推理模型,例如 deepseek-r1 671b、OpenAI o 系列、Claude 4 sonnet 等作为您的 LLM。
Q2: OSError: 我们无法连接到 'https://huggingface.co' 来加载此文件,缓存中也找不到它,而且看起来 GPTCache/paraphrase-albert-small-v2 并不是包含名为 config.json 文件的目录路径。 请检查您的网络连接,或参阅 https://huggingface.co/docs/transformers/installation#offline-mode 了解如何在离线模式下运行该库。
A2: 这主要是由于对 Hugging Face 的访问异常,可能是网络或权限问题。您可以尝试以下两种方法:
- 如果是网络问题,请设置代理,尝试添加以下环境变量。
export HF_ENDPOINT=https://hf-mirror.com
- 如果是权限问题,请设置个人令牌,尝试添加以下环境变量。
export HUGGING_FACE_HUB_TOKEN=xxxx
Q3: DeepSearcher 在 Jupyter Notebook 中无法运行。
A3: 安装 nest_asyncio,然后在您的 Jupyter Notebook 前面加入以下代码块。
pip install nest_asyncio
import nest_asyncio
nest_asyncio.apply()
🔧 模块支持
🔹 嵌入模型
- 开源嵌入模型
- OpenAI(需要
OPENAI_API_KEY环境变量) - VoyageAI(需要
VOYAGE_API_KEY环境变量) - Amazon Bedrock(需要
AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY环境变量) - FastEmbed
- PPIO(需要
PPIO_API_KEY环境变量) - Novita AI(需要
NOVITA_API_KEY环境变量) - IBM watsonx.ai(需要
WATSONX_APIKEY、WATSONX_URL和WATSONX_PROJECT_ID环境变量) - Jiekou.AI(需要
JIEKOU_API_KEY环境变量)
🔹 LLM 支持
- OpenAI(需要
OPENAI_API_KEY环境变量) - DeepSeek(需要
DEEPSEEK_API_KEY环境变量) - XAI Grok(需要
XAI_API_KEY环境变量) - Anthropic Claude(需要
ANTHROPIC_API_KEY环境变量) - SiliconFlow 推理服务(需要
SILICONFLOW_API_KEY环境变量) - PPIO(需要
PPIO_API_KEY环境变量) - TogetherAI 推理服务(需要
TOGETHER_API_KEY环境变量) - Google Gemini(需要
GEMINI_API_KEY环境变量) - SambaNova 云推理服务(需要
SAMBANOVA_API_KEY环境变量) - Ollama
- Novita AI(需要
NOVITA_API_KEY环境变量) - IBM watsonx.ai(需要
WATSONX_APIKEY、WATSONX_URL和WATSONX_PROJECT_ID环境变量) - Jiekou.AI(需要
JIEKOU_API_KEY环境变量)
🔹 文档加载器
- 本地文件
- PDF(带 txt/md)加载器
- Unstructured(开发中)(需要
UNSTRUCTURED_API_KEY和UNSTRUCTURED_URL环境变量)
- 网页爬虫
- FireCrawl(需要
FIRECRAWL_API_KEY环境变量) - Jina Reader(需要
JINA_API_TOKEN环境变量) - Crawl4AI(首次使用时需运行
crawl4ai-setup命令)
- FireCrawl(需要
🔹 向量数据库支持
- Milvus 和 Zilliz Cloud(完全托管的 Milvus)
- Qdrant
📊 评估
更多详情请参阅 Evaluation 目录。
📌 未来计划
- 增强网页爬取功能
- 支持更多向量数据库(例如 FAISS 等)
- 增加对更多大型模型的支持
- 提供 RESTful API 接口(已完成)
我们欢迎各位贡献!请给项目点赞并 Fork,帮助我们打造更强大的 DeepSearcher!🎯
版本历史
embedding_model2025/02/20常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器