MindSearch 项目介绍
项目概述
MindSearch 是一个旨在模拟人类思维的深度 AI 搜索器,其目标是通过高级人工智能技术改进搜索体验。该项目不仅提高了搜索能力,还通过创新机制使用户的搜索更加高效和人性化。
项目进展
在 2024 年 11 月 5 日,MindSearch 已经在 Puyu 平台上线,用户可以通过 这个链接 进行体验。此次更新主要包括重构了基于 Lagent v0.5 的代理模块,这使得系统在并发情况下的性能得到了提升。此外,用户界面也进行了改进,支持同时进行多个查询的搜索。
如何构建 MindSearch
步骤一:安装依赖
首先,需要从 GitHub 仓库克隆 MindSearch 项目,并安装所需的 Python 依赖:
git clone https://github.com/InternLM/MindSearch
cd MindSearch
pip install -r requirements.txt
步骤二:设置环境变量
在设置 API 之前,需要配置环境变量。将.env.example
文件重命名为.env
,并填写必要的参数。
mv .env.example .env
步骤三:设置 MindSearch API
通过 FastAPI 启动服务器:
python -m mindsearch.app --lang en --model_format internlm_server --search_engine DuckDuckGoSearch --asy
- 参数
--lang
定义模型语言,可以设置为en
(英语)或cn
(中文)。 - 参数
--model_format
定义模型格式,如internlm_server
(适用于本地优化的 InternLM2.5-7b-chat)或gpt4
。 - 参数
--search_engine
定义使用的搜索引擎,例如DuckDuckGoSearch
、BingSearch
、BraveSearch
、GoogleSearch
或TencentSearch
。
请确保为你选择的搜索引擎设置相应的 API 密钥。
步骤四:设置 MindSearch 前端
MindSearch 提供多种前端接口,包括 React、Gradio 和 Streamlit。
- React 前端配置:
首先,在 vite.config.ts
文件中配置后端 URL:
HOST="127.0.0.1"
PORT=8002
sed -i -r "s/target:\s*\"\"/target: \"${HOST}:${PORT}\"/" frontend/React/vite.config.ts
然后安装 Node.js 和 npm,接着安装项目依赖:
cd frontend/React
npm install
npm start
- Gradio 前端启动:
python frontend/mindsearch_gradio.py
- Streamlit 前端启动:
streamlit run frontend/mindsearch_streamlit.py
变更 Web 搜索 API
用户可以通过修改 mindsearch/agent/__init__.py
中的 searcher_type
属性来更换不同类型的 Web 搜索 API。例如,若想改用 Brave Search API,可以进行如下配置:
BingBrowser(
searcher_type='BraveSearch',
topk=2,
api_key=os.environ.get('BRAVE_API_KEY', 'YOUR BRAVE API')
)
不使用前端的情况下操作后端
对于更倾向于直接与后端交互的用户,可以使用 backend_example.py
脚本来演示如何发送查询到后端并处理返回结果:
python backend_example.py
确保在执行脚本之前已设置好环境变量并运行后端。
本地调试
使用下面的命令在本地终端进行调试:
python -m mindsearch.terminal
许可证
该项目以 Apache 2.0 许可证 发布。
引用
如果在研究中发现该项目有用,请考虑引用:
@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}
}
我们的其他项目
进一步探索我们在大型语言模型上的研究,项目包括: