1.什么是MindSearch
MindSearch 是一个由上海人工智能实验室推出的开源 AI 搜索引擎框架,具有与 Perplexity.ai Pro 相同的性能。它支持使用闭源和开源的大语言模型(LLMs),如 GPT、Claude 和 InternLM2.5-7b-chat,用户可以轻松部署自己的搜索引擎。其拥有以下特性:
- 🤔 任何想知道的问题:MindSearch 通过搜索解决你在生活中遇到的各种问题
- 📚 深度知识探索:MindSearch 通过数百网页的浏览,提供更广泛、深层次的答案
- 🔍 透明的解决方案路径:MindSearch 提供了思考路径、搜索关键词等完整的内容,提高回复的可信度和可用性。
- 💻 多种用户界面:为用户提供各种接口,包括 React、Gradio、Streamlit 和本地调试。根据需要选择任意类型。
- 🧠 动态图构建过程:MindSearch 将用户查询分解为图中的子问题节点,并根据 WebSearcher 的搜索结果逐步扩展图。
MindSearch VS 其他 AI 搜索引擎
在深度、广度和生成响应的准确性三个方面,对 ChatGPT-Web、Perplexity.ai(Pro)和 MindSearch 的表现进行比较。评估结果基于 100 个由人类专家精心设计的现实问题,并由 5 位专家进行评分*。
今天就大家在InternStudio 上部署起来。(什么是InternStudio ,IInternStudio 是一个云端算力平台,专为大模型时代设计)
2.创建开发机
我们首先需要登录InternStudio算力平台
这里的算力积分是需要参与他们提供的训练营获得。详细情况可以参考https://aicarrier.feishu.cn/wiki/XBO6wpQcSibO1okrChhcBkQjnsf
点击开发机-创建开发机
接下来进入开发机资源选择界面
填写开发机名称:MindSearch
镜像:Cuda12.2-conda
资源配置:50% A100 * 1
以上配置完成后等待资源分配。
资源分配完成后,我们右边操作‘’进入开发机"进入Jupyter Notebook开发机界面
初次进来左边是没有相当代码和文件的。因为我的之前有相关文件所以列表中显示了一些测试代码。(这个没关系,大家能理解就可以了)
3 .激活环境
因为该平台已经安装好小助手了,所以我们这里只需要将share 分享文件夹里面mindsearch 环境激活即可。
点击 terminal 进入 shell 命令行窗口
输入conda 命令激活运行环境
conda activate /share/pre_envs/mindsearch
4 .启动服务
启动后端服务
打开新终端运行以下命令启动推理后端
cd /share/demo/MindSearchDuck
python -m mindsearch.app --lang cn --model_format internstudio_server
启动前端服务
打开新终端运行以下命令启动推理前端,我们可以重新开个窗口执行如下命令
conda activate /share/pre_envs/mindsearch
cd /share/demo/MindSearchDuck
python run.py
使用端口映射
这里解释一下,因为我们是在Jupyter Notebook开发机界面启动服务的,我们需要访问web页面才能访问MindSearch进行联网搜索,所以我们这里需要端口映射到本地。
打开 windows powershell
回到开发机管理界面,点击ssh连接
在弹出的对话框中,复制ssh链接命令
这里面复制的命令我们需要稍微修改一下,修改成下面的命令,其中我们需要增加本地7860:127.0.0.1:7860 地址信息
ssh -p 44847 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
复制以上命令到 windows powershell 窗口中执行,这个时候会弹出输入密码
我们需要将上面在弹出的对话框中,复制密码,将密码复制到上面窗口中执行,点击回车
以上步骤就完成端口映射。
按照上面同样的步骤把后端服务也映射出来,详细操作这里就不介绍了。
命令
ssh -p 44847 root@ssh.intern-ai.org.cn -CNg -L 8002:127.0.0.1:8002 -o StrictHostKeyChecking=no
最后的效果 2个映射
代理网络设置
这个MindSearch 用到 AI agent 关于联网搜索功能其实用到了第三方的 搜索引擎 bing 和 DuckDuckGo,bing在国内是可以访问但是需要 key 需要再微软bing官方网站申请申请流程较为繁琐,这里就不在这里详细介绍,感兴趣的小伙伴可以参考申请免费的必应搜索API ,这里我们使用到免费DuckDuckGo做搜索,不过这个DuckDuckGo在国内是不能直接访问的,需要借助梯子来实现。因为借助梯子上网国内是违法的,所以我们这里也不详细展开。我们只给大家一个思路。
在服务器上安装好科学上网工具
启动工具
设置网络代理全局配置文件/etc/profile
vi /etc/profile 增加如下内容
export proxy="http://127.0.0.1:7890"
export sockproxy="socks5://127.0.0.1:7891"
export http_proxy=$proxy
export https_proxy=$proxy
export ftp_proxy=$proxy
export all_proxy=$sockproxy
export no_proxy="localhost, 127.0.0.1, ::1"
编写好profile 退出,使用设置profile 生效,使用如下命令
source /etc/profile
以上配置完成后就完成网络代理设置。我们使用curl 命令测试一下
curl https://duckduckgo.com/
有网站信息返回,说明网络代理成功。
5 .运行测试
我们按照上面的步骤就已经初步完成项目的步骤和搭建了,接下来我们测试一下MindSearch 搜索功能
打开浏览器窗口输入http://127.0.0.1:7860/ (我们上面的步骤就是做了端口映射,可以可以访问本地127.0.0.1:7860 这个地址)
浏览器页面打开,我们输入问题。模型开始加载
后端8002 服务加载模型,启动一个23333后端模型接口服务调用
后端程序已经在调用duckduckgo_search 这个程序进行联网搜索了。后面通过书生浦语 lagent 框架返回结果,最后在通过internlm2_5-7b-chat模型推理将搜索信息总结归纳返回给前端
测试验证结果是OK的。
完整版图片
6 .总结
目前书生浦语推出的MindSearch 这块框架总体来测试还是不错的。目前软件刚开源,问题还是有点的。不过搜索的结果还是不错的可以和闭源的Perplexity.ai 媲美了,不足的地方就是调用第三方搜索引擎目前都是国外的对新人来说 有一定的门槛。感兴趣的小伙伴可以按照我文档操作一遍,感受国产AI 搜索这块的强大,今天的分享就到这里结束了。我们下个文章见。