当前位置: 首页 > news >正文

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

文章目录

  • 前言
    • 工具介绍与作用
    • 工具的关联与协同工作
    • 必要性分析
  • 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

在这里插入图片描述

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


相关文章:

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

文章目录 前言工具介绍与作用工具的关联与协同工作必要性分析 1、DeepSeek 简介1.1、DeepSeek-R1 硬件要求 2、Linux 环境说明2.1、最小部署(Ollama DeepSeek)2.1.1、扩展(非必须) - Ollama 后台运行、开机自启: 2.2、…...

用 WOW.js 和 animate.css 实现动画效果

用 wow.js 就可以实现动画效果,但由于里面的动画样式太少,一般还会引入 animated.css 第一步:下载 选择合适的包管理器下载对应的内容 pnpm i wow.js animated.css --save 第二步:引入 在main.js中加入: import …...

1-知识图谱-概述和介绍

知识图谱:浙江大学教授 陈华军 知识图谱 1课时 http://openkg.cn/datasets-type/ 知识图谱的价值 知识图谱是有什么用? 语义搜索 问答系统 QA问答对知识图谱:结构化图 辅助推荐系统 大数据分析系统 自然语言理解 辅助视觉理解 例…...

flink jobgraph详细介绍

一、Flink JobGraph 的核心概念 JobGraph 是 Flink 作业的核心执行计划,它描述了作业的任务拓扑结构和数据流关系。JobGraph 由以下几部分组成: 顶点(Vertex) 每个顶点代表一个任务(Task),例如…...

使用nginx+rtmp+ffmpeg实现桌面直播

使用nginxrtmpffmpeg实现桌面直播 流媒体服务器搭建 docker run docker镜像基于添加了rtmp模块的nginx,和ffmpeg docker pull alfg/nginx-rtmp docker run -d -p 1935:1935 -p 8080:80 --namenginx-rtmp alfg/nginx-rtmprtmp模块说明 进入容器内部查看 docker…...

每日一题——将数字字符串转化为IP地址

将数字字符串转化为IP地址 题目描述解题思路回溯法步骤分解 代码实现全局变量有效性验证函数回溯函数主函数完整代码 复杂度分析关键点说明总结 这题难度还挺大的,整体上实现并不容易。建议参考视频 和https://programmercarl.com/0093.%E5%A4%8D%E5%8E%9FIP%E5%9C%…...

机器学习数学基础:25.随机变量分布详解

一、随机变量与分布函数的基本概念 (一)什么是随机变量? 在概率论领域,随机变量是将随机试验的结果进行数值化的关键概念。它就像一座桥梁,把抽象的随机事件和具体的数学分析连接起来。 举例来说,在一个…...

香港电讯与Zenlayer达成战略合作,拓展全球互联生态圈

作为主要国际金融与贸易中心,香港一直是连系中国内地及全球市场的重要门户。香港电讯作为本地领先的综合电讯服务提供商,拥有广泛的网络资源和深厚的技术专长,一直支持国内企业“走出去”和外资企业“走进来”。而旗下由PCCW Global营运的Con…...

MySQL-事务隔离级别

事务有四大特性(ACID):原子性,一致性,隔离性和持久性。隔离性一般在事务并发的时候需要保证事务的隔离性,事务并发会出现很多问题,包括脏写,脏读,不可重复读,…...

【Python学习 / 6】面向对象编程(OOP)

文章目录 ⭐前言⭐一、类和对象:面向对象编程基础1. 类(Class)类的组成:例子:定义一个简单的 Dog 类代码解析: 2. 对象(Object)对象的创建: 3. 三大特性:封装…...

Ollama DeepSeek + AnythingLLM 实现本地私有AI知识库

Ollama DeepSeek AnythingLLM 实现本地私有AI知识库 本地部署DeepSeek-r1下载安装AnythingLLMAnythingLLM 配置LLM首选项Embedder首选项向量数据库工作区其他配置 AnythingLLM Workspace使用上传知识词嵌入知识检索 本文主要介绍了如何使用AnythingLLM结合Ollama部署的DeepSee…...

个人博客测试报告

一、项目背景 个人博客系统采用前后端分离的方法来实现,同时使用了数据库来存储相关的数据,同时将其部署到云服务器上。前端主要有四个页面构成:登录页、列表页、详情页以及编辑页,以上模拟实现了最简单的个人博客系统。其结合后…...

嵌入式八股文(四)计算机网络篇

第一章 基础概念 1. 服务 指网络中各层为紧邻的上层提供的功能调用,是垂直的。包括面向连接服务、无连接服务、可靠服务、不可靠服务。 2. 协议 是计算机⽹络相互通信的对等层实体之间交换信息时必须遵守的规则或约定的集合。⽹络协议的三个基本要素:语法、…...

基于Electron+Vue3创建桌面应用

Electron 是一个开源框架,基于 Chromium 和 Node.js,用于开发跨平台桌面应用程序。它允许开发者使用 HTML、CSS 和 JavaScript 等 Web 技术构建原生桌面应用,支持 Windows、macOS 和 Linux。Electron 以其开发便捷性、强大的功能和丰富的生态系统而广泛应用于工具类应用、媒…...

建立稳定分析模式的模式语言01

Haitham Hamza 等 著,wnb 译 摘要 一般认为,软件分析模式在减少开销和缩短软件产品生命周期等方面会起到重要的作用。然而,分析模式的巨大潜能还未被充分发掘。缺乏稳定性是当前分析模式存在的主要问题。多数情况下,为特定问题建…...

【C++游戏开发-五子棋】

使用C开发五子棋游戏的详细实现方案,涵盖核心逻辑、界面设计和AI对战功能: 1. 项目结构 FiveChess/ ├── include/ │ ├── Board.h // 棋盘类 │ ├── Player.h // 玩家类 │ ├── AI.h // AI类 │ └── Game.h // 游戏主逻辑 ├── src/ …...

ubuntu20动态修改ip,springboot中yaml的内容的读取,修改,写入

文章目录 前言引入包yaml原始内容操作目标具体代码执行查看结果总结: 前言 之前有个需求,动态修改ubuntu20的ip,看了下: 本质上是修改01-netcfg.yaml文件,然后执行netplan apply就可以了。 所以,需求就变成了 如何对ya…...

tailwindcss学习02

vue中接入tailwindcss 使用cmd不要使用powershell npm create vitelatest stu02 -- --template vue cd stu02npm install --registry http://registry.npm.taobao.org npm install -D tailwindcss3.4.17 postcss autoprefixer --registry http://registry.npm.taobao.org npx t…...

千峰React:脚手架准备+JSX基础

组件化->封装性 React提供函数组件实现组件化 React和传统JS的区别就是JS需要手动管理DOM操作,React: 采用组件化开发,通过虚拟DOM提升性能。 MVC 是一种软件设计模式,全称为 Model-View-Controller(模型-视图-控制器&#x…...

【算法】快排

题目 快排 思路 如果输入为0或1直接返回;否则取一个基准值,可以取中间位置,如果输入是有序的可以避免时间过长,然后移动指针,先让i指针右移,如果小于基准值就继续右移,j指针左移同理。如果指…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage)&#xff1a…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

AI,如何重构理解、匹配与决策?

AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...