当前位置: 首页 > 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指针左移同理。如果指…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

Unity中的transform.up

2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...