DeepSearcher combines powerful LLMs (DeepSeek, OpenAI, etc.) and Vector Databases (Milvus, 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.
- 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.
- Vector Database Management: Supports Milvus and other vector databases, allowing data partitioning for efficient retrieval.
- Flexible Embedding Options: Compatible with multiple embedding models for optimal selection.
- Multiple LLM Support: Supports DeepSeek, OpenAI, and other large models for intelligent Q&A and content generation.
- Document Loader: Supports local file loading, with web crawling capabilities under development.
Install DeepSearcher using pip:
# Clone the repository
git clone https://github.com/zilliztech/deep-searcher.git
# Recommended: Create a Python virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
cd deep-searcher
pip install -e .
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.
from deepsearcher.configuration import Configuration, init_config
from deepsearcher.online_query import query
config = Configuration()
# Customize your config here,
# more configuration see the Configuration Details section below.
config.set_provider_config("llm", "OpenAI", {"model": "gpt-4o-mini"})
init_config(config = config)
# Load your local data
from deepsearcher.offline_loading import load_from_local_files
load_from_local_files(paths_or_directory=your_local_path)
# Query
result = query("Write a report about xxx.") # Your question here
config.set_provider_config("llm", "(LLMName)", "(Arguments dict)")
The "LLMName" can be one of the following: ["DeepSeek", "OpenAI", "SiliconFlow", "TogetherAI"]
The "Arguments dict" is a dictionary that contains the necessary arguments for the LLM class.
Example (OpenAI)
config.set_provider_config("llm", "OpenAI", {"model": "gpt-4o"})
More details about OpenAI models: https://platform.openai.com/docs/models
Example (DeepSeek from official)
config.set_provider_config("llm", "DeepSeek", {"model": "deepseek-chat"})
More details about DeepSeek: https://api-docs.deepseek.com/
Example (DeepSeek from SiliconFlow)
config.set_provider_config("llm", "SiliconFlow", {"model": "deepseek-ai/DeepSeek-V3"})
More details about SiliconFlow: https://docs.siliconflow.cn/quickstart
Example (DeepSeek from TogetherAI)
config.set_provider_config("llm", "TogetherAI", {"model": "deepseek-ai/DeepSeek-V3"})
More details about TogetherAI: https://www.together.ai/
- Pymilvus built-in embedding model
- OpenAI
- VoyageAI
- DeepSeek
- OpenAI
- SiliconFlow
- TogetherAI
- Local File
- Web Crawler (Under Development)
- Milvus
- Enhance web crawling functionality
- Support more vector databases (e.g., FAISS...)
- Add support for additional large models
- Provide RESTful API interface
We welcome contributions! Star & Fork the project and help us build a more powerful DeepSearcher! 🎯