dify的简单介绍和使用
1.初次进入dify需自行配置模型
2.dify提供大量开箱即用的模板应用
3.如果在搜索页没有找到合适的模板,也可以自己创建应用
4.dify提供了5种类型的应用
,前三种开箱即用,dify预先配置了基础框架。
-
聊天助手,简单配置即可构建基于
LLM(Large Language Model)
的对话机器人 -
agent是能够分解任务,推理思考,调用工具的
对话式
智能体应用。 -
ChatFlow可以完全由我们自主定义的应用类型,我们可以将chatflow看成是agent的高阶diy版本,他基本可以满足我们任意业务
流程编排
-
工作流类似没有记忆的chatflow,负责处理
单轮复杂任务
5.创建工作流
-
添加输入节点
-
添加一个用于
处理输入内容
的大模型节点
,可以选择不同的模型并设置不同的参数
设置大模型的System prompt(系统提示)
,定义节点的意图,用来约束大模型的行为。
将用户输入的内容引入到User Prompt
- 添加
结束节点
结束节点:定义workflow流程的结束
和结果类型
,将大模型的输出内容返回给用户
- 运行调试
点击预览
查看效果,进行调试
点击发布
->发布更新
,保存当前工作流
点击发布
->运行
,运行当前工作流。另外,在探索
页面的工作区
中也可以找到当前工作流的运行界面。
6.其他面板功能介绍
① 记忆
:可以引入历史轮次
的相关对话内容,增强大模型思考的上下文
② 视觉
:开启对附件中图片
的理解
7.知识检索
节点和知识库
知识检索
节点
知识检索会根据输入从知识库匹配最相关的数个内容片段,为大模型引入这些片段,从而可以有效地抑制大模型的幻觉问题
,令回答更具参考性
。
在节点设置面板,可以添加知识库
知识库
的创建与调优
知识库提供了RAG Pipeline的整套工程能力,对文本进行指定的切分清洗和向量化处理。同时,我们可以定义Pipeline的具体规则,调整合适的相似度阈值(Score阈值)
和 最相似分片(Top K)
的数量。
-
RAG pipeline
是指检索增强生成(Retrieval-Augmented Generation)管道,它是一种结合了检索和生成模型能力的创新方法,用于在自然语言处理任务中实现更精准、更相关的上下文响应。 -
Top k
指的是一种基于排序
的筛选机制,用于从大量的候选结果中提取出最相关的前 k 个元素。 -
Score
阈值是一种基于置信度
(0=<置信度<=1)的过滤机制,用于决定一个样本是否满足特定条件。 -
Embedding模型
的核心作用Embedding模型通过将离散数据
(如文本、图像)映射到低维连续向量空间
,实现了 语义信息的数学表达。 -
Rerank模型
是一种用于对初步检索结果进行精细化排序的模型,其主要目的是提升检索结果与用户查询之间的相关性。
可选3种文件格式上传
在召回测试
中可以对召回效果验证
和调优
8.代码执行节点
暂时不写,有需要者自行查资料
9.BaaS解决方案
dify还提供了BaaS解决方案
,在dify中可以把应用直接以api
的形式集成到其他业务系统或者直接开放给用户使用,极大简化
了应用的研发流程。
- BaaS(Backend as a Service,后端即服务)是一种云服务模型,旨在为移动和Web应用提供后端支持。它允许开发人员将应用的后端功能外包给第三方服务提供商,通过API调用即可实现数据存储、用户管理、推送通知等后端功能的集成。
拓展:dify工作流中的变量
sys.query
-
含义:表示用户输入的查询内容,是用户在与Dify应用交互时提出的问题或指令。
-
应用场景:在知识检索节点中,
sys.query
通常被用作查询变量,检索知识库中与用户问题相关的文本内容。例如,当用户询问某个技术问题时,sys.query
会将该问题传递到知识检索节点,从知识库中找到最相关的文档或段落。
sys.dialogue_count
-
含义:表示用户在与Chatflow类型应用交互时的对话轮数。每轮对话后自动计数增加1。
-
应用场景:可以和条件判断节点搭配出丰富的分支逻辑。例如,到第X轮对话时,可以回顾历史对话并给出分析。
sys.conversation_id
-
含义:对话框交互会话的唯一标识符,用于将所有相关的消息分组到同一个对话中。
-
应用场景:确保LLM针对同一个主题和上下文持续对话,保持对话的连贯性和一致性。
sys.user_id
-
含义:分配给每个应用用户的唯一标识符,用于区分不同的对话用户。
-
应用场景:在多用户环境下,
sys.user_id
可以帮助应用识别不同的用户,为每个用户提供个性化的服务和对话体验。
sys.files
-
含义:表示用户上传至对话框的文件,支持多种文件类型。
-
应用场景:在需要处理文件内容的场景中,如文档分析、图片识别等,
sys.files
可以将用户上传的文件传递给相应的处理节点。
sys.app_id
-
含义:系统会向每个Workflow应用分配一个唯一的标识符,用于区分不同的应用。
-
应用场景:通过
sys.app_id
,开发者可以区分并定位不同的Workflow应用,方便管理和维护多个应用。
sys.workflow_id
-
含义:用于记录当前Workflow应用内所包含的所有节点信息。
-
应用场景:开发者可以通过
sys.workflow_id
追踪并记录Workflow内的包含节点信息,便于对工作流的结构和执行流程进行分析和优化。
sys.workflow_run_id
-
含义:用于记录Workflow应用中的运行情况。
-
应用场景:通过
sys.workflow_run_id
,开发者可以追踪应用的历次运行情况,便于监控和调试工作流的执行过程。