1. MindSearch 运行体验

关于 MindSearch 的介绍这里不再赘述,详情可以自行查看 任务文档,关于 MindSearch 的使用,可以看我的 这篇文章

1.1 环境准备

这里我们使用 Github CodeSpace 和硅基流动提供的免费 InternLM2.5-7B-Chat API 服务来部署 MindSearch。

1.1.1 模版创建

进入 CodeSpace 主界面后,创建一个 blank 模板用于后续实验:

在这里插入图片描述

1.1.2 conda 环境创建

在终端运行下面的命令创建一个新的 conda 环境:

conda create -n mindsearch python=3.10 -y
conda init

注意:如果是新建的 codespace,在第一次创建 conda 环境时,需要 conda init,再另启一个终端并 activate 才能激活环境。不过如果你嫌麻烦,也可以直接使用 source activate 命令直接激活。

虚拟环境创建成功后我们拉取一下 MindSearch 的项目代码并安装一下相关依赖:

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

1.2 获取硅基移动 API KEY

进入 硅基移动官网,注册登录完成后找到左侧导航栏的 API 秘钥 选项,点击进入,然后创建一个自己的 API KEY:

在这里插入图片描述

1.3 启动 MindSearch

获取到 API KEY 之后回到 CodeSpace,在正式运行前后端之前先在终端设置一下我们的 API KEY 环境变量:

export SILICON_API_KEY=<上面复制的API KEY>

然后执行下面的代码来启动 MindSearch 的后端:

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 搜索引擎

后端启动完成后我们执行下面的代码启动前端:

conda activate mindsearch
# 进入你clone的项目目录
cd /workspaces/codespaces-blank/MindSearch
python frontend/mindsearch_gradio.py

前后端都启动后,我们可以看到 CodeSpace 自动为这两个进程做了端口转发:

在这里插入图片描述

如果前端启动后没有自动跳转页面的话在可以点击上图的 7882 端口转发地址手动进入前端页面

正常的前端页面长这个样子:

在这里插入图片描述
我让 MindSearch 帮我解读 MAE 这篇论文的创新点和模型应用,最终 MindSearch 回复如下:

在这里插入图片描述
在这里插入图片描述

整体来说回答的还不错~

2. 部署 MindSearch 到 HuggingFace Spaces 上

在之前的课程中,我们尝试了把一些模型部署到 HuggingFace Spaces 上,但是我们的做法比较繁琐,需要先 clone,再修改自己的代码,再 push 上去,还有可能遇到网络问题需要换镜像源。下面我们 MindSearch 的部署将采用一种更简单的方法。

首先我们找到 InternLM 官方部署的 MindSearch Spaces 应用,找到右上角的三个小点:

在这里插入图片描述
选择 Duplicate this Space,复制这个项目到自己的 Space 中,在配置页面,硬件选免费的 16G CPU ,然后填写好自己的 SILICON_API_KEY:

在这里插入图片描述
配置好后应用就会开始 Building,当应用状态显示绿色的 running 标志时我们就可以使用应用了。我问了一下 MindSearch 前十名的电商网站是哪些,回复如下(看着还不错~):

在这里插入图片描述

3. 部署 MindSearch streamlit 版本到 HuggingFace Spaces 上

我在做这个选做任务的时候 Readme 文件突然更新了,选做任务突然不见了(难绷),不过既然看到了,还是按照群里面同学发的任务截图做了一下。

在上一节中我们的 MindSearch 是使用 Gradio 部署的,这一节我将使用 Streamlit 再部署一遍。

这里我复制了一个新的应用到我的 Space 上,然后修改了一下 app.py 文件,将文件内容替换成我们 CodeSpace 拉取下来的项目中的 MindSearch/frontend/mindsearch_streamlit.py 文件:

在这里插入图片描述
然后再修改一下复制下来的 Space 应用的 README 文件,将 metadata 中的 sdk 和 sdk_version 修改如下:

sdk: streamlit
sdk_version: 1.40.2

到这里还没结束,直接使用官方提供的 streamlit 示例代码无法运行我们部署的应用,会提示 Connection Error 和一些其他错误,还需要对代码进行如下修改:

在这里插入图片描述
首先是解决网络连接错误的问题,原始代码中默认你的后端是运行在本地的 8002 端口上的,但是我们的后端其实是在 CodeSpace 上运行的,所以需要将 http://localhost:8002 这部分地址修改成我们 CodeSpace 中的后端转发地址,也就是下图中红框的这个地址(/solve 别删了,只需要替换 http://localhost:8002 这一部分):

在这里插入图片描述

然后就是一些变量在使用前没有定义的报错,按照下面的样子修改一下代码即可:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

上述步骤全部执行完后,这时问问题应用确实不会报错了,但是也不会有任何回复,就跟卡住了一样,换搜索引擎也没用。这里需要特别注意:在运行后端代码的时候记得将我们的 url 设为公开,这样我们的应用才能正常使用。

在这里插入图片描述
还是问同样的问题,前十名的电商网站是哪些,看看应用的回复效果:

在这里插入图片描述
在这里插入图片描述
MindSearch 给出了详细的分析和思考过程,可以看到整体回复效果还是挺不错的。

这里如果你的 MindSearch 输出一阵子之后报错,可以尝试替换一下搜索引擎,我一开始用的 BingSearch 就出现了这种情况,换成 DuckDuckGoSearch 就好了。

至此,书生大模型实训营第4期进阶岛第六关任务完成~

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐