书生大模型实战营-MindSearch 快速部署
任务要点
- 部署MindSearch到 hugging face Spaces上
- 在官方的MindSearch页面 复制 Spaces应用到自己的Spaces下
MindSearch 简介
MindSearch 是一个开源的 AI 搜索引擎框架,具有与 Perplexity.ai Pro 相同的性能。我们可以轻松部署它来构建自己的专属搜索引擎,可以基于闭源的LLM(如GPT、Claude系列),也可以使用开源的LLM(如经过专门优化的InternLM2.5 系列模型,能够在MindSearch框架中提供卓越的性能)
实践流程
开发环境配置
随着硅基流动提供了免费的InternLM2.5-7B-Chat的API服务,大大降低了部署门槛,我们无需GPU资源也可以部署和使用MindSearch,所以可以利用CodeSpace完成本次实验
接下来使用硅基流动的API来部署MindSearch
- 打开codespace主页,选择Blank模板进行创建
浏览器会自动在新页面打开一个web版的vscode,接下来的操作就和我们使用vscode基本没差别了
- 创建conda环境隔离并安装依赖
conda create -n mindsearch python=3.10 -y conda init
- 新建的codespace,在第一次创建conda环境时,需要conda init,再另启一个终端并activate
conda activate mindsearch cd /workspaces/codespaces-blank git clone https://github.com/InternLM/MindSearch.git && cd MindSearch && git checkout ae5b0c5 pip install -r requirements.txt
- 获取硅基流动API KEY
因为要使用硅基流动的 API Key,所以接下来便是注册并获取 API Key 了。 首先,我们打开它的登录界面来注册硅基流动的账号(如果注册过,则直接登录即可)。 在完成注册后,打开api key页面来准备 API Key。
首先创建新 API 密钥,然后点击密钥进行复制,以备后续使用
启动MindSearch
启动后端
由于硅基流动 API 的相关配置已经集成在了 MindSearch 中,所以在终端中可以直接执行下面的代码来启动 MindSearch 的后端
export SILICON_API_KEY=<硅基流动的API KEY>
conda activate mindsearch
# 进入你clone的项目目录
cd /workspaces/codespaces-blank/MindSearch
python -m mindsearch.app --lang cn --model_format internlm_silicon --search_engine DuckDuckGoSearch --asy
- –lang: 模型的语言,en 为英语,cn 为中文
- –model_format: 模型的格式
- internlm_silicon 为 InternLM2.5-7b-chat 在硅基流动上的API模型
- –search_engine: 搜索引擎
- DuckDuckGoSearch 为 DuckDuckGo 搜索引擎
- BingSearch 为 Bing 搜索引擎
- BraveSearch 为 Brave 搜索引擎
- GoogleSearch 为 Google Serper 搜索引擎
- TencentSearch 为 Tencent 搜索引擎
启动前端
打开新终端运行如下命令来启动 MindSearch 的前端:
conda activate mindsearch
# 进入你clone的项目目录
cd /workspaces/codespaces-blank/MindSearch
python frontend/mindsearch_gradio.py
前后端都启动后,可以看到github自动为这两个进程进行了端口转发
本地浏览器访问7882的端口转发地址(如:https://reimagined-robot-p579rvvrp472649-7882.app.github.dev/)
-
也可以尝试其他的搜索引擎API。如我们可以替换为BingSearch 或者 TencentSearch 进行尝试。
# BingSearch python -m mindsearch.app --lang cn --model_format internlm_silicon --search_engine BingSearch --asy # TencentSearch # python -m mindsearch.app --lang cn --model_format internlm_silicon --search_engine TencentSearch --asy
部署到 HuggingFace Spaces上
在之前的学习中,已经将模型或者应用上传/部署到hugging face上过了。
在这里介绍一种更简单的方法,它就像克隆一样,无需编写代码即可部署自己的Spaces应用
首先我们找到InternLM官方部署的MindSearch Spaces应用
选择配置
- 在该页面的右上角,选择Duplicate this Space
- 选择如下配置后,即可Duplicate Space
- SILICON_API_KEY,即上面提到的硅基流动的API KEY
测试结果
等待Spaces应用启动,当启动好后上方会显示绿色的running标志(可以尝试刷新页面)
-
可以在Sapces应用页面的输入框中进行提问
-
测试时如果发现页面卡住了很久(两三分钟),我们可以查看日志,最后两行可能报如下错误:
graph.add_edge(start_node="root", end_node("contract_enforcement")) SyntaxError: positional argument follows keyword argument
此时需要在页面右上角选择Restart Space,待到重启完成后(显示绿色running标志后)再刷新一下网页页面,再次测试
总结
如果你想要造一艘船,不要急着找人来收集木材,而是先教会他们向往大海。