Spaces:
				
			
			
	
			
			
		Sleeping
		
	
	
	
			
			
	
	
	
	
		
		title: MindSearch111
emoji: ๐
colorFrom: purple
colorTo: yellow
sdk: gradio
sdk_version: 5.3.0
app_file: app.py
pinned: false
English | ็ฎไฝไธญๆ
https://github.com/user-attachments/assets/44ffe4b9-be26-4b93-a77b-02fed16e33fe
โจ MindSearch: Mimicking Human Minds Elicits Deep AI Searcher
๐ Changelog
- 2024/11/05: ๐ฅณ MindSearch is now deployed on Puyu! ๐ Try it ๐- Refactored the agent module based on Lagent v0.5 for better performance in concurrency.
- Improved the UI to embody the simultaneous multi-query search.
 
โฝ๏ธ 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_silicon --search_engine DuckDuckGoSearch --asy 
- --lang: language of the model,- enfor English and- cnfor Chinese.
- --model_format: format of the model.- internlm_serverfor InternLM2.5-7b-chat with local server. (InternLM2.5-7b-chat has been better optimized for Chinese.)
- gpt4for GPT4. if you want to use other models, please modify models
 
- --search_engine: Search engine.- DuckDuckGoSearchfor search engine for DuckDuckGo.
- BingSearchfor Bing search engine.
- BraveSearchfor Brave search web api engine.
- GoogleSearchfor Google Serper web search api engine.
- TencentSearchfor Tencent search api engine.
 - Please set your Web Search engine API key as the - WEB_SEARCH_API_KEYenvironment variable unless you are using- DuckDuckGo, or- TencentSearchthat requires secret id as- TENCENT_SEARCH_SECRET_IDand secret key as- TENCENT_SEARCH_SECRET_KEY.
- --asy: deploy asynchronous agents.
Step4: Setup MindSearch Frontend
Providing following frontend interfaces,
- React
First configurate the backend URL for Vite proxy.
HOST="127.0.0.1"  # modify as you need
PORT=8002
sed -i -r "s/target:\s*\"\"/target: \"${HOST}:${PORT}\"/" frontend/React/vite.config.ts
# 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.
