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

【LLM】快速了解Dify 0.6.10的核心功能:知识库检索、Agent创建和工作流编排(二)

【LLM】快速了解Dify 0.6.10的核心功能:知识库检索、Agent创建和工作流编排(二)

文章目录

  • 【LLM】快速了解Dify 0.6.10的核心功能:知识库检索、Agent创建和工作流编排(二)
    • 一、创建一个简单的聊天助手:配置模型提供商并接入聊天助手
        • 1、配置 TongYi 大模型
        • 2、聊天助手接入TongYi 大模型
    • 二、基于知识库搭建聊天助手:搭建知识库,并在聊天助手中进行知识检索
        • 1、知识库创建的前期准备
          • 1)配置Cohere的ReRank模型
          • 2)启动定时任务用于处理要分段的文档
        • 2、创建知识库:文档分段清洗
        • 3、召回测试
        • 4、在聊天助手中进行知识检索,并绑定知识点引用和归属
    • 三、基于工具将聊天助手升级为Agent:外挂arxiv工具查询论文
    • 四、工作流编排:编排流程节点,可视化创建聊天助手

在上一篇文档中【LLM】Dify 0.6.10 在Windows系统上本地化部署(一) 已经介绍了如何在Windows上完成Dify的本地部署,接下来启动本地项目,快速了解Dify的核心功能,包括知识库检索、Agent创建和工作流编排。

Dify 0.6.10的具体功能介绍还是详见欢迎使用 Dify | 中文 | Dify,这里旨在本地部署的项目中尝试验证这些核心功能,并跑通整个流程

一、创建一个简单的聊天助手:配置模型提供商并接入聊天助手

参考 模型 | 中文 | Dify

1、配置 TongYi 大模型

点击头像的"设置",配置模型提供商

这里配置通义千问的AppKeyApiKey申请参考 阿里通义千问API(Java)使用教程,基于Springboot后端,配置好后:

Note

在配置模型提供商时,调用的后端请求是

POST /console/api/workspaces/current/model-providers/tongyi HTTP/1.1

这里会用到redis缓存,需要修改下.env的配置(如果需要的话)

# celery configuration
; CELERY_BROKER_URL=redis://:difyai123456@localhost:6379/1
CELERY_BROKER_URL=redis://:difyai123456@192.168.198.128:6379/1
2、聊天助手接入TongYi 大模型

新建一个智能聊天助手,线上的通义千问大模型就成功接入进来了

二、基于知识库搭建聊天助手:搭建知识库,并在聊天助手中进行知识检索

参考 知识库 | 中文 | Dify

1、知识库创建的前期准备
1)配置Cohere的ReRank模型

Cohere官网如下https://cohere.com/,可以在这里获取试用的ApiKey,并在Dify上配置模型提供商,配置效果如下:

2)启动定时任务用于处理要分段的文档

参考 Local Source Code Start | English | Dify

如果不执行如下命令,去启动定时任务处理文档分段清洗的任务,这个任务会一直显示在 “排队” 中的。在Windows中命令如下:

celery -A app.celery worker -P solo --without-gossip --without-mingle -Q dataset,generation,mail --loglevel INFO

启动时不需要关闭Flask后端服务,启动效果如下:

2、创建知识库:文档分段清洗

参考创建知识 上传文档 | 中文 | Dify

在选择数据源中导入本地文档后(支持的格式挺多的:TXT、 MARKDOWN、 PDF、 HTML、 XLSX、 XLS、 DOCX、 CSV),可以对文本进行分段清洗、右边为分段清洗后的预览结果

这里可以选择自动分段清洗 或者 自定义规则清洗

接着可以选择不同的索引方式 - 高质量 & 经济

如果选择高质量可以用到embedding采用Q & A的模式进行分段,也可以使用ReRank模型(比如上面配置的Cohere ReRank模型)通过embedding进行文本检索,而经济型就没有这个功能。

处理完成后(需要开启定时任务,不然创建知识库完成后,知识库分段清洗任务一直处于排队状态),可以在知识库中查看相应文档的分段内容,可以选择禁用/启用某个片段,这样可以减少Cohere Rerank的检索范围

3、召回测试

关于召回测试/引用归属 的功能配置 参考 召回测试/引用归属 | 中文 | Dify

这里要选择向量检索(不知道为什么全文检索不出内容)

召回测试效果如下:

Note:这里的文档分段只开启了三个,其余都禁用(如果全启用,Cohere free ReRank模型会报错)

4、在聊天助手中进行知识检索,并绑定知识点引用和归属

召回测试可以检索出相应的文本片段后,可以在智能体的提示词编排设置中,外挂相应的知识库,进行知识检索

这里要选择向量检索(不太清楚为什么上面的全文检索不能从知识库中检索到片段内容)

还可以在聊天增强功能中,新增关于“知识库的引用和归属”

三、基于工具将聊天助手升级为Agent:外挂arxiv工具查询论文

Dify提供了很多Agent工具(强)

这里以arxiv论文查询工具为例(提示词可以让文心一言/通义千问生成,然后粘贴过来)

其实Agent实现的功能可以将其流程化,文本输出流程如下

  • 1)预处理为arxiv的查询参数;

  • 2)通过arxiv search返回响应结果;

  • 3)将arxiv工具的响应结果交给GPT整理输出;

其实并不是所有的文本输入都会触发“arxiv工具”的查询,需要关键词具有与“查询“相关语义才行

四、工作流编排:编排流程节点,可视化创建聊天助手

节点说明:节点说明 | 中文 | Dify

预览与调试:预览与调试 | 中文 | Dify

这里参考上面所搭建的聊天机器人,通过如下应用场景完成工作流的编排,搭建一个小的Agent应用:

假设用户输入一个文本

  • 流程1:如果文本中包括webhook关键字,则先从知识库中进行检索,接着拼接用户输入的文本,交给LLM去整理输出;
  • 流程2:如果文本中包括query或者查询关键字,则先通过参数提取器提取要查询的关键字,接着通过arxiv论文查询工具查询指定关键字的论文,接着讲用户的输入转写成arxiv的输出,并交给LLM去解析arxiv的响应结果;
  • 流程3:如果文本中不包括以上两种关键字,则直接调用LLM输出结果

在这里插入图片描述

用户问题1:第一个helloWorld起源于哪一年?(走流程3)

在这里插入图片描述

用户问题2:webhook是什么?webhook的作用是什么?(走流程1

在这里插入图片描述

用户问题3:查询近几年LLMOps相关的论文?(走流程2

在这里插入图片描述

在“探索“区测试自己通过工作流编排后的应用:

在这里插入图片描述

Note

工作流编排技巧小结:主要是关注用户输入的文本数据走那个流程,在流程中的每个节点上是怎么被处理的,以及通过写prompt对智能体的行为配置进行管理

  • 1)在开始节点定义变量用于接收用户输入的文本;

  • 2)不同节点间通过变量来传递下游节点可以接收所有上游节点的所有变量;

  • 3)如果流程在Run时报错,可以单节点Debug查看文本转换是否符合预期要求,并修改LLM的提示词,或者增加其他功能节点。

相关文章:

【LLM】快速了解Dify 0.6.10的核心功能:知识库检索、Agent创建和工作流编排(二)

【LLM】快速了解Dify 0.6.10的核心功能:知识库检索、Agent创建和工作流编排(二) 文章目录 【LLM】快速了解Dify 0.6.10的核心功能:知识库检索、Agent创建和工作流编排(二)一、创建一个简单的聊天助手&#…...

【介绍下Pandas,什么是Pandas?】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...

linux系统安装anaconda,并通过java程序调用python程序

虚拟环境准备 首先准备一块空的分区,安装anaconda至少要20g以上才能执行简单程序,这里准备20G的磁盘空间 创建分区,执行以下步骤,之后执行reboot重启 fdisk /dev/sda p n 回车 回车 w查看当前系统创建的分区,我这里是名为sda3的…...

Stable diffusion的SDXL模型,针不错!(含实操)

与之前的SD1.5大模型不同,这次的SDXL在架构上采用了“两步走”的生图方式: 以往SD1.5大模型,生成步骤为 Prompt → Base → Image,比较简单直接;而这次的SDXL大模型则是在中间加了一步 Refiner。Refiner的作用是什么呢…...

wordpress轻量免费主题

WordPress建站公司 适合提供WordPress建站服务的公司或个体(个人)工作室使用的WordPress建站公司主题模板。 https://www.jianzhanpress.com/?p545 首屏大图红色简洁wordpress主题 首屏大图红色简洁wordpress主题,非常地高端大气上档次,可用于多个行…...

Go AfterFunc 不触发

前言 函数原型为: func AfterFunc(d Duration, f func()) *TimerGo 的 time.AfterFunc 的作用是等待指定的时间间隔,然后在它自己的 goroutine 中调用 f。 现在有一个问题,我明明调用了 AfterFunc,但是它还没调用我指定的函数&…...

小程序视图渲染数据和部分事件的绑定

今天依旧使用这个目录进行教学 数据的渲染 在 index.js的 page中定义一个data对象结构是这样的 Page({data:{name:张三} }) 在index.wxml 中 利用模板语法进行渲染 <view >{{name}}</view> 注意这个模板里边不能使用js的方法 要循环渲染数组&#xff0c;如 在…...

“探索AIGC市场:腾讯元宝APP加入竞争,大模型产品的未来走向与个人选择“

文章目录 每日一句正能量前言使用体验分享独特优势和倾向选择字节豆包百度文心一言阿里通义千问腾讯元宝个人倾向选择结论 未来发展方向技术创新可持续可拓展性用户体验应用场景政府赋能数据安全与隐私保护伦理与社会责任国际合作与竞争结论 后记 每日一句正能量 不管现在有多么…...

node设置镜像源详细教程

在Node.js环境中&#xff0c;你可以通过设置npm或yarn的镜像源来加速依赖包的下载。以下是如何设置npm和yarn的镜像源的详细步骤&#xff1a; 使用npm设置镜像源 临时设置镜像源&#xff1a; 你可以在安装包时临时指定镜像源&#xff0c;例如&#xff1a; npm install package…...

四季变换,制氮机使用注意事项

随着四季的轮回变换&#xff0c;大自然展现着不同的风貌。对于制氮机而言&#xff0c;季节的变换同样会带来不同的使用挑战和注意事项。本文将为您揭示四季变换对制氮机使用的影响&#xff0c;帮助您更好地掌握制氮机的季节使用须知。 春季 温湿度变化&#xff1a;春季温湿度逐…...

如何实现办公终端安全

在网络安全日益严峻的当下&#xff0c;可信白名单作为一种高效的终端安全防护手段&#xff0c;正在逐渐受到业界的广泛关注和应用。本文将简要探讨可信白名单如何实现终端安全的原理、方法及其在实际应用中的优势与挑战。 首先&#xff0c;我们需要了解可信白名单的基本原理。可…...

【云岚到家】-day01-项目熟悉-查询区域服务开发

文章目录 1 云岚家政项目概述1.1 简介1.2 项目业务流程1.3 项目业务模块1.4 项目架构及技术栈1.5 学习后掌握能力 2 熟悉项目2.1 熟悉需求2.2 熟悉设计2.2.1 表结构2.2.2 熟悉工程结构2.2.3 jzo2o-foundations2.2.3.1 工程结构2.2.3.2 接口测试 3 开发区域服务模块3.1 流程分析…...

Docker面试整理-如何进行Docker镜像的构建和发布?

构建和发布 Docker 镜像是 Docker 使用中的一个常见任务,通常涉及编写 Dockerfile、构建镜像以及将其推送到镜像仓库的过程。以下是构建和发布 Docker 镜像的详细步骤: 1. 编写 Dockerfile 首先,你需要创建一个 Dockerfile,这是一个包含了一系列指令的文本文件,用来告诉 D…...

macOS Sequoia 将 Mac 生产力与智能化提升至全新高度 (macOS 15 ISO、IPSW、PKG 下载)

macOS Sequoia 将 Mac 生产力与智能化提升至全新高度 (macOS 15 ISO、IPSW、PKG 下载) iPhone 镜像、Safari 浏览器重大更新、备受瞩目的游戏和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接&#xff1a;https://sysin.org/blog/macOS-Sequoia/&a…...

用户管理与服务器远程管理

用户管理 服务器系统版本介绍 windows服务器系统&#xff1a;win2000 win2003 win2008 win2012 linux服务器系统&#xff1a;Redhat Centos 用户管理 用户概述 &#xff08;1&#xff09;每一个用户登录系统后&#xff0c;拥有不同的操作权限。 &#xff08;2&#xff09;…...

Pytorch 实现简单的 线性回归 算法

Pytorch实现简单的线性回归算法 简单 tensor的运算 Pytorch涉及的基本数据类型是tensor&#xff08;张量&#xff09;和Autograd&#xff08;自动微分变量&#xff09; import torch x torch.rand(5, 3) #产生一个5*3的tensor&#xff0c;在 [0,1) 之间随机取值 y torch.o…...

Django中配置日志

在Django中配置日志的方法非常简单&#xff0c;只需要在 setting 文件中添加配置项&#xff0c;系统会自动生成相应的日志文件&#xff0c;也可以配置调试时显示内容&#xff0c;报错发送邮件等操作。 在setting.py中添加以下配置。 # 日志配置 LOGS_DIRS os.path.join(BASE…...

海外盲盒小程序背后的技术支撑与实现

海外盲盒小程序之所以能够迅速崛起并受到全球消费者的喜爱&#xff0c;除了其独特的商业模式和营销策略外&#xff0c;更重要的是其背后的技术支撑和实现。本文将深入探讨海外盲盒小程序背后的技术支撑及其实现方式。 一、多语言与本地化技术 为了满足全球不同地区消费者的需…...

vue问题记录

vue3 路由跳转携带参数 路由跳转携带参数 query方法 //跳转传参 this.$router.push({path:/home,query: {id:1}}) //接受参数 this.$route.query.id问题&#xff1a;刷新页面&#xff0c;参数会丢失—未解决 将参数存在本地存储中&#xff0c;但是组件销毁时&#xff0c;清…...

Flutter - Material3适配

demo 地址: https://github.com/iotjin/jh_flutter_demo 代码不定时更新&#xff0c;请前往github查看最新代码 Flutter - Material3适配 对比图具体实现一些组件的变化 代码实现Material2的ThemeDataMaterial3的ThemeData Material3适配官方文档 flutter SDK升级到3.16.0之后 …...

毕业设计实战:基于SpringBoot+Vue+MySQL的校园一卡通管理系统设计与实现指南

毕业设计实战&#xff1a;基于SpringBootVueMySQL的校园一卡通管理系统设计与实现指南 在开发“基于SpringBootVueMySQL的校园一卡通管理系统”毕业设计时&#xff0c;曾因器材借用表未通过学生ID与器材ID双外键关联踩过关键坑——初期仅单独设计借用表的编号字段&#xff0c;…...

32位 Windows App Service 最大能使用多少内存?

不同托管模式下可用内存如何计算&#xff1f;本文将针对这些问题进行详细解答。问题解答一、32 位程序最大能使用多少内存&#xff1f;理论上限约为 4GB32 位程序的内存地址由 32 个二进制位组成&#xff0c;因此理论上可以有 2 4,294,967,296 种不同的内存地址。每个内存地址…...

Confluence新手必看:5个高效编辑技巧让你秒变Wiki达人(含插件推荐)

Confluence新手必看&#xff1a;5个高效编辑技巧让你秒变Wiki达人&#xff08;含插件推荐&#xff09; 刚接触Confluence时&#xff0c;面对这个功能强大的企业Wiki平台&#xff0c;新手往往会感到无从下手。本文将分享5个经过实战验证的高效编辑技巧&#xff0c;帮助你快速掌…...

人机协作新范式:盘点2026年全网爆红的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具横空出世&#xff0c;覆盖选题构思、文献综述、数据整理、格式排版等全流程&#xff0c;真正帮你高效搞定论文&#xff0c;告别熬夜与焦虑。 一、全流程王者&#xff1a;一站式搞定论文…...

终极指南:如何在Rust中构建高性能物理仿真世界

终极指南&#xff1a;如何在Rust中构建高性能物理仿真世界 【免费下载链接】rapier 2D and 3D physics engines focused on performance. 项目地址: https://gitcode.com/gh_mirrors/ra/rapier Rapier物理引擎是专为Rust语言设计的高性能2D和3D物理仿真解决方案&#xf…...

材料安全评估新纪元:DeepChem驱动的AI预测模型与生物兼容性分析

材料安全评估新纪元&#xff1a;DeepChem驱动的AI预测模型与生物兼容性分析 【免费下载链接】deepchem Democratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Materials Science and Biology 项目地址: https://gitcode.com/GitHub_Trending/de/deepchem …...

AI辅助数据库设计:让快马平台智能生成优化过的社区论坛系统数据架构

今天想和大家分享一个用AI辅助设计数据库的实践案例——社区论坛系统的数据架构设计。整个过程在InsCode(快马)平台上完成&#xff0c;体验非常流畅。 业务场景分析 社区论坛的核心是内容交互&#xff0c;需要支持用户发帖、互动和管理。通过AI分析&#xff0c;我们确定了几个关…...

终极指南:如何用asitop深度监控Apple Silicon性能瓶颈

终极指南&#xff1a;如何用asitop深度监控Apple Silicon性能瓶颈 【免费下载链接】asitop Perf monitoring CLI tool for Apple Silicon 项目地址: https://gitcode.com/gh_mirrors/as/asitop 在Apple Silicon芯片&#xff08;M1/M2/M3系列&#xff09;彻底改变计算架构…...

Llama-3.2V-11B-cot 模型 API 安全设计:Token 管理与访问控制实践

Llama-3.2V-11B-cot 模型 API 安全设计&#xff1a;Token 管理与访问控制实践 最近在帮一个朋友的公司部署 Llama-3.2V-11B-cot 模型&#xff0c;他们想把这个多模态模型开放给内部几个业务团队用。聊着聊着&#xff0c;朋友突然问&#xff1a;“这 API 直接开出去&#xff0c…...

上位机与下位机通信协议详解:RS232 vs RS485的优缺点及实际应用案例

上位机与下位机通信协议详解&#xff1a;RS232 vs RS485的优缺点及实际应用案例 在工业自动化系统中&#xff0c;上位机与下位机的高效通信是确保整个系统稳定运行的关键。作为开发者&#xff0c;我们经常需要在RS232和RS485这两种经典串行通信协议之间做出选择。这两种协议各有…...