DeepSeek+dify 搭建本地知识库:零基础保姆级教学

一、知识科普解析

1、大语言模型(LLM)概述

大语言模型(LLM)是依托深度学习技术,基于海量历史文本数据训练形成的概率生成系统。

能力边界说明
  • 知识时效局限性:模型知识截止于训练数据的时间节点
  • 推理能力局限:本质为概率预测而非逻辑运算,复杂数学推理易出错(DeepSeek架构存在差异)
  • 专业领域短板:缺乏垂直领域的专业知识储备
  • 幻觉现象风险:可能生成看似合理但实际错误的内容
更新机制分类
  • 全量重训练:需重新处理TB级数据,消耗数千GPU计算时长(此方案直接排除)
  • 微调(Fine-tuning):通过领域数据调整模型参数,仍需较高成本(该方案存在一定成本)
  • 上下文学习:借助提示词临时注入知识,但受限于上下文长度(通过外挂知识库实现此机制)

总结:当前可行的更新方式为通过提示词上下文临时注入知识。

2、知识库的维度对比
维度广义知识库模型知识库
数据来源外部结构化/非结构化数据(文档、数据库等)预训练模型内嵌的知识(如GPT训练数据)
更新方式手动或API动态更新(如企业知识库)依赖模型重训练或微调
知识范围垂直领域或特定业务场景(如产品手册)通用知识(训练数据截止时间前的信息)

说明:此前提及的知识库均指广义知识库。大模型虽可通过提示词临时注入知识,但受限于上下文长度,需通过技术筛选最适配内容后再输入模型。

3、嵌入模型原理阐释

嵌入模型是将高维离散数据(文本、图像等)转换为低维连续向量的技术,便于机器理解和处理复杂数据。

类比示例:以“猜词游戏”为例,若要描述“咖啡”,可通过“热”“饮用”“早餐”等相关词汇间接表达。嵌入模型如同将词语转化为这类关联词汇的专用工具,其中“热”“饮用”“早餐”可理解为向量。在向量空间中,语义相近的词会自动聚集,由此衍生出“相似度”概念——相似度越高,匹配度越高。

当前应用:使用的bge-m3模型仅支持1024维向量化,具体参数如下:

ollama show bge-m3:latest
    architecture        bert
    parameters          566.70M
    context length      8192
    embedding length    1024
    quantization        F16
4、为什么没有匹配到知识

图片知识预处理

1, 上传文档

2,将文档分割成适当大小的文本块

3,使用embedding模型将每个文本段转换为向量

4,将向量和原文存储到向量数据库中

查询处理阶段

1,将用户输入问题转换为向量

2, 在向量库中检索相似内容

3, 将检索到的相关内容作为上下文提供给LLM

我们用的本地应用工具,一般都是粗粒度分段,向量化的质量没法保证

本地知识库安全吗?

根据上一步,我们可以知道本地知识库+本地大模型是安全的。

本地知识库+远端api的大模型,会把片段上传。

二、dify安装

前提条件

假设你已经安装了docker,docker安装不同的架构安装方式不一样,这里就不做教程了。 已经登录了docker

安装完docker以后,记得调整docker镜像的存储地址。

  • 已经安装了docker,并且登录了
  • 已经安装了git win上docker安装地址: https://docs.docker.com/desktop/setup/install/windows-install/#wsl-2-backend

安装

下载dify

通过官网下载,如果你没有魔法,可以从网盘里那对应的

# 进入要下载的目录,打卡命令提示行工具,cmd或者powershell
cd E:\ai\code
#下载
git clone https://github.com/langgenius/dify.git
# 国内镜像站
https://gitee.com/dify_ai/dify
 

如果没有git环境,可以直接从网盘下载压缩包。

我们下载以后,只关注docker文件夹和README_CN.md即可。

清理(非必须)

由于我的dify安装的比较早,是0.7.x版本,为了给大家演示,就把原来的铲了。如果你以前安装过dify,使用以下命令清理历史镜像

cd docker 进入目录
# 清理历史镜像
docker-compose down -v --rmi all
创建配置

我们进入dify目录下的docker目录中,比如我的 E:\ai\code\dify\docker

# 以示例创建一个.env的文件,执行下面命令
cp .\.env.example .env

修改dify绑定ip

API 服务绑定地址,默认:0.0.0.0,即所有地址均可访问。 刚开始我以为是控制dify对外暴露的服务的,改成了127.0.0.1,然后出现以下的502,折腾了我快3个小时。图片

修改端口(非必须)

默认占用的是80和443端口,如果你本机已经部署了其他的应用,占了该端口,修改.env文件中的下面两个变量

EXPOSE_NGINX_PORT=8001
EXPOSE_NGINX_SSL_PORT=8443

上传文件大小

默认上传图片大小是10MB,上传视频大小是100MB,文件默认是50MB,如果有需要修改下面对应的参数

# Upload image file size limit, default 10M.
UPLOAD_IMAGE_FILE_SIZE_LIMIT=10
# Upload video file size limit, default 100M.
UPLOAD_VIDEO_FILE_SIZE_LIMIT=100
# Upload audio file size limit, default 50M.
UPLOAD_AUDIO_FILE_SIZE_LIMIT=50
启动dify
docker compose up -d

启动以后在docker Desktop中查看,图片图片

设置管理员与登录

http://127.0.0.1:8001/install

填写相关信息,设置管理员账户。

图片设置成功以后,登录

图片

设置模型

图片1,点击右上角的账户 2,点击设置

本地模型设置

图片1, 点击模型供应商 2,下拉找到ollama 3,点击添加模型

添加对话模型图片按照步骤添加模型即可,注意模型上下文长度,可以通过ollama show 模型名称查看,如果你经常用大文本,就直接调到最大值。需要注意的是dify,上传文件是有大小限制的。

关于ip图片我使用的是本地docker虚拟网络,如果你ollama设置了OLLAMA_HOST为0.0.0.0 需要注意网络安全,防止外网有人能访问。我是将我的ollama绑定到了局域网ip上了。

添加向量模型

图片1,注意选择text embedding

系统模型设置

图片1,点击系统模型设置

2,选择已经配置的模型,当然建立知识库的时候,也可以切换

3,选择向量模型

4,保存

在线api模型配置

腾讯模型配置(免费到2月25日)

图片没找到对应的模型供应商,直接选择openai兼容的模型供应商。

图片按步骤填写即可。

2,模型名称选择deepseek-r1

3,api key 填写自己的即可

4,填写地址:https://api.lkeap.cloud.tencent.com/v1

硅基流动添加

图片找到模型供应商,点击设置,配置下密钥就可以了。图片

模型供应商

配置好以后,我们可以在模型列表那里看到所有的模型图片

最终系统模型设置

图片

知识库设置

创建知识库

图片

图片

图片

分段

dify的分段有个好处,设置分段以后,可以实时预览,可以根据预览效果,自己实时调整分段策略。dify建议首次创建知识库使用父子分段模式。

通用分段(原自动分段与清洗)

关键点:

1,默认\n作为分段标识

2,最大分段长度为4000tokens,默认为500tokens

3,分段重叠长度,默认为50tokens,用于分段时,段与段之间存在一定的重叠部分。建议设置为分段长度 Tokens 数的 10-25%;

4,文本预处理规则:用于移除冗余符号、URL等噪声

5,这里还有一个点,向量模型会自动按段落或语义进行切分,也就是大家分段以后内容缺失的根因。

适用于内容简单、结构清晰的文档(如FAQ列表)

图片

图片

父子分段

父子模式采用双层分段结构来平衡检索的精确度和上下文信息,让精准匹配与全面的上下文信息二者兼得。

关键点

1,父区块(Parent-chunk)保持较大的文本单位(如段落),上下文内容丰富且连贯。默认以\n\n为分段标识,如果知识不长,可以以整个作为父区块(超过1万个分段就直接被截断了)。

2,子区块(Child-chunk)以较小的文本单位(如句子),用于精确检索。默认以\n为分段标识。

3,也可以选择噪音清理

4,在搜索时通过子区块精确检索后,获取父区块来补充上下文信息,从而给LLM的上下文内容更丰富

以句子为最小单位,向量化以后向量匹配的准确度会极大的提升。

官方示意图如下:

图片

图片1,我们可以不断的调整参数,预览下,看下实际效果,

索引模式

索引模式有两种。分别是高质量索引和经济索引

高质量索引
  • 适用场景:需要高精度语义检索(如复杂问答、多语言支持)。

  • 实现方式:依赖嵌入模型生成向量索引,结合 ReRank 模型优化排序。

  • 适用文档: 格式化文档,如表格、技术手册

我们看下官方推荐的配置图片1,选择高质量

3,选择向量模型

4,选择系统推荐的混合检索

5,选择Rerank模型,并选择对应的rerank模型

经济索引
  • 适用场景:预算有限或内容简单(如关键词匹配为主的FAQ)。

    • 实现方式:使用离线向量引擎或关键词索引,无需消耗额外 Token,但语义理解能力较弱。
    • 优化建议:可通过调整 TopK(返回相似片段数量)和 Score 阈值(相似度过滤)平衡召回率与准确率。
    • **适用文档:非结构化文本,如会议记录

使用

创建应用

图片

点击工作室,我们可以看到有很多丰富的应用,包括聊天助手、agent、工作流等 我们选择最简单的应用,聊天助手,点击5,创建空白应用

图片

添加知识库

图片知识库可以一次选多个,我们只选择三国演义。

召回设置

图片

图片1,选择Rerank模型

2,选择相关的模型

3,设置召回数量(文本片段数量)

4,相似度匹配,设置0.7

调试与预览

图片1,输入聊天内容

2,点击发送

3,调试成功以后可以点击发布

图片发布以后有多种适用方式。

图片返回工作室以后,我们可以发现已经有对应的应用了。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

img

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

img

### 使用DeepSeek构建智能体 #### 1. 获取 API Key 和环境设置 为了使用 DeepSeek 构建智能体,首先需要获取 DeepSeek 的 API Key。由于 DeepSeek 接口形式与 OpenAI 兼容,这使得集成过程更加简便[^2]。 #### 2. 配置基础环境 在开始之前,确保已安装并配置好必要的开发工具和依赖项。对于 Dify 环境的具体设置,请参照相关指南完成初步配置工作[^1]。 #### 3. 创建智能体架构 创建智能体的关键在于定义其行为模式和服务逻辑。可以考虑采用 Camel 多智能体框架作为起点,该框架提供了良好的结构支持复杂交互场景下的应用开发。 #### 4. 整合 Coze 扣子功能模块 通过引入 Coze 扣子组件,能够增强智能体的功能特性,比如实现更高效的对话管理和任务处理能力。具体操作可参考详细的保姆教程文档[^3]。 #### 5. 定制领域专用响应机制 考虑到 DeepSeek 是一个通用型大语言模型,在面对特定行业或主题时可能无法提供最精确的回答。为此,建议针对目标应用场景定制专门的知识库和训练数据集,从而提高智能体的专业性和准确性[^4]。 ```python import os from deepseek import Agent, EnvironmentConfig def setup_environment(api_key): config = EnvironmentConfig() config.api_key = api_key agent = Agent(config=config) return agent api_key = "your_api_key_here" agent_instance = setup_environment(api_key) if __name__ == "__main__": print(f"Agent initialized with key {api_key[:6]}...") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值