深度“求索”:DeepSeek+Dify构建个人知识库
目录
前言
环境部署
安装Docker
安装Dify
配置Dify
部署知识库
创建应用
前言
在当今数字化信息爆炸的时代,数据隐私和个性化知识管理成为企业和个人关注的焦点。Dify,作为一款备受瞩目的开源 AI 应用开发平台,为用户提供了完整的私有化部署方案,让数据安全掌控在自己手中。而 DeepSeek 作为本地部署的强大 AI 服务,拥有着卓越的性能和灵活性。将二者无缝集成,就如同为企业开启了一扇通往定制化、安全可靠 AI 应用世界的大门。通过这样的集成,企业能够在本地服务器环境内构建出功能强大的 AI 应用,不仅确保了数据隐私,还能满足个性化的业务需求。接下来,就让我们一起深入探索如何利用 DeepSeek +硅基流动+ Dify 构建属于自己的个人知识库。
环境部署
安装Docker
#wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo#yum -y install docker-ce #默认下载的是最新版的docker#systemctl start docker && systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.#vi /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.211678.top","https://docker.1panel.live","https://hub.rat.dev","https://docker.m.daocloud.io","https://do.nark.eu.org","https://dockerpull.com","https://dockerproxy.cn","https://docker.awsl9527.cn"],"exec-opts": ["native.cgroupdriver=systemd"]
}#systemctl daemon-reload
#systemctl restart docker
安装Dify
安装Git
#yum -y install git
拉取Dify
# git clone https://gitee.com/dify_ai/dify
Cloning into 'dify'...
remote: Enumerating objects: 237231, done.
remote: Counting objects: 100% (101077/101077), done.
remote: Compressing objects: 100% (42662/42662), done.
remote: Total 237231 (delta 80807), reused 76208 (delta 56849), pack-reused 136154 (from 1)
Receiving objects: 100% (237231/237231), 89.83 MiB | 404.00 KiB/s, done.
Resolving deltas: 100% (184737/184737), done.# cd dify/docker
# cp .env.example .env # 创建配置文件
启动Dify
# docker compose up -d
#接下来就是拉取镜像和部署的过程,耐心等待,与网速有关。
搭建完成后进行账户设置:
创建完成后查看首页:
配置Dify
点击设置:
点击模型提供商:
安装Deepseek插件和硅基流动插件:
安装插件完成。
安装完成后查看,设置API-KEY:
设置相应参数:
配置系统模型:
大模型配置完成。
部署知识库
在主页上方点击知识库:
点击“创建空知识库”,会弹出一个弹窗,填写知识库名称后,点击创建即可,在资料还没整理好的时候,可以先创建一个空知识库,在后续上传本地文档或导入在线数据。
无论是创建空知识库还是直接创建知识库,都需要走选择数据源这一步,所以我就一起讲了,先讲下导入已有文本。我们选择导入已有文本,然后把相关的文件拖拽或者点击选择文件去选择我们需要上传的文本文件,支持的种类也挺多,有“ TXT、 MARKDOWN、 MDX、 PDF、 HTML、 XLSX、 XLS、 DOCX、 CSV、 MD、 HTM”,大小可以在dify的配置文件中进行修改。
在通用模式下,系统会按照用户自动以的规则将内容拆分为独立的分段。当用户输入问题后,系统自动分析问题中的关键词,并计算关键词与知识库中各内容分段的相关度。根据相关度排序,选取最相关的内容分段并发送给 LLM,辅助其处理与更有效地回答。
在该模式下,需要根据不同的文档格式或者场景要求,手动设置这三个分段规则:【分段标识符】【分段最大长度】【分段重叠长度】。
分段标识符:
默认值为 \n,即按照文章段落进行分块。你可以遵循正则表达式语法自定义分块规则,系统将在文本出现分段标识符时自动执行分段。
分段最大长度:
指定分段内的文本字符数最大上限,超出该长度时将强制分段。默认值为 500 Tokens,分段长度的最大上限为 4000 Tokens;
分段重叠长度:
指的是在对数据进行分段时,段与段之间存在一定的重叠部分。这种重叠可以帮助提高信息的保留和分析的准确性,提升召回效果。建议设置为分段长度 Tokens 数的 10-25%;
以及文本域处理规则,过滤知识库内部分无意义的内容。提供了两种选项,可以单选一种也可以两种都选上:
点击下方的“预览块”按钮,即可查看分段后的效果。可以直观地看到每个区块的字符数。如果重新修改了分段规则,需要重新点击按钮以查看新的内容分段。
在父子模式下,相较于通用模式,采用了双层分段结构来平衡检索的精确度和上下文信息,让精准匹配与全面的上下文信息二者兼得。其中,父区块(Parent-chunk)保持较大的文本单位(如段落),提供丰富的上下文信息;子区块(Child-chunk)则是较小的文本单位(如句子),用于精确检索。系统首先通过子区块进行精确检索以确保相关性,然后获取对应的父区块来补充上下文信息,从而在生成响应时既保证准确性又能提供完整的背景信息。你可以通过设置分隔符和最大长度来自定义父子区块的分段方式。
其基本机制如下:
子分段匹配查询
将文档拆分为较小、集中的信息单元(例如一句话),更加精准地匹配用户所输入的问题。
子分段能快速提供与用户需求最相关的初步结果。
父分段提供上下文
将包含匹配子分段的更大部分(如段落、章节甚至整个文档)视作父分段并提供给大语言模型(LLM)。
父分段能为 LLM 提供完整的背景信息,避免遗漏重要细节,帮助 LLM 输出更贴合知识库内容的回答。
父分段设置提供了【段落】和【全文】两种分段选项。
段落是根据预设的分隔符规则和最大块长度将文本拆分为段落。每个段落视为父分段,适用于文本量较大,内容清晰且段落相对独立的文档。
全文则不进行段落分段,而是直接将全文视为单一父分段。出于性能原因,仅保留文本内的前 10000 Tokens 字符,适用于文本量较小,但段落间互有关联,需要完整检索全文的场景。
子分段是在父文本分段基础上,由分隔符规则切分而成,用于查找和匹配与问题关键词最相关和直接的信息。如果使用默认的子分段规则,通常呈现以下分段效果;1.当父分段为段落时,子分段对应各个段落中的单个句子。2.父分段为全文时,子分段对应全文中各个单独的句子。
索引方式提供了两种【高质量】和【经济】,并分别提供了不同的检索设置选项:
其中,高质量的索引方式,可以选择Embedding模型,设置相关配置:
最后进行保存处理。
创建应用
依次点击 “工作室” → “创建空白应用” → “聊天助手” → 为你的应用起一个名字(也可以修改logo和描述) → “创建”
添加知识库,我们选择刚刚创建的知识库:
输入完 提示词之后,可以开始正式调试AI了
本知识库的提示词:
### ✅ 角色定义
你是一位专业的**容器技术发展史讲解助手**,专注于从虚拟化技术到云原生生态的技术演进历程。你的知识体系覆盖容器核心技术(如 Docker、Kubernetes)、编排系统、服务网格(Service Mesh)、Serverless 架构等关键技术节点。你的回答需结合以下维度:
- 技术原理(底层机制)
- 历史背景(时间线与推动者)
- 行业影响(对 DevOps、云计算等领域的变革) ---### 📚 知识主线
请严格按照以下技术演进脉络组织回答内容:
1. 虚拟化时代(如 2000 年 FreeBSD Jail)
2. 容器化兴起(如 2013 年 Docker)
3. 容器编排阶段(如 2014 年 Kubernetes)
4. 云原生生态成熟(如 2017 年 Istio)---### 🧠 回答规范 #### 1. **技术解释模板**
- **概念定义**
- **诞生背景**
- **工作原理**(可包含关键词示意,如“cgroups + namespace 实现隔离”、“联合文件系统支持镜像分层”)
- **行业影响**> 示例:解释 Docker 镜像时需说明“一次构建到处运行”的实现依赖联合文件系统层。#### 2. **对比分析模板**
使用表格形式清晰呈现关键差异点: | 维度 | 技术A | 技术B |
|------|-------|-------|
| 隔离层级 | 如:硬件级(虚拟机) | 如:进程级(容器) |
| 资源损耗 | 高(模拟硬件) | 低(共享内核) |
| 启动速度 | 分钟级 | 秒级 |
| 适用场景 | 开发测试、多租户环境 | 微服务部署、CI/CD |> 示例:虚拟机 vs 容器;Docker vs Kubernetes;Service Mesh vs API Gateway#### 3. **技术发展节点分析模板**
- **时间节点**(如 2014 年)
- **技术突破**(如 Kubernetes 推出)
- **推动者**(如 Google)
- **标志事件**(如 CNCF 成立、击败 Mesos 和 Swarm)---### 🔍 核心解析能力要求 #### 核心技术概念
- 解释底层原理: - cgroups / namespace - OCI 运行时标准 - 联合文件系统(UnionFS)
- 对比技术差异: - VM vs Container - Docker vs Kubernetes - Service Mesh vs API Gateway
- 图解关键架构: - Kubernetes 控制平面组件(API Server, etcd, Scheduler, Controller Manager) - Istio 数据平面流量管理(Sidecar 模式、Envoy 代理)#### 技术转折点分析
- Docker 如何解决“环境一致性”痛点
- Kubernetes 如何战胜 Docker Swarm / Mesos 成为编排王者
- Serverless 如何重构应用部署范式#### 行业影响解读
- 容器如何加速 DevOps 实践(如 CI/CD 流水线变革)
- 云原生对传统中间件的冲击(如 Service Mesh 替代 ESB)
- 混合云 / 边缘计算场景下的适配与挑战---### ⛔️ 回答边界声明 - 若问题涉及未发生或尚无共识的趋势(如量子计算与容器融合),应明确指出:“目前行业内尚无相关共识。”
- 若问题超出容器技术范畴(如区块链架构、AI 模型训练),应回复:“我的知识聚焦于容器技术演进,建议咨询相关领域专家。”
- 若涉及争议性话题(如“Docker 是否过时”),应回答中体现双面事实:- containerd 的崛起- Docker Desktop 的持续迭代---### 📎 示例对话参考 **用户提问**:Docker 为什么能快速取代传统虚拟化技术?
**助手回答**:Docker 的突破在于……(结合 namespace/cgroups 技术原理,对比虚拟机性能损耗,引用文档中“资源利用率提升 200%”数据)**用户提问**:Kubernetes 的 Master 节点包含哪些核心组件?
**助手回答**:控制平面由 API Server(集群入口)、etcd(分布式存储)、Scheduler(调度决策)……(配合架构图说明组件协作流程)**用户提问**:Istio 在服务治理中有何独特价值?
**助手回答**:相比传统 API 网关,Istio 通过 Sidecar 注入实现……(结合 Envoy 流量镜像案例,说明无侵入式治理优势)**用户提问**:容器技术未来会如何发展?
**助手回答**:根据 CNCF 2023 技术雷达,安全容器运行时(如 gVisor)、边缘容器管理(KubeEdge)、Serverless 容器……(严格限定于文档“展望”章节内容)---
进行发布更新
返回到工作室之后,可以发现在有了我们刚刚部署是垚不是土AI聊天助手,简单测试一下:
至此,我们已经详细地完成了利用 DeepSeek +硅基流动+Dify 构建个人知识库的全流程,从前期的 Docker 和 Dify 安装部署,到 Dify 的细致配置,再到知识库的精心搭建,最后成功创建并发布了 AI 聊天助手应用。这一系列的操作就像是在搭建一座知识的大厦,每一个步骤都至关重要。现在,这座大厦已经落成,你可以在其中自由地探索知识的奥秘,通过 AI 聊天助手轻松获取所需信息。希望通过本文的分享,能为你在构建个人知识库的道路上提供清晰的指引和有力的帮助,让你在数据安全和知识管理的领域中迈出坚实的一步,开启属于自己的智能知识之旅。
相关文章:

深度“求索”:DeepSeek+Dify构建个人知识库
目录 前言 环境部署 安装Docker 安装Dify 配置Dify 部署知识库 创建应用 前言 在当今数字化信息爆炸的时代,数据隐私和个性化知识管理成为企业和个人关注的焦点。Dify,作为一款备受瞩目的开源 AI 应用开发平台,为用户提供了完整的私有…...

基于R语言的空间异质性数据分析技术
在自然和社会科学领域,存在大量与地理或空间相关的数据,这些数据通常具有显著的空间异质性。传统的统计学方法在处理这类数据时往往力不从心。基于R语言的一系列空间异质性数据分析方法,如地理加权回归(GWR)、地理加权…...
C++:动态刷新打印内容
目录 1.简介1.1 Display类原理简述 2.代码2.1 main.cpp:无注释版2.2 main.cpp:有注释版 3.编译运行 1.简介 本文介绍一个用于命令行动态覆盖输出的C实现(Display类); 效果说明: 普通输出会直接换行显示。…...

网络学习-TCP协议(七)
一、TCP协议 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 1、三次握手 客户端: 1、先发起连接,发送SYN置1,seqnum12345(随机值)----半连接…...

基于微信小程序的高校校园微活动管理系统设计与实现(源码+定制+开发)高校微信小程序校园活动发布与互动平台开发 面向大学生群体的校园活动移动平台设计与实现
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
Python 项目中安装 OpenAI 库的详细指南
在 Windows 系统中指定版本安装 OpenAI 库的指南 在 Windows 系统中,尤其是使用 Python 3.7.8 时,安装 OpenAI 库可能会遇到一些问题。本文将为你提供一个简单易懂的解决方案,帮助你成功安装指定版本的 OpenAI 库。 一、问题背景 当你在 W…...

云计算与大数据进阶 | 27、存储系统如何突破容量天花板?可扩展架构的核心技术与实践—— 分布式、弹性扩展、高可用的底层逻辑(上)
数据中心里,存储系统是至关重要的组成部分。由于相关硬件组件与存储操作系统的多样性和复杂性,如何在保证存储稳定、安全、可靠的同时,实现灵活扩展和自服务,一直是困扰数据中心全面云化的难题。 简单来说,现在的难题…...
使用Gemini, LangChain, Gradio打造一个书籍推荐系统 (第二部分)
建立向量嵌入数据库 from langchain_community.document_loaders import TextLoader from langchain_text_splitters import CharacterTextSplitter from langchain.docstore.document import Document from langchain_chroma.vectorstores import Chromaimport vertexai from…...

IvorySQL-WASM:免安装的数据库探索之旅
简介 为了降低社区用户的使用门槛,提升使用体验,IvorySQL 社区特别推出了 IvorySQL-WASM 项目,帮助用户快速在线 Demo。 IvorySQL-WASM 基于开源的 Postgres-WASM 框架开发。它允许用户直接在网页浏览器中体验 IvorySQL,无需本地…...

飞牛fnNAS远程映射盘符
目录 一、NAS、PC端配置Zerotier 二、使用网上邻居 三、使用WebDAV 1.开启WebDAV 2.PC上安装RaiDrive并设置 如果能将NAS作为本机一个盘符来使用,一定会令我非常方便。如果是本地,可以很方便实现。 将飞牛NAS映射为本地盘符,常用两种方式,一种是网上邻居,另一种是We…...

Java设计模式:探索编程背后的哲学
设计模式是软件开发中的一种常见方法,它为常见问题提供了解决方案。在Java世界中,设计模式的应用尤为广泛。本文将深入探讨Java设计模式的起源、分类和实际应用,帮助读者更好地理解和应用这些模式。设计模式不仅是编程的技术,更是…...
会话管理有哪些
使用服务器或者框架的会话管理控制。应用程序应当只识别有效的会话标识符。 会话标识符必须总是在一个可信系统(比如:服务器)上创建。 会话管理控制应当使用通过审查的算法以保证足够的随机会话标识符。 为包含已验证的会…...
《C++20新特性全解析:模块、协程与概念(Concepts)》
引言:C20——现代C的里程碑 C20是继C11之后最具革命性的版本,它通过模块(Modules)、协程(Coroutines)和概念(Concepts)三大核心特性,彻底改变了C的代码组织方式、并发模…...

Docker部署OpenSearch集群
OpenSearch 简介 OpenSearch 是一款开源的搜索与分析引擎,最初由亚马逊 AWS 开发,于 2021 年 9 月将其移交至 Linux 基金会旗下的 OpenSearch 软件基金会,此后实现了社区主导的治理模式。其具有高性能、可扩展性强、兼容性强等优点ÿ…...
三宽用到的网络类型
用家宽、企宽和专线运行P2P的网络类型本质要求一致,但具体配置和优化方向因宽带类型而异。以下是关键差异与共性分析: 一、核心网络类型要求(三者的共性) 公网IP 必要性:均需公网IP(非内网IP)以…...

【AS32X601驱动系列教程】PLIC_中断应用详解
平台中断控制器(Platform Level Interrupt Controller,PLIC)是国科安芯AS32系列MCU芯片的中断控制器,主要对中断源进行采样,优先级仲裁和分发。各外设中断统一连到PLIC,PLIC统一管理并输出中断请求到内核。…...
单目视觉测量及双目视觉测量
一、单目视觉测量 1.1 原理部分讲解 单目视觉系统通过采集图像,将图像转换为二维数据,然后对采集的图像进行模式识别,通过图像匹配算法识别行驶过程中的车辆、行人、交通标志等,最后依据目标物体的运动模式和定位…...

python学习打卡day34
DAY 34 GPU训练及类的call方法 知识点回归: CPU性能的查看:看架构代际、核心数、线程数GPU性能的查看:看显存、看级别、看架构代际GPU训练的方法:数据和模型移动到GPU device上类的call方法:为什么定义前向传播时可以直…...
掩码与网关是什么?
1. 子网掩码(Subnet Mask) 作用:划分“小区”范围 想象你住在一个小区(子网)里: 小区门牌号 IP地址(如 192.168.1.10) 小区边界 子网掩码(如 255.255.255.0…...

leetcode-快慢指针系列
开胃小菜 141. 环形链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链…...

JAVA05基本数据类型和包装类的转换,转换成其他数据类型,包装类与字符串的转换+学生类的定义实例
1.基本数据类型和包装类的转换 下面是一个自动手动的例题 2.将包装类转换成其他类型 3. 将数据类型转换成字符串 将字符串转换成数据类型 以下是一个例题 学生类的例题...

Python打卡训练营学习记录Day34
知识点回归: CPU性能的查看:看架构代际、核心数、线程数 GPU性能的查看:看显存、看级别、看架构代际 GPU训练的方法:数据和模型移动到GPU device上 类的call方法:为什么定义前向传播时可以直接写作self.fc1(x) CPU性…...

动手学习深度学习V1.1 chapter2 (2.1-2.2)
chapter2:深度学习基础 区分问题:回归问题还是分类问题? 输出结果是不明确的连续值的时候就是回归问题,比如房价预测,销售额预测等。 输出结果是明确几个离散值的时候就是分类问题,比如字符识别…...

数据结构(6)线性表-队列
一、队列的概述 队列也是一种特殊的线性表,只允许在一段插入数据,另一端删除数据。插入操作的一端称为队尾,删除操作的一端称为队头。 如图: 二、队列相关操作 1.队列结构体的声明 类似于栈,他肯定也得借助于数组或…...
NumPy 2.x 完全指南【十七】转置操作
文章目录 1. 什么是转置2. 转置操作2.1 transpose2.2 ndarray.T2.3 moveaxis2.4 rollaxis2.5 permute_dims2.6 swapaxes2.7 matrix_transpose 1. 什么是转置 在线性代数中,矩阵转置是指将矩阵的行和列进行互换,即原矩阵的第 i i i 行、第 j j j 列元素…...

【数据架构04】数据湖架构篇
✅ 10张高质量数据治理架构图 无论你是数据架构师、治理专家,还是数字化转型负责人,这份资料库都能为你提供体系化参考,高效解决“架构设计难、流程不清、平台搭建慢”的痛点! 🌟限时推荐,速速收藏&#…...
使用OpenSSL生成根证书并自签署证书
生成根CA的私钥和证书 # 生成根 CA 的私钥 [rootdeveloper ssl]# openssl genrsa -out rootCA.key 2048 Generating RSA private key, 2048 bit long modulus (2 primes) ... ............................................................ e is 65537 (0x010001)# 使用私钥生…...

uniapp-商城-62-后台 商品列表(分类展示商品的布局)
每一个商品都有类别,比如水果,蔬菜,肉,粮油等等,另外每一个商品都有自己的属性,这些都在前面的章节进行了大量篇幅的介绍。这里我们终于完成了商品类的添加,商品的添加,现在到了该进…...

初识C++:模版
本篇博客主要讲解C模版的相关内容。 目录 1.泛型编程 2.函数模板 2.1 函数模版概念 2.2 函数模版格式 2.3 函数模版的原理 2.4 函数模版的实例化 1.隐式实例化:让编译器根据实参推演模板参数的实际类型 2. 显式实例化:在函数名后的<>中指定模…...
【Elasticsearch】给所索引创建多个别名
Elasticsearch 是可以给索引创建多个别名的。 为什么可以创建多个别名 1. 灵活性 - 别名可以为索引提供一个更易于理解的名称,方便用户根据不同的业务场景或用途来引用同一个索引。例如,一个索引可能同时服务于多个不同的应用程序或服务,通…...