ITADN
InternLM/MindSearch
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

✨ MindSearch: 模拟人类心智激发深度 AI 搜索器

📅 更新日志

  • 2024/11/05: 🥳 MindSearch 现已部署在 Puyu 上! 👉 试一试 👈
    • 基于 Lagent v0.5 重构了 agent 模块,以提升并发性能。
    • 改进了 UI,以体现同时多查询搜索。

⚽️ 构建你自己的 MindSearch

Step1: 依赖安装

git clone https://github.com/InternLM/MindSearch
cd MindSearch
pip install -r requirements.txt

步骤 2:设置环境变量

在设置 API 之前,您需要配置环境变量。将 .env.example 文件重命名为 .env 并填入所需的值。

mv .env.example .env
# Open .env and add your keys and model configurations

Step3: 配置 MindSearch API

配置 FastAPI 服务器。

python -m mindsearch.app --lang en --model_format internlm_server --search_engine DuckDuckGoSearch --asy 
  • --lang: 模型的语言,en 为英语,cn 为中文。

  • --model_format: 模型的格式。

    • 本地服务器使用 InternLM2.5-7b-chat 时选择 internlm_server。(InternLM2.5-7b-chat 针对中文进行了更好的优化。)
    • GPT4 选择 gpt4。 如果您想使用其他模型,请修改 models
  • --search_engine: 搜索引擎。

    • DuckDuckGo 搜索引擎选择 DuckDuckGoSearch
    • Bing 搜索引擎选择 BingSearch
    • Brave 搜索 Web API 引擎选择 BraveSearch
    • Google Serper 网络搜索 API 引擎选择 GoogleSearch
    • 腾讯搜索 API 引擎选择 TencentSearch

    除非您使用 DuckDuckGo,或需要 secret id 作为 TENCENT_SEARCH_SECRET_ID 且 secret key 作为 TENCENT_SEARCH_SECRET_KEYTencentSearch,否则请将您的 Web 搜索引擎 API 密钥设置为 WEB_SEARCH_API_KEY 环境变量。

  • --asy: 部署异步代理。

Step4: 设置 MindSearch 前端

提供以下前端界面,

  • React

首先配置 Vite 代理的后端 URL。

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

详细信息可在 React

  • Gradio
python frontend/mindsearch_gradio.py
  • Streamlit
streamlit run frontend/mindsearch_streamlit.py

🌐 更改 Web Search API

若要使用不同类型的 web search API,请修改位于 mindsearch/agent/__init__.py 中的 searcher_cfg 里的 searcher_type 属性。当前支持的 web search API 包括:

  • GoogleSearch
  • DuckDuckGoSearch
  • BraveSearch
  • BingSearch
  • TencentSearch

例如,若要切换到 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}
}

我们的项目

探索我们在大语言模型方面的额外研究,重点关注 LLM 智能体。

  • Lagent: 一个用于构建基于 LLM 的智能体的轻量级框架
  • AgentFLAN: 一种构建和使用高质量智能体数据集进行训练的创新方法 (ACL 2024 Findings)
  • T-Eval: 一个细粒度的工具利用评估基准 (ACL 2024)