Ubuntu 24.04.1 LTS 本地部署 DeepSeek 私有化知识库

news2025/5/20 11:23:24

文章目录

  • 前言
    • 工具介绍与作用
    • 工具的关联与协同工作
    • 必要性分析
  • 1、DeepSeek 简介
    • 1.1、DeepSeek-R1 硬件要求
  • 2、Linux 环境说明
    • 2.1、最小部署(Ollama + DeepSeek)
      • 2.1.1、扩展(非必须) - Ollama 后台运行、开机自启:
    • 2.2、Page Assist - 浏览器插件
    • 2.3、知识库
      • 2.3.1、Embedding 向量化模型 - bge-m3
      • 2.3.2、AnythingLLM


前言

工具介绍与作用

  1. Ollama - 官方网站

    • 定义与作用:
      • Ollama 是一个开源的本地化大语言模型(LLM)部署工具,旨在简化大型语言模型的安装、运行和管理。它封装了底层的模型运行逻辑,提供了一个用户友好的命令行界面(CLI)和 API 接口,使得用户可以在本地设备上轻松运行各种开源模型(如 LLaMA、DeepSeek 等)。Ollama 支持 GPU 加速,能够自动利用设备的 GPU 资源来提高模型的推理效率。
    • 在 DeepSeek 部署中的作用:
      • Ollama 作为 DeepSeek 模型的本地运行环境,负责加载和运行 DeepSeek 模型文件。它提供了模型管理功能,用户可以通过 Ollama 的命令行工具下载、加载和切换不同的模型版本。
  2. Embedding - 官方网站

    • 定义与作用:
      • Embedding(嵌入)是指将高维数据(如文本)转换为低维向量的过程。这些向量能够捕捉数据的语义信息,便于进行高效的检索和比较。在自然语言处理中,嵌入模型(如 nomic-embed-text )将文本片段转换为向量,这些向量可以存储在向量数据库中。
    • 在 DeepSeek 部署中的作用:
      • 在部署 DeepSeek 时,Embedding 模型用于将文档内容转换为向量形式,并将这些向量存储在向量数据库中。当用户向 AI 助手提问时,系统会通过嵌入模型将问题文本转换为向量,然后在向量数据库中搜索与问题最相关的文档片段,从而提供更精准的回答。
  3. AnythingLLM - 官方网站

    • 定义与作用:
      • AnythingLLM 是一个全栈应用程序,用于构建私有化的 AI 知识库。它支持多种文档格式(如 PDF、TXT、DOCX 等),可以将文档内容嵌入到向量数据库中,并通过智能问答功能与用户进行交互。AnythingLLM 提供了前端管理界面,用户可以通过界面上传文档、管理知识库,并与 AI 助手进行对话。
    • 在 DeepSeek 部署中的作用:
      • AnythingLLM 作为前端管理工具,与 Ollama 结合使用,提供了一个完整的知识库管理解决方案。它通过调用 Ollama 提供的模型推理能力,结合嵌入模型和向量数据库,实现了对用户上传文档的智能检索和问答功能。AnythingLLM 支持多种 LLM 和嵌入模型,用户可以选择适合的模型组合来优化知识库的性能。
  4. Page Assist - 官方网站

    • 定义与作用:
      • Page Assist 是一个开源的浏览器扩展插件,用于与本地运行的 AI 模型进行交互。它提供了一个直观的 WebUI 界面,用户可以通过侧边栏或网页 UI 与 AI 模型进行对话。Page Assist 支持多种功能,包括与网页内容、PDF 文件和文档进行聊天交流。
    • 在 DeepSeek 部署中的作用:
      • Page Assist 为用户提供了一个便捷的交互界面,使得用户可以通过浏览器与本地运行的 DeepSeek 模型进行对话。它与 Ollama 配合使用,通过配置 Ollama 的地址和嵌入模型,用户可以在浏览器中直接与 DeepSeek 模型进行交互。

工具的关联与协同工作

  • Ollama 是底层的模型运行环境,负责加载和运行 DeepSeek 模型。
  • Embedding 模型将文档内容转换为向量,存储在向量数据库中,为智能问答提供支持。
  • AnythingLLM 作为前端管理工具,结合 Ollama 和嵌入模型,实现了知识库的管理和智能问答功能。
  • Page Assist 提供了一个用户友好的交互界面,使得用户可以通过浏览器与本地运行的 DeepSeek 模型进行对话。

必要性分析

必须使用的工具:

  • Ollama:
    • 作用:Ollama 是部署 DeepSeek 的核心工具,负责下载、管理和运行 DeepSeek 模型。它是本地化部署 DeepSeek 的基础,必须使用。
    • 最小需求:安装 Ollama 客户端,并通过命令行运行 DeepSeek 模型(如 ollama run deepseek-r1:7b )。
  • DeepSeek 模型:
    • 作用:DeepSeek 是一个强大的语言模型,用于提供智能问答和生成内容。
    • 最小需求:下载并运行 DeepSeek 模型(如 deepseek-r1:7b ),这是实现功能的基础。

可选的工具:

  • AnythingLLM:
    • 作用:提供一个用户友好的界面,用于管理文档、知识库和与 DeepSeek 模型进行交互。它支持文档上传、向量化和智能检索功能。
    • 是否必须:可选,但强烈推荐。如果没有 AnythingLLM,用户只能通过命令行与 DeepSeek 交互,无法实现知识库管理和智能检索功能。
  • Embedding:
    • 作用:将文档内容转换为向量形式,以便存储在向量数据库中,支持智能检索功能。
    • 是否必须:可选,但如果你需要实现基于文档的知识库功能(如智能检索和问答),则需要使用 Embedding。
  • Page Assist:
    • 作用:提供一个浏览器扩展界面,用于与本地运行的 DeepSeek 模型进行交互,增强用户体验。
    • 是否必须:可选,主要用于提升用户体验,使用户可以通过浏览器界面与模型进行对话。

1、DeepSeek 简介

官方网站

1.1、DeepSeek-R1 硬件要求

参考文档

在这里插入图片描述

参考文档:R1蒸馏版-1.5B 无需GPU,任意四核 CPU,内存 8GB,硬盘空间 12GB 即可运行

在这里插入图片描述

2、Linux 环境说明

操作系统:Ubuntu 24.04.1 LTS
安装包:ubuntu-24.04.1-desktop-amd64.iso

硬件环境:i5-10400
虚拟化软件:ESXi-8.0
虚拟机:CPU 8核 内存 16G 硬盘 80G

2.1、最小部署(Ollama + DeepSeek)

目标:快速启动并运行 DeepSeek 模型,进行基本的智能问答

最小需求:

  • Ollama:用于下载和运行 DeepSeek 模型
  • DeepSeek 模型:选择合适的模型版本(如 deepseek-r1:7b )并运行

参考文档:Ollama GitHub 部署文档

# 安装 curl 工具 - 系统默认没有
apt install curl

# 安装 Ollama
# 不推荐!好慢: curl -fsSL https://ollama.com/install.sh | sh
# 推荐 - 通过工具下载,地址:https://ollama.com/download/ollama-linux-amd64.tgz
# 解压
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
# 启动 Ollama 服务 - 前台运行
ollama serve
# 查看 Ollama 是否正常启动 - 通过浏览器访问 http://localhost:11434

# 验证是否安装成功
# 打开另外一个中端
ollama -v
ollama --version

# 下载并运行 DeepSeek 模型
# 说明:有点慢 1.1 GB
ollama run deepseek-r1:1.5b
# 成功后,即可愉快的玩耍啦 ~

在这里插入图片描述

2.1.1、扩展(非必须) - Ollama 后台运行、开机自启:

编辑配置文件

nano /etc/systemd/system/ollama.service
# 重载 systemd 配置
sudo systemctl daemon-reload
# 开机自启
sudo systemctl enable ollama
# 启动服务
sudo systemctl start ollama
# 查看状态
sudo systemctl status ollama

配置文件示例

[Unit]
Description=Ollama Service
After=network.target

[Service]
ExecStart=/usr/bin/ollama serve
Restart=always
User=root
Group=root
RestartSec=3
# 如果需要远程访问,设置为 0.0.0.0
Environment="OLLAMA_HOST=0.0.0.0"
# 如果需要更改端口,可以在这里设置
Environment="OLLAMA_PORT=11434"
Environment="OLLAMA_ORIGINS=*"
# 模型文件存储目录,当前为默认。推荐变更为 /data/ollama/models
Environment="OLLAMA_MODELS=/root/.ollama/models"

[Install]
WantedBy=multi-user.target

2.2、Page Assist - 浏览器插件

以上方法,只能通过命令行进行交互。
如何通过浏览器进行交互呢?浏览器上面安装个插件 Page Assist

FireFox 安装示例(Chrome 也有)

在这里插入图片描述

点击插件之后显示的页面

在这里插入图片描述

配置页面 - 配置成中文

在这里插入图片描述

配置页面 - 选择模型

在这里插入图片描述

插件页面 - 开始聊天啦 ~

在这里插入图片描述

2.3、知识库

2.3.1、Embedding 向量化模型 - bge-m3

# 拉取模型
ollama pull bge-m3
# 验证是否拉取成功
ollama list

2.3.2、AnythingLLM

参考文档:AnythingLLM 官方部署文档
说明:通过官方命令下载有点慢,可以通过工具下载。
AnythingLLMDesktop.AppImage 安装文件下载地址

说明:使用 .AppImage 文件,依赖 FUSE
FUSE 官方网站

# 安装 FUSE
sudo add-apt-repository universe
sudo apt install libfuse2t64
# 安装好后,鼠标双击 AnythingLLMDesktop.AppImage 文件即可出现可视化界面啦 ~

初始界面

在这里插入图片描述

skip 注册的流程 - 创建工作区 - 设置 LLM 首选项

在这里插入图片描述

设置 Embedding 向量化模型

在这里插入图片描述

上传自定义的知识,并向量化保存。

在这里插入图片描述

在这里插入图片描述

下拉,点击 Save

在这里插入图片描述

部署完成啦 ~ 可以使用啦 ~


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

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

相关文章

python语言进阶之函数

目录 前言 函数的创建和调用 函数创建 调用函数 参数传递 形式参数和实际参数 位置参数 数量必须与定义时一致 位置必须与定义时一致 关键字参数 为参数设置默认值 可变参数 **parameter 返回值 变量的作用域 局部变量 全局变量 匿名函数 前言 提到函数&…

Mybatis-扩展功能

逻辑删除乐观锁 MyBatisPlus从入门到精通-3(含mp代码生成器) Db静态工具类 Spring依赖循环问题 代码生成器 MybatisPlus代码生成器 枚举处理器 我们这里用int来存储状态 需要注解,很不灵活 希望用枚举类来代替这个Integer 这样的话我…

Baklib知识中台构建企业智能运营核心架构

内容概要 在数字化转型的浪潮中,企业对于知识的系统化管理需求日益迫切。Baklib作为新一代的知识中台,通过构建智能运营核心架构,为企业提供了一套从知识汇聚到场景化落地的完整解决方案。其核心价值在于将分散的知识资源整合为统一的资产池…

保姆级GitHub大文件(100mb-2gb)上传教程

GLF(Git Large File Storage)安装使用 使用GitHub desktop上传大于100mb的文件时报错 The following files are over 100MB. lf you commit these files, you will no longer beable to push this repository to GitHub.com.term.rarWe recommend you a…

【16届蓝桥杯寒假刷题营】第2期DAY1I

4.有向无环的路径数 - 蓝桥云课 问题描述 给定 N 个节点 M 条边的有向无环图,请你求解有多少条 1 到 N 的路径。 由于答案可能很大,你只需要输出答案对 998244353 取模后的结果。 输入格式 第一行包含 2 个正整数 N,M,表示有向无环图的节…

DeepSeek 助力 Vue 开发:打造丝滑的面包屑导航(Breadcrumbs)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

Ubuntu 系统 LVM 逻辑卷扩容教程

Ubuntu 系统 LVM 逻辑卷扩容教程 前言 在 Linux 系统中,LVM(Logical Volume Manager)是一种逻辑卷管理工具,允许管理员动态调整磁盘空间,而无需重启系统。 本文将详细介绍如何使用 LVM 扩容逻辑卷,以实现…

7-Zip Final绿色版:高效压缩解压缩工具

在工作与学习旅程中,我们时常需要与各式各样的文件和文件夹打交道。为了更有效地利用存储空间或促进文件的便捷传输,压缩与解压工具自然而然地成为了我们不可或缺的助手。在众多同类工具中,7-Zip凭借其高效能、免费及开源的特性,深…

QML使用ChartView绘制饼状图

一、工程配置 首先修改CMakeLists.txt,按下图修改: find_package(Qt6 6.4 REQUIRED COMPONENTS Quick Widgets) PRIVATEtarget_link_libraries(appuntitledPRIVATE Qt6::QuickPRIVATE Qt6::Widgets )其次修改main.cpp,按下图修改&#xff…

【Android开发】华为手机安装包安装失败“应用是非正式版发布版本,当前设备不支持安装”问题解决

问题描述 我们将Debug版本的安装包发送到手机上安装,会发现华为手机有如下情况 解决办法 在文件gradle.properties中粘贴代码: android.injected.testOnlyfalse 最后点击“Sync now”,等待重新加载gradle资源即可 后面我们重新编译Debug安装…

Ubuntu添加桌面快捷方式

以idea为例 一. 背景 在ubuntu中,很多时候是自己解压的文件并没有桌面快捷方式,需要自己找到对应的目录的执行文件手动打开,很麻烦 而只需要在 /usr/share/applications 中创建自定义的desktop文件就能自动复制到桌面 二. 添加方法 创建desk…

day09_实时类标签/指标

文章目录 day09_实时类标签/指标一、日志数据实时采集2、Flume简介2.3 项目日志数据采集Flume配置2.3.1 涉及的Flume组件和参数2.3.2 Nginx日志采集2.3.3 用户行为日志采集 二、Nginx日志数据统计1、日志格式说明2、数据ETL2.1 日志抽取2.1.1 正则表达式2.1.2 基于Spark实现Ngi…

排序算法的魔法世界:用C语言揭开数据排列的奥秘

当数据开始跳集体舞:排序的意义 想象你面前有一群调皮的数字精灵在开派对,7和3在跳探戈,9和1在玩捉迷藏,5和2在抢蛋糕。这时候就需要排序算法这位神奇的派对管家出场了!它像音乐指挥家一样挥动魔棒,让所有数字精灵乖乖排成整齐的队伍。在计算机的世界里,排序算法就是处…

网页模板免费HTML源码 HTML网页设计模板

在现代网站开发中,拥有一个美观且功能齐全的网页模板是至关重要的。对于许多开发者和设计师来说,获取高质量的免费HTML源码和网页设计模板可以大大简化开发流程。本文将探讨网页模板免费HTML源码的资源、优势以及如何有效利用这些模板。 什么是网页模板…

与传统光伏相比 城电科技的光伏太阳花有什么优势?

相比于传统光伏,城电科技的光伏太阳花有以下优势: 一、发电效率方面 智能追踪技术:光伏太阳花通过内置的智能追踪系统,采用全球定位跟踪算法,能够实时调整花瓣(即光伏板)的角度,确…

Python的那些事第二十二篇:基于 Python 的 Django 框架在 Web 开发中的应用研究

基于 Python 的 Django 框架在 Web 开发中的应用研究 摘要 Django 是一个基于 Python 的高级 Web 框架,以其开发效率高、安全性和可扩展性强等特点被广泛应用于现代 Web 开发。本文首先介绍了 Django 的基本架构和核心特性,然后通过一个实际的 Web 开发项目案例,展示了 Dj…

Unity DeepSeek API 聊天接入教程(0基础教学)

Unity DeepSeek API 聊天接入教程(0基础教学) 1.DeepSeek 介绍 DeepSeek是杭州深度求索人工智能基础技术研究有限公司推出的一款大语言模型。2025年1月20日,DeepSeek-R1正式上线,和当前市面上的主流AI相比,它在仅有极少标注数据的情况下&am…

【16届蓝桥杯寒假刷题营】第1期DAY4

4.可达岛屿的个数 - 蓝桥云课 题目背景 在一个神奇的魔法世界中,有一座古老的迷幻之城。迷幻之城被分成 n 个鸟屿,编号从 1 到 n,共有 m 座桥。迷幻之城的居民们希望能够建立起紧密的联系,每个岛屿上的居民都想知道自己最多能到…

CAN学习记录

CAN(Controller Area Network),是ISO国际标准化的串行通信协议,为了满足汽车产业的“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需求 低速CAN(ISO11519)通信速率10~125kbps,总线长度可达1000米 高速CAN&#…

滑动窗口算法篇:连续子区间与子串问题

1.滑动窗口原理 那么一谈到子区间的问题,我们可能会想到我们可以用我们的前缀和来应用子区间问题,但是这里对于子区间乃至子串问题,我们也可以尝试往滑动窗口的思路方向去进行一个尝试,那么说那么半天,滑动窗口是什么…