1 目标任务
- 部署MindSearch到 hugging face Spaces上。在官方的MindSearch页面复制Spaces应用到自己的Spaces下,并对话测试。
- 部署MindSearch stremlit版本到Hugging Face上。在官方仓库上提供了 streamlit的示例文件 ,可以参考此文件将streamlit版本的MindSearch部署到Hugging Face上。
2 开发环境配置
想要简单部署到hugging face上,我们需要将开发机平台从InternStudio 替换成 GitHub CodeSpace,并使用硅基流动免费提供的InternLM2.5-7B-Chat的API服务,大大降低了部署门槛,无需GPU资源也可以部署和使用MindSearch,这也是可以利用CodeSpace完成本次实验的原因。
2.1 GitHub CodeSpace开发环境
打开GitHub CodeSpace(https://github.com/codespaces)登录个人账号,按Blank模板创建开发环境,或选择以往建好的环境进入。

2.2 创建conda环境隔离并安装依赖
如果只针对于这个实验的话,其实在codespace里面不用单独创建conda环境。但是隔离是一个好习惯,因此我们还是创建一个相应的虚拟环境来隔离。
如果是新建的codespace,在第一次创建conda环境时,需要conda init,再另启一个终端并activate。
conda create -n mindsearch python=3.10 -y
# 如果是新建的codespace,在第一次创建conda环境时,需要conda init
conda init
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
2.3 获取硅基流动API KEY
打开硅基流动(https://siliconflow.cn/zh-cn/)注册并获取 API Key ,或者复制以往申请好的API Key。 首先创建新 API 密钥,然后点击密钥进行复制,以备后续使用。

3 启动MindSearch
3.1 启动后端
由于硅基流动 API 的相关配置已经集成在了 MindSearch 中,所以我们在一个终端A中可以直接执行下面的代码来启动 MindSearch 的后端。
export SILICON_API_KEY=<上面复制的API KEY>
conda activate mindsearch
# 进入你clone的项目目录
cd /workspaces/codespaces-blank/MindSearch
# 选择以下一种搜索引擎,启动后端服务
# 启动后端服务,使用DuckDuckGo 搜索引擎
python -m mindsearch.app --lang cn --model_format internlm_silicon --search_engine DuckDuckGoSearch --asy
# 启动后端服务,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
- –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 搜索引擎。


3.2 启动前端
在后端启动完成后,我们打开新终端B运行如下命令来启动 MindSearch 的前端。
conda activate mindsearch
# 进入你clone的项目目录
cd /workspaces/codespaces-blank/MindSearch
python frontend/mindsearch_gradio.py
前后端都启动后,我们应该可以看到github自动为这两个进程做端口转发:

如果启动前端后没有自动打开前端页面的话,我们可以手动用7882的端口转发地址打开gradio的前端页面~ 然后就可以体验MindSearch gradio版本啦~ 比如向其询问:“Find legal precedents in contract law.” 等待一段时间后,会在页面上输出它的结果。

3.3 部署到自己的 HuggingFace Spaces上
在之前课程的学习中,我们已经将模型或者应用上传/部署到hugging face上过了。在这里我们介绍一种更简单的方法,它就像克隆一样,无需编写代码即可部署自己的Spaces应用~
首先我们找到InternLM官方部署的MindSearch Spaces应用(https://huggingface.co/spaces/internlm/MindSearch).
3.3.1 选择配置
在该页面的右上角,选择Duplicate this Space,如图选择配置,并填写自己的api_key。


3.3.2 启动并测试
等待Spaces应用启动,当启动好后上方会显示绿色的running标志,这时我们可以输入input进行测试了。

我们可以在Sapces应用页面的输入框中输入以下内容:What are the top 10 e-commerce websites?

测试中页面可能会卡一会,几分钟,耐心等待。如果出错,可是在页面右上角选择Restart Space,待到重启完成后(显示绿色running标志后)再刷新一下网页页面。
4 部署MindSearch stremlit版本到Hugging Face上
4.1 安装stremlit
相比运行python frontend/mindsearch_gradio.py启动的前端服务,使用stremlit需要先安装库:
conda activate mindsearch
pip install streamlit==1.39.0
4.2 启动后端服务
安装好库后,启动后端服务,本次选用BingSearch搜索引擎。
export SILICON_API_KEY=<你的API_KEY>
cd /workspaces/myLLM/MindSearch
# 启动后端服务
python -m mindsearch.app --lang cn --model_format internlm_silicon --search_engine BingSearch --asy
4.3 启动前端服务
前面克隆的https://github.com/InternLM/MindSearch.git文件里已经包含了mindsearch_streamlit.py,和上面执行过的mindsearch_gradio.py文件在同一个文件夹内,运行该文件启动前端服务。
cd ./frontend/
streamlit run frontend/mindsearch_streamlit.py



2020

被折叠的 条评论
为什么被折叠?



