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 是一个云端算力平台,专为大模型时代设计)
我们首先需要登录
算力平台这里的算力积分是需要参与他们提供的训练营获得。详细情况可以参考https://aicarrier.feishu.cn/wiki/XBO6wpQcSibO1okrChhcBkQjnsf
点击开发机-创建开发机
接下来进入开发机资源选择界面
填写开发机名称:MindSearch
镜像:Cuda12.2-conda
资源配置:50% A100 * 1
以上配置完成后等待资源分配。
资源分配完成后,我们右边操作‘’进入开发机"进入Jupyter Notebook开发机界面
初次进来左边是没有相当代码和文件的。因为我的之前有相关文件所以列表中显示了一些测试代码。(这个没关系,大家能理解就可以了)
因为该平台已经安装好小助手了,所以我们这里只需要将share 分享文件夹里面mindsearch 环境激活即可。
点击 terminal 进入 shell 命令行窗口
输入conda 命令激活运行环境
conda activate /share/pre_envs/mindsearch
打开新终端运行以下命令启动推理后端
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官方网站申请申请流程较为繁琐,这里就不在这里详细介绍,感兴趣的小伙伴可以参考
,这里我们使用到免费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/
有网站信息返回,说明网络代理成功。
我们按照上面的步骤就已经初步完成项目的步骤和搭建了,接下来我们测试一下MindSearch 搜索功能
打开浏览器窗口输入http://127.0.0.1:7860/ (我们上面的步骤就是做了端口映射,可以可以访问本地127.0.0.1:7860 这个地址)
浏览器页面打开,我们输入问题。模型开始加载
后端8002 服务加载模型,启动一个23333后端模型接口服务调用
后端程序已经在调用
这个程序进行联网搜索了。后面通过书生浦语 框架返回结果,最后在通过internlm2_5-7b-chat模型推理将搜索信息总结归纳返回给前端测试验证结果是OK的。
目前书生浦语推出的