Awesome
<div id="top"></div> <div align="center"> <img src="assets/logo.svg" style="width: 50%; height: auto;">đ Project Page | đ Paper | đ¤ Hugging Face Space| đģ ModelScope
English | įŽäŊä¸æ
https://github.com/user-attachments/assets/44ffe4b9-be26-4b93-a77b-02fed16e33fe
</div> </p>⨠MindSearch: Mimicking Human Minds Elicits Deep AI Searcher
âŊī¸ Build Your Own MindSearch
Step1: Dependencies Installation
git clone https://github.com/InternLM/MindSearch
cd MindSearch
pip install -r requirements.txt
Step2: Setup Environment Variables
Before setting up the API, you need to configure environment variables. Rename the .env.example
file to .env
and fill in the required values.
mv .env.example .env
# Open .env and add your keys and model configurations
Step3: Setup MindSearch API
Setup FastAPI Server.
python -m mindsearch.app --lang en --model_format internlm_server --search_engine DuckDuckGoSearch --asy
--lang
: language of the model,en
for English andcn
for Chinese.--model_format
: format of the model.internlm_server
for InternLM2.5-7b-chat with local server. (InternLM2.5-7b-chat has been better optimized for Chinese.)gpt4
for GPT4. if you want to use other models, please modify models
--search_engine
: Search engine.DuckDuckGoSearch
for search engine for DuckDuckGo.BingSearch
for Bing search engine.BraveSearch
for Brave search web api engine.GoogleSearch
for Google Serper web search api engine.TencentSearch
for Tencent search api engine.
WEB_SEARCH_API_KEY
environment variable unless you are usingDuckDuckGo
, orTencentSearch
that requires secret id asTENCENT_SEARCH_SECRET_ID
and secret key asTENCENT_SEARCH_SECRET_KEY
.--asy
: deploy asynchronous agents.
Step4: Setup MindSearch Frontend
Providing following frontend interfaces,
- React
# Install Node.js and npm
# for Ubuntu
sudo apt install nodejs npm
# for windows
# download from https://nodejs.org/zh-cn/download/prebuilt-installer
# Install dependencies
cd frontend/React
npm install
npm start
Details can be found in React
- Gradio
python frontend/mindsearch_gradio.py
- Streamlit
streamlit run frontend/mindsearch_streamlit.py
đ Change Web Search API
To use a different type of web search API, modify the searcher_type
attribute in the searcher_cfg
located in mindsearch/agent/__init__.py
. Currently supported web search APIs include:
GoogleSearch
DuckDuckGoSearch
BraveSearch
BingSearch
TencentSearch
For example, to change to the Brave Search API, you would configure it as follows:
BingBrowser(
searcher_type='BraveSearch',
topk=2,
api_key=os.environ.get('BRAVE_API_KEY', 'YOUR BRAVE API')
)
đ Using the Backend Without Frontend
For users who prefer to interact with the backend directly, use the backend_example.py
script. This script demonstrates how to send a query to the backend and process the response.
python backend_example.py
Make sure you have set up the environment variables and the backend is running before executing the script.
đ Debug Locally
python -m mindsearch.terminal
đ License
This project is released under the Apache 2.0 license.
Citation
If you find this project useful in your research, please consider cite:
@article{chen2024mindsearch,
title={MindSearch: Mimicking Human Minds Elicits Deep AI Searcher},
author={Chen, Zehui and Liu, Kuikun and Wang, Qiuchen and Liu, Jiangning and Zhang, Wenwei and Chen, Kai and Zhao, Feng},
journal={arXiv preprint arXiv:2407.20183},
year={2024}
}
Our Projects
Explore our additional research on large language models, focusing on LLM agents.