使用cherry studio离线搭建私人知识库流程记录

本篇文章记录近期尝试在个人笔记本上、全离线状态下搭建知识库的流程。用到的工具包括:Cherry Studio、ollama。主要过程是:首先下载ollama用于管理大模型;然后,从魔塔社区下载需要的deepseek、千问大模型和bge-m3嵌入模型,导入到ollama;最后在cherry studio构建知识库进行配置和使用。

搭建私人知识库能让知识管理更高效,实现集中存储与分类整理;使知识检索更便捷,可快速精准查询;特别是全离线状态下能增强数据安全与隐私保护,让个人自主掌控数据。

ollama下载与使用

第一步是下载ollama[1],Ollama是一个开源的大型语言模型服务工具,能让用户在本地计算机上便捷地部署和运行多种先进的语言模型,如Qwen、Llama、DeepSeek - R1等。它提供简单的命令行界面和API,支持模型微调与自定义,具有多平台支持、性能优化、数据隐私保护等特点,适用于开发与测试、研究与学习、企业级应用等多种场景。

模型管理

# 拉取模型
# 如ollama pull llama2,其作用是从 Ollama 库中下载指定模型。
ollama pull <模型名称>
# 删除本地模型
# ollama rm <模型名称>,例如ollama rm llama2,能将本地的指定模型删除。
ollama rm <模型名称>
# 模型运行
# 如ollama run llama2,可以开启与指定模型的交互会话,在会话中能输入问题并获取模型的回答。
ollama run <模型名称>

下载完后,打开命令行工具,使用ollama pull 命令就可以直接把需要的名字拉取过来,下载完成后,使用ollama run 命令,可以在命令行运行起来大模型了。

模型下载

由于我们想在离线状态下部署、安装和使用,所以我们不使用上述命令拉取。魔塔社区类似hugging face,里面汇集了很多模型和数据文件。

我们从魔塔社区下载模型,注意ollama导入模型的文件格式是guff格式。以deepseekR1 7B蒸馏版为例,我们可以从连接[2]下载到guff格式的模型。这里我用的是4.66GB 版本的模型,在我的笔记本上可以跑起来。

图片

此外,由于我们构建知识库,还需要把知识库文件转换为向量,因为还要使用嵌入模型,这里我们也是从魔塔社区下载bge-m3[3]下载guff格式的嵌入模型。至此,我们需要的模型文件就下载好了,一个7B的大模型和一个嵌入模型。

下一步,我们需要把从魔塔社区下载的模型导入到ollama平台,不过在此之前要新建一个modelfile文件,里面写入模型的存储路径,下图是一个千问7B的例子。

图片

我们为qwen:7B大模型和bge-m3嵌入模型新建好modelfile文件,然后在当前目录下使用以下命令,把两个模型导入到ollama平台。create 后面跟着的是你定义的模型的名字,可以自己灵活定义;-f后面跟着的是modelfile的文件名。


ollama create bge_m3:FP16 -f bge_m3.modelfile
ollama create qwen:7B -f qwen7B.modelfile

导入成功后的截图如下所示,并且通过ollama list命令可以看到当前ollama平台拥有的模型。

图片

使用cherry studio离线构建个人知识库

在cherry studio 官网[4]下载客户端,下载完成后,按照如下步骤操作。

  • 首先:点击左下角设置按钮,选择ollama,打开右上角的开关,打开后如图所示会出现‘ON’的字样。

  • 然后:点击下方出现的管理模型,在模型ID处填写ollama list 列表中出现的模型名字。例如我这里是qwen:7B,点击添加模型。

图片

注意:如果是添加的bge_m3嵌入模型,则点击设置按钮,如下图把模型类型选择为嵌入类型。

图片

图片

  • 最后:我们新建知识库,知识库这里可以添加各类文件、为了简单我这里只添加了三条笔记,如下图所示。

图片

知识库使用

图片

如上图所示,我们选择新建的知识库12和导入的7B模型,通过对话询问Bob最喜欢吃的水果,模型通过知识库检索回答了正确的答案。

参考链接:

  1. https://ollama.com/

  2. https://www.modelscope.cn/models/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF/files

  3. https://www.modelscope.cn/models/gpustack/bge-m3-GGUF/files

  4. https://www.cherry-ai.com/

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

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

相关文章

【工具类】Linux 环境利用 uv 安装多版本 python

文章目录前置工作环境说明如果kali无法访问网络pypi 换源安装 uvuv 写入环境变量临时写入永久写入无法打开 github 解决方案&#xff08;注意此方法可能也会失效&#xff09;安装多版本 python查看已安装的pythonuv python install到 uv 的 github 主页&#xff0c;找安装文件下…

求职招聘小程序源码招聘小程序开发定制

身份&#xff1a;求职者、企业求职者&#xff1a;完善简历&#xff0c;简历投递企业&#xff1a;企业入驻&#xff0c;查看简历企业会员&#xff1a;半年 、年度 权益&#xff1a;每日发布条数、刷新条数&#xff0c;简历下载数量聊天&#xff1a;求职者可以和企业聊天招聘会…

Git 使用全指南:从配置到免密登录

Git 使用全指南&#xff1a;从配置到免密登录一、Git 基础配置二、Git 代码提交流程2.1 克隆远程仓库2.2 创建并切换分支2.3 暂存文件2.4 提交到本地仓库2.5 拉取远程最新代码2.6 推送本地分支到远程三、VSCode 服务器免密登录配置3.1 生成 Windows SSH 密钥3.2 复制公钥到服务…

组合期权:领式策略

文章目录0.简介1.多头领式策略&#xff08;Long Collar&#xff09;​1.1 策略构成1.2 适用场景​1.3 损益分析1.4 案例示范2.空头领式策略&#xff08;Short Collar&#xff09;​2.1 策略构成2.2 适用场景2.3 损益分析2.4 案例示范参考文献0.简介 领式策略&#xff08;Colla…

ECSPI控制器

目录 SPI协议简介 极性与相位 SPI框图 单字节收发 发送数据流程 接收数据流程 ECSPI控制器 关键特性 时钟源 主机模式 等待状态 片选控制 单突发传输 多突发传输 相位控制 ECSPI Memory Map ECSPI寄存器 ECSPIx_RXDATA ECSPIx_TXDATA ​编辑 ECSPIx_CONREG …

HTTP 与 SpringBoot 参数提交与接收协议方式

HTTP 协议支持多种参数提交方式&#xff0c;主要取决于请求方法(Method)和内容类型(Content-Type)。以下是主要的参数提交协议&#xff1a;1. URL 查询参数 (Query Parameters)请求方法: GET (也可用于其他方法)格式: ?key1value1&key2value2示例: GET /users?id123&…

Lua(数组)

Lua 数组基础概念Lua 中的数组实际上是用整数索引的 table&#xff0c;是一种特殊形式的表。数组索引通常从 1 开始&#xff08;Lua 惯例&#xff09;&#xff0c;但也可以从其他值开始。创建数组通过表构造器初始化数组&#xff1a;-- 索引从 1 开始的数组 local arr {10, …

【Docker项目实战】在Docker环境下部署go-file文件分享工具

【Docker项目实战】在Docker环境下部署go-file文件分享工具一、go-file介绍1.1 go-file简介1.2 go-file特点1.3 go-file使用场景二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下…

C++基础学习——文件操作详解

一、文件流类概述 C 标准库提供了三个主要的文件流类&#xff1a; ifstream (输入文件流)&#xff1a;用于从文件读取数据ofstream (输出文件流)&#xff1a;用于向文件写入数据fstream (文件流)&#xff1a;既可读又可写 这些类都继承自 iostream 类&#xff0c;因此可以使用 …

Android补全计划 DrawerLayout使用

DrawerLayout其实用了很久了&#xff0c;甚至封装了一些代码方便不同项目使用&#xff0c;但重构代码的时候突然意识到这块内容很不成体系&#xff0c;因此又参考了些文档&#xff0c;组建了自己的一个文档。 toolbardrawerlayout能写的效果很多&#xff0c;在此我也只是截取了…

人工智能之数学基础:概率论之韦恩图的应用

韦恩图的应用由于事件的计算有时候太过于抽象了&#xff0c;此时我们可以使用韦恩图的方式来进行验证&#xff0c;我们下面来举一个例子&#xff0c;A∪B&#xff09;-CA∪(B-C)是否成立&#xff1f;我们可以通过韦恩图来完成这个任务&#xff1a;我们通过这种方式来一点一点的…

小白成长之路-部署Zabbix7(二)

文章目录一、zabbix-自动发现二、自动注册三、zabbix-网易云邮箱-发送消息二、zabbix-钉钉告警总结一、zabbix-自动发现 1.在准备两台虚拟机&#xff0c;我的是192.168.144.12,192.168.144.13 server换成zabbix服务器的ip地址 vim /etc/zabbix/zabbix_agentd.conf 2.创建自动…

CMU15445-2024fall-project4踩坑经历

project4目录Task1Task2ReconstructSeqScanTask3InsertCommitTxnMgrDbgGenerateNewUndoLog And GenerateUpdateUndoLogUpdate And Delete垃圾回收Task4Index Insert并发控制Index ScanDelete、Update并发控制主键更新Bonus 1Bonus 2处理写倾斜感谢CMU的教授们给我们分享了如此精…

C++20 协程

摘要&#xff1a;C20 引入的协程机制为异步编程提供了轻量级解决方案&#xff0c;其核心优势在于通过用户态调度实现高效的上下文切换&#xff0c;适用于 I/O 密集型任务、生成器模式等场景。本文系统阐述 C20 协程的底层原理与实践要点&#xff0c;首先解析协程的基本结构&…

《计算机组成原理与汇编语言程序设计》实验报告二 基本数字逻辑及汉字显示

目 录 一、实验学时 二、实验目的 三、实验要求 四、实验内容 五、实验步骤 1、打开Logisim软件&#xff0c;列出并行四位二进制全加器逻辑电路真值表&#xff0c;并使用与、或、非、异或等基本原件实现并行四位二进制全加器逻辑电路&#xff0c;铺设完成后进行测试进而…

问卷调查小程序的设计与实现

问卷调查小程序的设计与实现&#xff1a;技术与功能全解析在数字化时代&#xff0c;问卷调查成为数据收集的重要工具。一款高效、易用的问卷调查小程序能够显著提升用户体验和数据质量。本文将深入探讨基于现代技术栈的问卷调查小程序的设计与实现&#xff0c;涵盖核心功能、技…

STM32项目实战:正弦波

波形发生器对我的钱包不怎么友好&#xff0c;手里面有stm32f103c8t6&#xff0c;于是就想,放在哪儿吃灰也是吃灰&#xff0c;不如做个正弦波发生器。方案 dac没怎么用过&#xff0c;所以打算使用输出模拟正弦波。我们决定采用以下方案&#xff1a;1.使用TIM2_CH3&#xff08;PA…

Unity 时间抗锯齿(Temporal Antialiasing, TAA)技术解析

时间抗锯齿&#xff08;Temporal Antialiasing, TAA&#xff09;技术解析 一、什么是时间抗锯齿&#xff08;TAA&#xff09;&#xff1f; 时间抗锯齿&#xff08;TAA&#xff09;是一种先进的实时抗锯齿技术&#xff0c;通过在时间维度上积累多帧渲染数据&#xff0c;实现比传…

uniapp打开导航软件并定位到目标位置的实现

/*** 打开导航* param location 经纬度(例如&#xff1a;"117.214713,39.116884")* param address 地址*/ export function mapNavigation(location, address) {const locationArr location.split(,)const longitude locationArr[0]const latitude locationArr[1]…

Mysql实现高可用(主从、集群)

一、背景 需求&#xff1a;客户要实现Mysql8.0高可用&#xff0c;出现故障时&#xff0c;需要实现自动切换。 分析&#xff1a;实现切换有两种方式&#xff0c;一种数据库自动切换&#xff0c;一种代码实现。 本着麻烦别人&#xff0c;别麻烦自己的原则&#xff0c;得给客户的D…