AI/TLDR

DeepSearcher

Deep research over your own documents — search, evaluate and reason, then return a report

RAG Frameworks & PlatformsOpen source
Language
Python
License
Apache-2.0

Overview

DeepSearcher is an Apache-2.0 Python library from Zilliz, the company behind the Milvus vector database. It combines a large language model with a vector database to perform search, evaluation and reasoning over private data, returning both an answer and a comprehensive report. The project positions itself for enterprise knowledge management, intelligent Q&A systems and information-retrieval scenarios.

The design is deliberately pluggable at every layer. LLMs can be OpenAI, DeepSeek, Anthropic Claude, XAI Grok, Google Gemini, Ollama, IBM watsonx.ai or one of several inference services (SiliconFlow, TogetherAI, SambaNova, PPIO, Novita AI, Jiekou.AI). Embeddings can come from open-source models, OpenAI, VoyageAI, Amazon Bedrock, FastEmbed and others. Storage is Milvus or Zilliz Cloud, or Qdrant. Documents arrive through a local-file loader (PDF, txt, md) or a web crawler backed by FireCrawl, Jina Reader or Crawl4AI.

It runs two ways. As a library you build a `Configuration`, register your providers, load documents and call `query()`. As a service you fill in `config.yaml` and run `main.py`, which starts a FastAPI app on `localhost:8000` with interactive docs at `/docs`. The project notes that small models tend to break the output-format parsing and recommends large reasoning models for the LLM slot.

What it does

  • Private-data search that keeps enterprise documents in your own vector store, with optional online content when needed
  • Vector database support for Milvus and Zilliz Cloud plus Qdrant, with data partitioning for efficient retrieval
  • Pluggable LLMs — OpenAI, DeepSeek, Anthropic, XAI, Gemini, Ollama, watsonx.ai and several inference services
  • Flexible embedding options, from open-source models to OpenAI, VoyageAI, Amazon Bedrock and FastEmbed
  • Document loaders for local PDF/txt/md files and web crawling via FireCrawl, Jina Reader or Crawl4AI
  • A FastAPI service mode with interactive OpenAPI docs, alongside the Python library

Getting started

DeepSearcher is a pip-installable Python package (Python 3.10 is the recommended version). The steps below follow the project README's quick start.

Create a virtual environment and install

Install the published package from PyPI.

bashbash
python -m venv .venv
source .venv/bin/activate
pip install deepsearcher

Add optional extras if you need them

Extras pull in provider-specific dependencies, for example Ollama.

bashbash
pip install "deepsearcher[ollama]"

Configure providers, load documents and query

Export the API key for whichever LLM you configure — OPENAI_API_KEY in this example — then load local files and ask a question.

pythonpython
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)

result = query("Write a report about xxx.")

Or run it as a service

Set your modules in config.yaml, then start the FastAPI app — it listens on localhost:8000, with interactive docs at http://localhost:8000/docs.

bashbash
python main.py

Develop against the source

The project recommends uv for a faster, more reliable development install.

bashbash
git clone https://github.com/zilliztech/deep-searcher.git && cd deep-searcher
uv sync
source .venv/bin/activate

Commands and code are distilled from the project's own documentation — always check the official repo for the latest.

When to use it

  • Reach for it when a question needs a researched report over internal documents, not a single retrieved passage
  • Reach for it for enterprise knowledge management where the corpus must stay in your own Milvus, Zilliz Cloud or Qdrant instance
  • Reach for it when you want to swap LLM and embedding providers without rewriting the retrieval pipeline
  • Reach for it to stand up a REST endpoint for private-data Q&A quickly, via the bundled FastAPI service

How DeepSearcher compares

DeepSearcher alongside other open-source rag frameworks & platforms tools AI/TLDR tracks, ranked by GitHub stars.

ToolStarsWhat it does
Dify★ 157kAn open-source platform with a visual workflow builder for creating LLM and RAG applications without writing much code.
graphify★ 120kTurns a folder of code, docs, PDFs and images into a local knowledge graph with tree-sitter AST parsing and Leiden communities — queryable by agents over MCP, no vector store.
RAGFlow★ 91.1kA RAG engine built around deep document understanding that turns complex files into a grounded, citation-backed question-answering layer.
Context7★ 62.3kContext7 pulls current, version-specific documentation and code examples for any library and feeds them into your LLM, available as a CLI skill or an MCP server.
Pathway★ 62.3kA Python framework with a Rust streaming engine that keeps ETL, real-time analytics and RAG pipelines continuously up to date as source data changes.
LightRAG★ 39.8kA graph-based RAG system that builds an entity-and-relationship knowledge graph for fast retrieval and easy incremental updates.
Quivr★ 39.5kQuivr is an open-source RAG framework that ingests your documents and answers questions about them, working with any LLM and any file type.
DeepSearcher★ 8.3kDeep research over your own documents — search, evaluate and reason, then return a report