【小白教程】DeepSeek+dify 搭建本地知识库,高级应用Agent+工作流,全程干货,建议收藏!!

前言

dify的强大在于其灵活性,主要体现在智能体和工作流上。它可以让一个没有编程能力的人通过简单学习,快速搭建Agent和自动化流程。就像拼积木一样。

我们可以通过智能体或工作流,自定义工具完成很多我们好玩的功能。本文前面主要是介绍一些组件,有编程能力的同学建议直接跳过。

报文篇幅较长,简单说下内容:

1,dify面板功能的介绍,(重点知识库里的内容)

2,dify工作流介绍,包括主要节点

3,Agent的应用

4,工作流应用

dify 主要功能

dify的主要应用功能已经在导航上显示了。

探索

在这个模块里,dify给我们内置了一些应用模板,以降低我们的学习使用成本。按照分类已经帮我们罗列好了,我们可以点击对应的分类查询,看中哪个鼠标放上去,点击添加到工作区即可。

工作室

  • 1工作室主要是当前工作空间下所有应用。

  • 2包含了聊天助手、Agent、工作流等。

  • 通过3我们可以创建应用

  • 通过4我们可以以探索里的模板创建应用

  • 通过5我们可以导入

在 Dify 中,一个“应用”是指基于 GPT 等大语言模型构建的实际场景应用。通过创建应用,你可以将智能 AI 技术应用于特定的需求。

知识库

我们可以在知识库中上传企业或个人的文件资料,上传后通过设置分段格式向量化文档,

  • 2的位置我们可以创建知识库,可以是选择文档,也可以选择同步Notion或同步web站点

  • 通过3我们可以让dify使用外部知识库,不过用外部知识库之前,我们得先通过4配置,这个需要一定研发能力。

外部知识库的功能是我比较看中的,一般有点规模的企业,我建议自己建向量库,然后都过暴露api给应用平台,这样哪个平台好用我们就换哪个。

个人上传文档的知识库重点在于分段。

excel 分段

excel 如果按照单元格分段,需要把子分段设置为;

pdf和word分段

中文字分段以作为分段标识符会比较好,这个需要大家根据自己的文档结构不断地调整。使用默认\n句子都被截断了。

召回测试

  • 当文档状态1变为可用,我们可以进行召回测试,验证文档的下效果。

  • 1 我们输入测试问题

  • 2设置检索方式

  • 3 我们可以看到匹配到的内容以及socre,点击查看详情4

检索设置,我们可以设置向量检索全文检索混合检索

我们可以通过不断地测试看下哪种检索方式在这个知识库中效果比较好,然后选择设置对应的方式。

其中需要住下TopK和Score:

  • TopK 代表按相似分数倒排时召回分段的最大个数。TopK 值调小,将会召回更少分段,可能导致召回的相关文本不全;TopK 值调大,将召回更多分段,可能导致召回语义相关性较低的分段使得 LLM 回复质量降低。

  • 召回阈值(Score)代表允许召回分段的最低相似分数。 召回分数调小,将会召回更多分段,可能导致召回相关度较低的分段;召回分数阈值调大,将会召回更少分段,过大时将会导致丢失相关分段。

工具

dify的工具是用来扩展LLM能力的,是对外部功能的封装,比如搜索、绘图、飞书、月缺等等。就是没有看到对mysql的调用工具。

工具有dify内置的应用,也有三方工具,也可以自定义工具。

工作流也可以发布为一个工具。

dify工作流(基础介绍)

工作流通过将复杂的任务分解成较小的步骤(节点)降低系统复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性。

一个完整的工作流,必须具备开始结束两个节点。

Dify 工作流分为两种类型:

  • Chatflow:面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序。

  • Workflow:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序。

变量

在dify中变量一共有三种、分别是系统变量、环境变量和用户变量。

系统变量

系统变量指的是在 Chatflow / Workflow 应用内预设的系统级参数,可以被其它节点全局读取。系统级变量均以 sys 开头。

主要有:

  • sys.user_id:每个用户在使用工作流应用时,系统会自动向用户分配唯一标识符,用以区分不同的对话用户

  • sys.app_id:系统会向每个 Workflow 应用分配一个唯一的标识符

  • sys.workflow_id用于记录当前 Workflow 应用内所包含的所有节点信息

  • sys.workflow_run_id用于记录 Workflow 应用中的运行情况

chatflow会额外多一些,不做具体解释。

环境变量

环境变量用于保护工作流内所涉及的敏感信息,例如运行工作流时所涉及的 API 密钥、数据库密码等。它们被存储在工作流程中,而不是代码中,以便在不同环境中共享。在流程编排的时候,通过1的位置添加。

用户变量

当我们需要用户传入一些特定的信息的时候,可以通过添加变量来实现,在开始节点对应1的位置添加。

节点

节点是工作流中的关键构成,通过连接不同功能的节点,执行工作流的一系列操作。在dify的工作流中一共有下面几种类型的节点。

我们可以通过画布左下角的1的位置添加节点和工具

开始节点

1,所有的节点都可以通过这个位置修改名称,建议改成对应的功能名称

2,通过+号新增变量

3,我们可以选择变量的类型,设置变量名称、长度、是否必填等。

LLM 节点(重点)

具备调用大语言模型的能力。

这里面有下面这些操作模型选择: 通过1可以选择使用哪个模型(模型供应商配置,参考前一篇)

模型参数: 通过点击5,弹出区域6,我们可以配置模型的温度、TopP,最大标记、回复格式 等。

上下文: 在2的位置,我们想向LLM提供的背景信息,内置固定的信息。

提示词:在 3的位置,默认只有一个SYSTEM提示词,我们可以通过4添加消息,来添加USR提示词和ASSISTANT提示词。提示词中我们可以通过{获取变量,通过/获取上下文,

系统提示词我们可以通过7对应的位置自动生成填充。

我们可以设置失败重试策略。

知识检索(重点)

使用已经创建的知识库。

1,通过1的位置,设置查询知识库的变量

2,我们2的位置添加知识库

3,通过3的位置设置召回策略

下图为召回策略可设置的参数。

问题分类

问题分类主要是通过大模型,将用户的问题,进行意图分类,普通的条件分类为a=x 走什么,a=y走什么,都是具体的判断,逻辑。

比如我们通过这个是感知用户售后问题,还是产品使用咨询。然后匹配到相关的知识库。

  • 通过1 我们可以选择模型

  • 通过2 我们选择用户输入的内容

  • 通过3我们设置分类类型

  • 通过4 我们可以添加分类

  • 通过5 我们可以填写分类提示词

通过分类,我们可以指向不同的知识库。

条件分支(重点)

主要用于流程节点中的逻辑判断。功能也很丰富,自主性特别高。

  • 通过1 我们可以选择条件的变量

  • 通过2我们可以选择逻辑条件,中文意思很直白了

  • 通过3我们设置条件值

  • 通过4可以添加条件

  • 多个条件的时候,可以通过5 设置条件的逻辑关系

  • 通过6 可以添加其他逻辑

迭代

一般用于多任务的处理(每个任务的处理流程必须一样)。

  • 1迭代内部可以认为是一个子流程

  • 2 迭代的输入是一个多个任务(数组形式)

  • 3迭代的输出也是一个数组(每个输出包含是哪个输入,可以用于区分)

  • 4 可以开启并行,同时执行几个

  • 5 根据自己的需要,错误了是终结,还是继续

代码执行

代码执行,给我们带来了很大的灵活性,官方给的场景是结构化数据处理,数学计算、拼接数据。

代码的执行是有风险的,为了确保安全,dify使用sandbox执行代码,不能使用消耗大量系统资源或引发安全问题的操作。比如访问文件系统、进行网络请求、执行操作系统级别的命令。

也就意味着不能直接写代码连接数据库了。

  • 通过123可以添加输入变量(每个节点内的)

  • 通过4我们可以写PYTHON3JAVASCRIPT代码来执行相应的逻辑

  • 通过5 我们可以设置返回的数据类型

  • 通过6我们可以设置重试机制,也就是失败以后,可以重试几次,以及每次重试之间的时间间隔

模板转换

这个是使用摸版引擎记性数据处理,代码执行也能实现。

变量聚合

将多路分支的变量聚合为一个变量,以实现下游节点统一配置。一般用于多个分支处理。

比如我有两个知识库A和B,我需要同时查A和B,查到以后,我需要将AB的数据整合,然后给大模型,这个就是这个作用。

文档提取器(重要)

用来提取用户上传上来的文档的内容,然后将提取到的文本内容给LLM处理。

参数提取

从指定的地方获取数据后,将数据结构化。

HTTP请求(重要)

这个让dify具备一切的可能性。

举两个例子:

  • dify没有权限管理,我们可以在我们的业务系统里给每个人生成一个密钥,通过http调用来鉴权。

  • dify不能直接连接数据库,我们可以通过暴露接口实现

Agent应用

我们在工作室中,通过,从应用模板创建。

  • 通过1选择Agent

  • 通过2选择旅游

改下应用名称即可。

  • 我通过kimi把原提示词翻译成了中文,注意变量名,不能翻译

  • google搜索需要授权,我没有,换个其他的。

  • 通过1删除google搜索插件(最后大家看提示词里,只用了wikipedia_search,但是在跑的时候可以动态切换,应该是有什么机制)

  • 通过2添加插件,

  • 选择3内置下面的4搜索里的5 ![](https://i-blog.csdnimg.cn/img_convert/199730c61fb15dfc50480fb90e62a887.png) 通过1、2、3`切换下模型

开场白是英文的,我们通过点击1管理设置下。

  • 通过1我们可以设置开场白,把英文转成中文

这里也有一些其他的功能,比如语音转文字、使用知识库或搜索的时候,显式源文档的引用

  • 在wikipedia中没有搜索到,它会自动切换到下一个。

工作流应用

使用场景梳理

使用工作流,首先我们要知道我们要用工作流解决什么问题。梳理出相应的流程,然后再去落地。

我当时想到两个场景:

  • 1,用户输入问题-> 大模型提炼关键词->然后查询数据库->将结果和问题给大模型->输出结果

  • 2,用户输入问题->同时搜索本地知识库+联网搜索-> 代码整合->大模型推理->输出结果

在实验的过程中,场景1因为沙箱的安全机制,被拦截了,找了下通过改源码,可以解决这个问题,不过沙箱以后就得自己本地打镜像了。

场景2在搜索的时候,没有google和bing的key,用的searchapi遇到dns解析的问题,这个大家在玩的时候只用知识库就行了。然后搜索到返回的几个url链接,还得解析,比较麻烦,最后只连知识库了。

创建工作流

创建一个空白应用,选择1工作流,填写应用名称2 和描述3,点击4创建

添加查询入参

因为我们要询问,所以先在开始节点添加一个变量query用来接收我们的询问

添加知识检索

增加知识检索节点,并把开始节点的query设置到查询变量1里,点击2的位置添加知识库,通过3可以设置召回策略。

LLM设置

我们点击上下文,然后可以看到知识检索1的的输出result 2

设置系统提示词

添加结束节点

最后流程如下:

试运行

1点击左上角的运行,输入页签2,填写问题3,点击开始运行4

运行结束以后,我们点击跟踪1,可以看到各个节点的执行明细2,可以看到大模型数据结果3

发布

我们可以直接运行,也可以发布为工具。

直接运行,直接把链接分享给同事,就能共用。(别忘了防火墙设置。)

最后

为什么要学AI大模型

当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!

DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。

在这里插入图片描述

与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。
在这里插入图片描述
最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频 全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。

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

AI大模型系统学习路线

在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。

img

但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。

AI大模型入门到实战的视频教程+项目包

看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径

在这里插入图片描述
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

海量AI大模型必读的经典书籍(PDF)

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。
在这里插入图片描述

600+AI大模型报告(实时更新)

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

AI大模型面试真题+答案解析

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下
在这里插入图片描述

在这里插入图片描述

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

<think>好的,用户想了解如何使用DeepSeekDify搭建知识库并在局域网中调用。我需要先回顾之前的引用内容,确保提供的信息准确。 首先,根据引用[^1],部署DeepSeek本地知识库需要从GitHub下载Dify的社区版,解压后进入docker文件夹,或者直接克隆仓库。可能需要安装Docker和docker-compose,这是常见的部署步骤。然后配置环境变量,比如设置数据库和API密钥。启动服务后,应该能通过本地IP访问Dify界面。 接下来是集成DeepSeek模型。用户可能需要在Dify中添加模型API密钥,并配置模型设置,确保DeepSeek的API端点正确。创建知识库时,上传文档并设置处理参数,比如分块大小和重叠长度。 关于局域网调用,引用[^2]提到使用systemctl编辑服务文件,设置重启策略,并用局域网IP。这可能涉及到修改Dify的配置,使其绑定到0.0.0.0,或者指定局域网IP,然后通过防火墙开放相应端口,比如80或8080。这样其他设备就能通过http://局域网IP:端口访问服务。 用户可能遇到的常见问题包括环境变量配置错误、端口冲突或权限问题。需要提醒检查Docker日志,确认服务正常运行,并测试局域网连通性。此外,安全方面建议使用内网HTTPS或设置访问控制,避免公开暴露服务。 最后,生成相关问题时要覆盖部署、集成、调用、优化和故障排除等方面,帮助用户全面了解整个流程。确保回答结构清晰,分步骤说明,并引用正确的来源。</think>### DeepSeek+Dify 知识库部署与局域网调用方法 #### 一、部署环境准备 1. **获取Dify社区版** 通过Git下载源码: ```bash git clone https://github.com/langgenius/dify.git cd dify/docker ``` 或下载ZIP包解压后进入`docker`目录[^1]。 2. **安装Docker环境** 需提前安装: - Docker 20.10+ - docker-compose 2.18+ #### 二、Dify服务配置 1. **修改配置文件** 编辑`.env`文件设置关键参数: ```env DB_PASSWORD=your_db_password DEEPSEEK_API_KEY=your_api_key ``` 2. **启动服务** 执行命令启动容器: ```bash docker-compose up -d ``` 启动后访问`http://localhost`进入Dify控制台。 #### 三、DeepSeek模型集成 1. **模型配置路径** 在Dify控制台依次操作: ``` 应用设置 > 模型供应商 > 添加DeepSeek API密钥 ``` 配置模型端点地址: $$ \text{API\_ENDPOINT} = \text{https://api.deepseek.com/v1} $$ 2. **知识库创建** - 上传PDF/TXT等格式文档 - 设置文本分块参数: $$ \text{chunk\_size}=512,\ \text{overlap}=64 $$ #### 四、局域网访问配置 1. **服务绑定设置** 修改`.env`文件: ```env BIND_ADDRESS=0.0.0.0 # 开放所有网络接口 PORT=8080 # 指定服务端口 ``` 2. **防火墙配置** 开放对应端口(以Ubuntu为例): ```bash sudo ufw allow 8080/tcp ``` 3. **局域网调用测试** 在其他设备访问: ```bash curl http://[服务器局域网IP]:8080/api/v1/completion -H "Authorization: Bearer [API_KEY]" ``` #### 五、常见问题排查 - **服务无法启动**:检查`docker logs dify-web`查看错误日志 - **局域网无法访问**:确认服务器防火墙设置,建议执行`telnet [IP] 8080`测试端口连通性 - **知识库索引失败**:调整分块策略,建议设置: $$ \text{max\_chunk\_size} \leq 1024 $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值