- Notifications
You must be signed in to change notification settings - Fork626
🔍 An LLM-based Multi-agent Framework of Web Search Engine (like Perplexity.ai Pro and SearchGPT)
License
InternLM/MindSearch
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
- 2024/11/05: 🥳 MindSearch is now deployed on Puyu! 👉Try it 👈
- Refactored the agent module based onLagent v0.5 for better performance in concurrency.
- Improved the UI to embody the simultaneous multi-query search.
git clone https://github.com/InternLM/MindSearchcd MindSearchpip install -r requirements.txt
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
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 modifymodels
--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.
Please set your Web Search engine API key as the
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.
Providing following frontend interfaces,
- React
First configurate the backend URL for Vite proxy.
HOST="127.0.0.1"# modify as you needPORT=8002sed -i -r"s/target:\s*\"\"/target:\"${HOST}:${PORT}\"/" frontend/React/vite.config.ts
# Install Node.js and npm# for Ubuntusudo apt install nodejs npm# for windows# download from https://nodejs.org/zh-cn/download/prebuilt-installer# Install dependenciescd frontend/Reactnpm installnpm start
Details can be found inReact
- Gradio
python frontend/mindsearch_gradio.py
- Streamlit
streamlit run frontend/mindsearch_streamlit.py
To use a different type of web search API, modify thesearcher_type
attribute in thesearcher_cfg
located inmindsearch/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'))
For users who prefer to interact with the backend directly, use thebackend_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.
python -m mindsearch.terminal
This project is released under theApache 2.0 license.
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}}
Explore our additional research on large language models, focusing on LLM agents.
About
🔍 An LLM-based Multi-agent Framework of Web Search Engine (like Perplexity.ai Pro and SearchGPT)