书生大模型实战营14-MindSearch深度解析实践

文章目录

  • L2——进阶岛
    • MindSearch深度解析实践
      • 1 MindSearch 简介
      • 2 开发环境配置
        • 2.1. 打开codespace主页,选择Blank模板进行创建
        • 2.2. 创建conda环境隔离并安装依赖
      • 3. 获取硅基流动API KEY
      • 4. 启动MindSearch
        • 4.1. 启动后端
        • 4.2. 启动前端
      • 5. 部署到自己的 HuggingFace Spaces上
        • 5.1 选择配置
        • 5.2 测试结果

L2——进阶岛

MindSearch深度解析实践

1 MindSearch 简介

MindSearch 是一个开源的 AI 搜索引擎框架,具有与 Perplexity.ai Pro 相同的性能。我们可以轻松部署它来构建自己的专属搜索引擎,可以基于闭源的LLM(如GPT、Claude系列),也可以使用开源的LLM(如经过专门优化的InternLM2.5 系列模型,能够在MindSearch框架中提供卓越的性能)。

最新版的MindSearch拥有以下特性:

  • 🤔 任何你想知道的问题:MindSearch 通过搜索解决你在生活中遇到的各种问题
  • 📚 深度知识探索:MindSearch 通过数百个网页的浏览,提供更广泛、深层次的答案
  • 🔍 透明的解决方案路径:MindSearch 提供了思考路径、搜索关键词等完整的内容,提高回复的可信度和可用性。
  • 💻 多种用户界面:为用户提供各种接口,包括 React、Gradio、Streamlit 和本地调试。根据需要选择任意类型。
  • 🧠 动态图构建过程:MindSearch 将用户查询分解为图中的子问题节点,并根据 WebSearcher 的搜索结果逐步扩展图。

在这里插入图片描述

2 开发环境配置

在入门岛我们已经提到过,想要简单部署到 hugging face上,我们需要将开发机平台从InternStudio 替换成 GitHub CodeSpace。且随着硅基流动提供了免费的InternLM2.5-7B-Chat的API服务,大大降低了部署门槛,我们无需GPU资源也可以部署和使用MindSearch,这也是可以利用CodeSpace完成本次实验的原因。 那就让我们一起来看看如何使用硅基流动的API来部署MindSearch吧~

2.1. 打开codespace主页,选择Blank模板进行创建

在这里插入图片描述

2.2. 创建conda环境隔离并安装依赖

如果只针对于这个实验的话,其实在codespace里面不用单独创建conda环境。但是隔离是一个好习惯,因此我们还是创建一个相应的虚拟环境来隔离。

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

如果是新建的codespace,在第一次创建conda环境时,需要conda init,再另启一个终端并activate
在这里插入图片描述

conda activate mindsearchcd /workspaces/codespaces-blank
git clone https://github.com/InternLM/MindSearch.git && cd MindSearch && git checkout ae5b0c5pip install -r requirements.txt

3. 获取硅基流动API KEY

因为要使用硅基流动的 API Key,所以接下来便是注册并获取 API Key 了。 首先,我们打开它的登录界面来注册硅基流动的账号(如果注册过,则直接登录即可)。 在完成注册后,打开api key页面来准备 API Key。首先创建新 API 密钥,然后点击密钥进行复制,以备后续使用。
在这里插入图片描述

4. 启动MindSearch

4.1. 启动后端

由于硅基流动 API 的相关配置已经集成在了 MindSearch 中,所以我们在一个终端A中可以直接执行下面的代码来启动 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 搜索引擎。

指令执行后,结果如下
在这里插入图片描述
此时会弹出在浏览器中展示 FastAPI 界面的提示。
界面如下
在这里插入图片描述

4.2. 启动前端

在后端启动完成后,我们打开新终端B运行如下命令来启动 MindSearch 的前端:

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

执行后结果如下,此时会弹出打开浏览器页面的提示。
在这里插入图片描述

前后端都启动后,在 GitHub CodeSpace 页面,我们可以看到github自动为这两个进程做端口转发:
在这里插入图片描述
如果启动前端后没有自动打开前端页面的话,我们可以手动用7882的端口转发地址打开gradio的前端页面。
在这里插入图片描述

然后就可以体验MindSearch gradio版本啦~ 比如向其询问:“Find legal precedents in contract law.” 等待一段时间后,会在页面上输出它的结果。
在这里插入图片描述
在这一步中,可能终端会打印报错信息,但是只要前端页面上没有出现报错就行。如果前端页面上出现错误并终止,那么可能是MindSearch 中 searcher 模块的问题。在上面的例子中我们使用的是DuckDuckGoSearch,因此你也可以尝试其他的搜索引擎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

5. 部署到自己的 HuggingFace Spaces上

在之前课程的学习中,我们已经将模型或者应用上传/部署到hugging face上过了。在这里我们介绍一种更简单的方法,它就像克隆一样,无需编写代码即可部署自己的Spaces应用。

首先我们找到InternLM官方部署的MindSearch Spaces应用

5.1 选择配置

在该页面的右上角,选择Duplicate this Space
在这里插入图片描述
选择如下配置后,即可Duplicate Space

  • Space Hardware选择第一条,即Free的2vCPU即可
  • 填写好SILICON_API_KEY,即上面提到的硅基流动的API KEY

在这里插入图片描述

5.2 测试结果

等待Spaces应用启动,启动完成后,界面如下:
在这里插入图片描述
同时上方会显示绿色的running标志,这时我们可以输入input进行测试了,我们可以在Sapces应用页面的输入框中输入以下内容:

What are the top 10 e-commerce websites?

测试时可能会发现页面卡住了很久(两三分钟),我们可以查看日志,如有报错,需要重新启动。
在这里插入图片描述
提出问题后,即可收到回报。
在这里插入图片描述

至此,我们就完成了MindSearch在Hugging Face上面的部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp实现app的pdf预览

实现效果 文件准备 static下添加该pdf文件&#xff08;下载地址&#xff1a;https://gitee.com/shallow-winds/resource_package/tree/master/%E6%96%B9%E6%B3%95%E4%B8%80/html&#xff09; 使用web-view进行展示&#xff1a; 在这里插入代码片 <web-view :src"u…

重启 nginx

首先确认Nginx是否已经安装&#xff0c;并检查它的安装位置。 执行以下命令来检查&#xff1a; which nginx#例如&#xff1a;显示/usr/local/nginx/sbin/nginx方法1&#xff1a;直接使用完整路径启动Nginx 1.1、启动 Nginx&#xff0c;执行命令&#xff1a; sudo /usr/loca…

java实现多图合成mp4和视频附件下载

java实现多图合成mp4和视频附件下载 在wutool中&#xff0c;封装了视频处理工具类&#xff0c;基于javacv和ffmpeg库&#xff0c;实现多图合成mp4、视频http附件下载等。 关于wutool wutool是一个java代码片段收集库&#xff0c;针对特定场景提供轻量解决方案&#xff0c;只…

ollama修改监听ip: 0.0.0.0

确认Ollama绑定IP地址 默认情况下&#xff0c;Ollama可能仅监听本地回环地址&#xff08;127.0.0.1&#xff09;。要允许外部访问&#xff0c;需将其配置为监听所有IP&#xff08;0.0.0.0&#xff09;或指定IP&#xff08;如10…19&#xff09;。 修改启动命令&#xff08;推荐…

STM32-温湿度上传OneNET项目

一、项目需求 使用 ESP8266 连接 OneNET 云平台&#xff0c;并通过 MQTT 协议上传 DHT11 获取的温湿度值。 二、项目框图 三、DHT11工作原理 参考于良许嵌入式手把手教你玩转DHT11&#xff08;原理驱动&#xff09; | 良许嵌入式 3.1 正常工作验证 #​ 上电后&#xff…

百度首页上线 DeepSeek 入口,免费使用

大家好&#xff0c;我是小悟。 百度首页正式上线了 DeepSeek 入口&#xff0c;这一重磅消息瞬间在技术圈掀起了惊涛骇浪&#xff0c;各大平台都被刷爆了屏。 百度这次可太给力了&#xff0c;PC 端开放仅 1 小时&#xff0c;就有超千万人涌入体验。这速度&#xff0c;简直比火…

Ubuntu:wvp-GB28181-pro安装、运行

参考 https://doc.wvp-pro.cn 下载源码 GitHub - 648540858/wvp-GB28181-pro: WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的网络视频平台&#xff0c;支持NAT穿透&#xff0c;支持海康、大华、宇视等品牌的IPC、NVR、DVR接入。支持国标级联&#xff0c;支持rtsp/rtm…

c++入门-------命名空间、缺省参数、函数重载

C系列 文章目录 C系列前言一、命名空间二、缺省参数2.1、缺省参数概念2.2、 缺省参数分类2.2.1、全缺省参数2.2.2、半缺省参数 2.3、缺省参数的特点 三、函数重载3.1、函数重载概念3.2、构成函数重载的条件3.2.1、参数类型不同3.2.2、参数个数不同3.2.3、参数类型顺序不同 前言…

Linux提权之计划任务反弹shell提权(十一)

实验环境还是一样的 当获取一个linux普通用户的时&#xff0c;查看计划任务 首先我们退出root用户 cat /etc/crontab crontab -l 查看当前用户命令 /var/spool/cron/crontabs/root 这个目录是root任务文件 默认是不是root权限是 看不到 tail -f /var/log/syslog 咋们切换用…

论文解读 | AAAI'25 Cobra:多模态扩展的大型语言模型,以实现高效推理

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 点击 阅读原文 观看作者讲解回放&#xff01; 个人信息 作者&#xff1a;赵晗&#xff0c;浙江大学-西湖大学联合培养博士生 内容简介 近年来&#xff0c;在各个领域应用多模态大语言模型&#xff08;MLLMs&…

ai-financial-agent - 为金融投资打造的AI代理

探索人工智能在投资研究中的应用。本项目仅用于**教育**目的&#xff0c;不用于真实交易或投资。 作者声明&#xff1a; 本项目仅用于教育和研究目的。 不用于真实交易或投资不提供任何保证或担保过去的表现并不代表未来的结果Creator 对经济损失不承担任何责任咨询财务顾问…

Open WebUI选择模型为空,解决办法(for DeepSeek)

标签&#xff1a; DeepSeek&#xff1b; Open WebUI&#xff1b; 问题&#xff1a;Open WebUI选择模型为空&#xff0c;解决办法 &#xff08;for DeepSeek&#xff09; 操作系统&#xff1a;Ubuntu 22 硬件&#xff1a;台式电脑 Ubuntu 22系统&#xff0c;DeepSeek安装成功&…

欧几里得算法第二弹---计算多个数的最大公约数

如果要求多个数的 GCD&#xff0c;可以先求前两个数的 GCD&#xff0c;然后用这个结果与下一个数求 GCD&#xff0c;依次类推。 为什么可以用前两个数的 GCD 与下一个数继续求 GCD&#xff0c;从而得到所有数的 GCD 呢&#xff1f;&#xff08;之前我不知道&#xff0c;自己也没…

掌握 ElasticSearch 组合查询:Bool Query 详解与实践

掌握 ElasticSearch 组合查询&#xff1a;Bool Query 详解与实践 一、引言 (Introduction)二、Bool 查询基础2.1 什么是 Bool 查询&#xff1f;2.2 Bool 查询的四种子句2.3 语法结构 三、Bool 查询的四种子句详解与示例3.1 must 子句3.2 filter 子句3.3 should 子句3.4 must_no…

【练习】【类似于子集问题】力扣491. 非递减子序列/递增子序列

题目 非递减子序列 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#xff0c;也可以视作递增序列的一种特殊情况…

本地部署AI模型 --- DeepSeek(二)---更新中

目录 FAQ 1.Failed to load the model Exit code: 18446744072635812000 FAQ 1.Failed to load the model Exit code: 18446744072635812000 问题描述&#xff1a; &#x1f972; Failed to load the model Error loading model. (Exit code: 18446744072635812000). Unkn…

开源嵌入式实时操作系统uC/OS-II介绍

一、uC/OS-II的诞生&#xff1a;从开源实验到行业标杆 背景与起源 uC/OS-II&#xff08;Micro-Controller Operating System Version II&#xff09;诞生于1992年&#xff0c;由嵌入式系统先驱Jean J. Labrosse开发。其前身uC/OS&#xff08;1991年&#xff09;最初作为教学工…

Starlink卫星动力学系统仿真建模第七讲-卫星姿轨控系统(Attitude and Orbit Control System, AOCS)设计规范

以下是一份卫星姿轨控系统&#xff08;Attitude and Orbit Control System, AOCS&#xff09;设计规范的框架和核心内容示例&#xff0c;供参考&#xff1a; 卫星姿轨控系统&#xff08;AOCS&#xff09;设计规范 1. 总则 1.1 目的 本规范旨在规定卫星姿轨控系统的设计要求、…

C++之旅-C++11的深度剖析(1)

目录 前言/背景 1.C11的发展历史 2.列表初始化 2.1 C98传统的{} 2.2 C11中的{} 2.3 C11中的std::initializer_list 3.右值引用 3.1 左值和右值 3.2 左值引用和右值引用 3.3 引用延长生命周期 3.4 左值和右值的参数匹配 结束语 前言/背景 随着现代软件开发的快速发展…

什么是手机9008模式?如何进入9008

之前给大家分享了一些有关手机刷机的知识&#xff0c;今天给大家讲一讲如果刷机过程中不慎变砖应该如何应对&#xff08;当然了&#xff0c;希望大家都不会遇到&#xff09;&#x1f602;&#x1f604; 在给手机 Root 或刷机时&#xff0c;线刷 9008 指的是利用 高通 9008 模式…