本地部署MindSearch(开源 AI 搜索引擎框架),然后上传到 hugging face的Spaces——L2G6

部署MindSearch到 hugging face Spaces上——L2G6

任务1

在 官方的MindSearch页面 复制Spaces应用到自己的Spaces下,Space 名称中需要包含 MindSearch 关键词,请在必要的步骤以及成功的对话测试结果当中

实现过程如下:

2.1 MindSearch 简介

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

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

在这里插入图片描述

2.2 开发环境配置

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

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

在这里插入图片描述

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

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

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

如果是新建的codespace,在第一次创建conda环境时,需要conda init,再另启一个终端并activate

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

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

2.4. 启动MindSearch

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

在这里插入图片描述

2.4.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.” 等待一段时间后,会在页面上输出它的结果。

在这里插入图片描述

可能遇到的问题

在这一步中,可能终端会打印报错信息,但是只要前端页面上没有出现报错就行。如果前端页面上出现错误并终止,那么可能是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

2.5. 部署到自己的 HuggingFace Spaces上

这里我们介绍一种更简单的方法,它就像克隆一样,无需编写代码即可部署自己的Spaces应用~

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

2.5.1 选择配置

在该页面的右上角,选择Duplicate this Space

在这里插入图片描述

选择如下配置后,即可Duplicate Space

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

然后就开始部署啦
在这里插入图片描述

2.5.2 测试结果

回到自己头像的space中,会发现,已经有running在运行啦,这样就完成啦快速部署自己的Huggingface的模型啦!

点击就可以测试啦,

在这里插入图片描述

等待Spaces应用启动,当启动好后上方会显示绿色的running标志,这时我们可以输入input进行测试了,我们可以在Sapces应用页面的输入框中输入以下内容:

# input
What are the top 10 e-commerce websites?

测试时可能会发现页面卡住了很久(两三分钟),我们可以查看日志,最后两行可能报如下错误:

graph.add_edge(start_node="root", end_node("contract_enforcement"))
  SyntaxError: positional argument follows keyword argument

此时需要在页面右上角选择Restart Space,待到重启完成后(显示绿色running标志后)再刷新一下网页页面,再次测试结果如下~

在这里插入图片描述

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络安全中的机器学习

当涉及到网络安全时&#xff0c;技术一直是保护系统免受攻击和数据泄露的关键。在这篇论文中&#xff0c;我将介绍一些当前在网络安全领域使用的关键技术&#xff0c;包括加密&#xff0c;身份验证和防火墙。 首先&#xff0c;加密是网络安全中最常见的技术之一。加密是指使用算…

从猜想终结到算法革新,弹性哈希开启数据存储新篇章

目录 哈希表的前世今生基本原理从传统到现代&#xff1a;哈希表的演变历程 安德鲁 克拉皮文及其团队的创作历程弹性哈希详解基本原理优点技术细节 漏斗哈希解析基本原理优点技术细节 新算法的实际应用案例电子商务推荐系统金融交易监控系统社交媒体内容过滤物联网设备管理 结论…

STM32 外部中断和NVIC嵌套中断向量控制器

目录 背景 外部中断/事件控制器(EXTI) 主要特性 功能说明 外部中断线 嵌套向量中断控制器 特性 ‌中断线&#xff08;Interrupt Line&#xff09; 中断线的定义和作用 STM32中断线的分类和数量 优先级分组 抢占优先级&#xff08;Preemption Priority&#xff09; …

【运维】源码编译安装cmake

背景&#xff1a; 已经在本地源码编译安装gcc/g&#xff0c;现在源码安装cmake 下载源码 下载地址&#xff1a;CMake - Upgrade Your Software Build System 安装步骤&#xff1a; ./bootstrap --prefix/usr/local/cmake make make install 错误处理 1、提示找不到libmpc.…

机器学习实战(8):降维技术——主成分分析(PCA)

第8集&#xff1a;降维技术——主成分分析&#xff08;PCA&#xff09; 在机器学习中&#xff0c;降维&#xff08;Dimensionality Reduction&#xff09; 是一种重要的数据处理技术&#xff0c;用于减少特征维度、去除噪声并提高模型效率。主成分分析&#xff08;Principal C…

2025-02-16 学习记录--C/C++-PTA 7-20 打印九九口诀表

一、题目描述 ⭐️ 二、解题思路 ⭐️ 将输出样例中 等号左边的数据交换个位置&#xff0c;就可以轻易发现 规律&#xff1a; 从上到下是外层循环&#xff0c;从左到右是内层循环。 第一行&#xff1a;111 第二行&#xff1a;212 224 第三行&#xff1a;313 326 339 第三行&…

MySQL(1)基础篇

执行一条 select 语句&#xff0c;期间发生了什么&#xff1f; | 小林coding 目录 1、连接MySQL服务器 2、查询缓存 3、解析SQL语句 4、执行SQL语句 5、MySQL一行记录的存储结构 Server 层负责建立连接、分析和执行 SQL存储引擎层负责数据的存储和提取。支持InnoDB、MyIS…

基于Springboot的公寓报修管理系统【附源码】

基于Springboot的公寓报修管理系统 效果如下&#xff1a; 系统登陆页面 房间信息页面 维修人员页面 维修分类页面 审核页面 维修分配页面 维修记录页面 研究背景 在现代社会中&#xff0c;随着城市化进程的加速和人口流动的频繁&#xff0c;公寓作为城市居民重要的居住形式&…

C语言——时基

上图中&#xff0c;每一个小格代表1ms时间&#xff0c;每1ms产生1ms的标志Flag_1ms&#xff0c;该标志变为1&#xff0c;Cnt_1ms为计数器&#xff0c;每检测到1ms计数器加1&#xff0c;计数器加1后&#xff0c;1ms的标志清零&#xff0c;直到再经过1ms&#xff0c;Flag_1ms再变…

【16】思科AireOS:创建使用 LWA 认证的 WLAN

1. 概述 LWA(Local Web Authentication)是一种基于 Web 认证的方式,允许无线客户端在连接 WLAN 后,使用 Web 认证页面进行身份验证。该方法适用于访客网络或需要身份认证的场景。 本指南详细介绍如何在 Cisco AireOS 无线控制器(WLC)上配置 LWA 认证的 WLAN,并确保认证…

用户管理中心---前端页面设计测试登录功能

文章目录 1.前端页面的替换1.1修改页面底部 2.代码的修改2.1删除无关代码2.2修改参数和接口2.3添加请求配置2.4修改代理 3.测试登录功能 1.前端页面的替换 原来的登录页面 1.1修改页面底部 原来的这个页面底部显示的是Ant design pro相关的链接&#xff0c;我们自己做项目&am…

MySQL登录问题总结

不管何种数据库&#xff0c;使用的第一步都是先登录。 MySQL命令行登录语句&#xff1a;mysql -u username -P port -p -D database_name 登录MySQL的报错一般从报错信息都能得到反馈&#xff0c;常见报错原因分析如下&#xff0c;实例中的以test用户为例&#xff0c;登录环境为…

GitCode 助力至善云学:构建智慧教育平台

项目仓库&#xff1a; 前端&#xff1a;https://gitcode.com/Fer_Amiya/vue-ZhiShanYunXue-Client 后端&#xff1a;https://gitcode.com/Fer_Amiya/go-ZhiShanYunXue-Server 突破传统教学困境&#xff0c;探索教育新解法 传统教学的习题讲评环节&#xff0c;教师面临着难以…

保护大数据的最佳实践方案

在当今数字化时代&#xff0c;保障大数据安全的重要性再怎么强调也不为过。 随着科技的迅猛发展以及对数据驱动决策的依赖日益加深&#xff0c;企业必须将保护其宝贵信息置于首位。 我们将深入探讨保障大数据安全的流程&#xff0c;并讨论关键原则、策略、工具及技术&#xf…

Go 之 Windows下 Beego 项目的搭建

一、GO 环境配置 从 Go 1.11 开始&#xff0c;Go 引入了模块&#xff08;Modules&#xff09;的概念&#xff0c;允许你在任何位置创建和管理 Go 项目&#xff0c;而不需要将它们放在 $GOPATH/src 下。Go Modules 使用 go.mod 文件来管理依赖项和版本信息。 查看GOPATH位置 D…

Day6 25/2/19 WED

【一周刷爆LeetCode&#xff0c;算法大神左神&#xff08;左程云&#xff09;耗时100天打造算法与数据结构基础到高级全家桶教程&#xff0c;直击BTAJ等一线大厂必问算法面试题真题详解&#xff08;马士兵&#xff09;】https://www.bilibili.com/video/BV13g41157hK?p4&v…

【分布式理论12】事务协调者高可用:分布式选举算法

文章目录 一、分布式系统中事务协调的问题二、分布式选举算法1. Bully算法2. Raft算法3. ZAB算法 三、小结与比较 一、分布式系统中事务协调的问题 在分布式系统中&#xff0c;常常有多个节点&#xff08;应用&#xff09;共同处理不同的事务和资源。前文 【分布式理论9】分布式…

驱动开发系列37 - Linux Graphics 2D 绘制流程(二)- 画布创建和窗口关联

一:概述 前面介绍Pixmap表示一块画布,是绘制发生的地方,本节看看驱动程序如何为画布分配内存/显存,以及如何与窗口关联的。 二:为画布分配BO 在系统启动时(用户登录系统之后,会重启Xorg),在 Xorg 服务器初始化时,要为屏幕创建根窗口的 Pixmap,并绑定到 GPU framebu…

DeepSeek服务器繁忙 多种方式继续优雅的使用它

前言 你的DeepSeek最近是不是总是提示”服务器繁忙,请稍后再试。”&#xff0c;尝试过了多次重新生成后&#xff0c;还是如此。之前DeepSeek官网连续发布2条公告称&#xff0c;DeepSeek线上服务受到大规模恶意攻击。该平台的对话框疑似遭遇了“分布式拒绝服务攻击”&#xff0…

【Mpx】-环境搭建项目创建(一)

一.概述 官方文档&#xff1a;https://mpxjs.cn/guide/basic/start.html mpxjs/cli文档: https://github.com/mpx-ecology/mpx-cli 二.脚手架安装&创建项目 2.1项目创建 //脚手架安装 npm i -g mpxjs/cli //创建Mpx项目 mpx create mpx-demo(项目名称) //安装依赖 np…