dify构建应用

构建应用

在 Dify 中,一个“应用”是指基于 GPT 等大语言模型构建的实际场景应用。通过创建应用,你可以将智能 AI 技术应用于特定的需求。它既包含了开发 AI 应用的工程范式,也包含了具体的交付物。

简而言之,一个应用为开发者交付了:

1)封装友好的 API,可由后端或前端应用直接调用,通过 Token 鉴权

2)开箱即用、美观且托管的 WebApp,你可以 WebApp 的模板进行二次开发

3)一套包含提示词工程、上下文管理、日志分析和标注的易用界面

你可以任选其中之一全部,来支撑你的 AI 应用开发。

应用类型

Dify 中提供了五种应用类型:

1)聊天助手:基于 LLM 构建对话式交互的助手

2)文本生成应用:面向文本生成类任务的助手,例如撰写故事、文本分类、翻译等

3)Agent:能够分解任务、推理思考、调用工具的对话式智能助手

4)对话流:适用于定义等复杂流程的多轮对话场景,具有记忆功能的应用编排方式

5)工作流:适用于自动化、批处理等单轮生成类任务的场景的应用编排方式

文本生成应用与聊天助手的区别见下表:

创建应用

你可以通过 3 种方式在 Dify 的工作室内创建应用:

1)基于应用模板创建(新手推荐)

2)创建一个空白应用

3)通过 DSL 文件(本地/在线)创建应用

从模板创建应用

初次使用 Dify 时,你可能对于应用创建比较陌生。为了帮助新手用户快速了解在 Dify 上能够构建哪些类型的应用,Dify 团队内的提示词工程师已经创建好了多场景、高质量的应用模板。

你可以从导航选择 「工作室 」,在应用列表内选择 「从模板创建」。

从模板创建应用

任意选择某个模板,并将其添加至工作区。

创建一个新应用

如果你需要在 Dify 上创建一个空白应用,你可以从导航选择 「工作室」 ,在应用列表内选择 「从空白创建 」。

Dify 上可以创建 5 种不同的应用类型,分别是聊天助手、文本生成应用、Agent、Workflow 和 Chatflow

创建应用时,你需要给应用起一个名字、选择合适的图标,或者上传喜爱的图片用作图标、使用一段清晰的文字描述此应用的用途,以便后续应用在团队内的使用。

通过 DSL 文件创建应用

Dify DSL 是由 Dify.AI 所定义的 AI 应用工程文件标准,文件格式为 YML。该标准涵盖应用在 Dify 内的基本描述、模型参数、编排配置等信息。

本地导入

如果你从社区或其它人那里获得了一个应用模板(DSL 文件),可以从工作室选择 「 导入DSL 文件 」。DSL 文件导入后将直接加载原应用的所有配置信息。

导入 DSL 文件创建应用

URL 导入

你也可以通过 URL 导入 DSL 文件,参考的链接格式:

https://example.com/your_dsl.yml

通过 URL 导入 DSL 文件

导入 DSL 文件时将校对文件版本号。如果 DSL 版本号差异较大,有可能会出现兼容性问题。详细说明请参考 应用管理:导入

聊天助手

对话型应用采用一问一答模式与用户持续对话。

适用场景

对话型应用可以用在客户服务、在线教育、医疗保健、金融服务等领域。这些应用可以帮助组织提高工作效率、减少人工成本和提供更好的用户体验。

如何编排

对话型应用的编排支持:对话前提示词,变量,上下文,开场白和下一步问题建议

下面边以做一个 面试官 的应用为例来介绍编排对话型应用。

创建应用

在首页点击 “创建应用” 按钮创建应用。填上应用名称,应用类型选择聊天助手

编排应用

创建应用后会自动跳转到应用概览页。点击左侧菜单 编排 来编排应用。

应用编排

填写提示词

提示词用于约束 AI 给出专业的回复,让回应更加精确。你可以借助内置的提示生成器,编写合适的提示词。提示词内支持插入表单变量,例如 {{input}}提示词中的变量的值会替换成用户填写的值。

示例:

1)输入提示指令,要求给出一段面试场景的提示词。

2)右侧内容框将自动生成提示词。

3)你可以在提示词内插入自定义变量。

为了更好的用户体验,可以加上对话开场白:你好,{{name}}。我是你的面试官,Bob。你准备好了吗?。点击页面底部的 “添加功能” 按钮,打开 “对话开场白” 的功能:

编辑开场白时,还可以添加数个开场问题:

添加上下文

如果想要让 AI 的对话范围局限在知识库内,例如企业内的客服话术规范,可以在“上下文”内引用知识库。

添加文件上传

部分多模态 LLM 已原生支持处理文件,例如 Claude 3.5 SonnetGemini 1.5 Pro。你可以在 LLM 的官方网站了解文件上传能力的支持情况。

选择具备读取文件的 LLM,开启 “文档” 功能。无需复杂配置即可让当前 Chatbot 具备文件识别能力。

调试

在右侧填写用户输入项,输入内容进行调试。

若 LLM 给出的回答结果不理想,你可以调整提示词或切换不同底层模型进行效果对比。如需更进一步,同时查看不同模型对于同一个问题的回答情况,请参考多模型调试

发布应用

调试好应用后,点击右上角的 “发布” 按钮生成独立的 AI 应用。除了通过公开 URL 体验该应用,你也进行基于 APIs 的二次开发、嵌入至网站内等操作。详情请参考发布

如果想定制已发布的应用,可以 Fork 我们的开源的 WebApp 的模板。基于模板改成符合你的情景与风格需求的应用。

常见问题

如何在聊天助手内添加第三方工具?

聊天助手类型应用不支持添加第三方工具,你可以在 Agent 类型应用内添加第三方工具。

如何在创建聊天助手应用时,使用元数据功能筛选知识库内文档?

如需了解如何使用元数据功能筛选文档,请参阅 在应用内集成知识库 中的“使用元数据筛选知识 > 聊天助手”章节。

多模型调试

聊天助手应用类型支持 “多个模型进行调试” 功能,你可以同时批量检视不同模型对于相同问题的回答效果。

最多支持同时添加 4 个大模型。

调试时如果发现效果较好的模型,点击 “单一模型进行调试” 即可进入至当前模型的单独调试页面。

常见问题

1. 添加大模型时没有看到其它模型应该如何处理?

前往 “增加新供应商”,按照页面提示手动添加多个模型的 Key。

2. 如何退出多模型调试模式?

选择任意模型,点击 “单一模型进行调试” 选项即可退出多模型调试模式。

Agent

定义

智能助手(Agent Assistant),利用大语言模型的推理能力,能够自主对复杂的人类任务进行目标规划、任务拆解、工具调用、过程迭代,并在没有人类干预的情况下完成任务

如何使用智能助手

为了方便快速上手使用,你可以在“探索”中找到智能助手的应用模板,添加到自己的工作区,或者在此基础上进行自定义。在全新的 Dify 工作室中,你也可以从零编排一个专属于你自己的智能助手,帮助你完成财务报表分析、撰写报告、Logo 设计、旅程规划等任务。

探索-智能助手应用模板

选择智能助手的推理模型,智能助手的任务完成能力取决于模型推理能力,我们建议在使用智能助手时选择推理能力更强的模型系列如 gpt-4 以获得更稳定的任务完成效果。

选择智能助手的推理模型

你可以在“提示词”中编写智能助手的指令,为了能够达到更优的预期效果,你可以在指令中明确它的任务目标、工作流程、资源和限制等。

编排智能助手的指令提示词

添加助手需要的工具

在“上下文”中,你可以添加智能助手可以用于查询的知识库工具,这将帮助它获取外部背景知识

在“工具”中,你可以添加需要使用的工具。工具可以扩展 LLM 的能力,比如联网搜索、科学计算或绘制图片,赋予并增强了 LLM 连接外部世界的能力。Dify 提供了两种工具类型:第一方工具自定义工具

你可以直接使用 Dify 生态提供的第一方内置工具,或者轻松导入自定义的 API 工具(目前支持 OpenAPI / Swagger 和 OpenAI Plugin 规范)。

添加助手需要的工具

“工具”功能允许用户借助外部能力,在 Dify 上创建出更加强大的 AI 应用。例如你可以为智能助理型应用(Agent)编排合适的工具,它可以通过任务推理、步骤拆解、调用工具完成复杂任务。

另外工具也可以方便将你的应用与其他系统或服务连接,与外部环境交互。例如代码执行、对专属信息源的访问等。你只需要在对话框中谈及需要调用的某个工具的名字,即可自动调用该工具

配置 Agent

在 Dify 上为智能助手提供了 Function calling(函数调用)和 ReAct 两种推理模式。已支持 Function Call 的模型系列如 gpt-3.5/gpt-4 拥有效果更佳、更稳定的表现,尚未支持 Function calling 的模型系列,我们支持了 ReAct 推理框架实现类似的效果。

在 Agent 配置中,你可以修改助手的迭代次数限制。

Function Calling 模式

ReAct 模式

配置对话开场白

你可以为智能助手配置一套会话开场白和开场问题,配置的对话开场白将在每次用户初次对话中展示助手可以完成什么样的任务,以及可以提出的问题示例。

配置会话开场白和开场问题

添加文件上传

部分多模态 LLM 已原生支持处理文件,例如 Claude 3.5 SonnetGemini 1.5 Pro。你可以在 LLM 的官方网站了解文件上传能力的支持情况。

选择具备读取文件的 LLM,开启 “文档” 功能。无需复杂配置即可让当前 Chatbot 具备文件识别能力。

调试与预览

编排完智能助手之后,你可以在发布成应用之前进行调试与预览,查看助手的任务完成效果。

调试与预览

应用发布

应用发布为 Webapp

应用工具箱

工作室 -- 应用编排 内点击 添加功能,打开应用工具箱

应用工具箱为 Dify 的应用提供了不同的附加功能:

对话开场白

在对话类应用中,AI 会主动说第一句话或者提出问题,你可以编辑开场白的内容包括开场问题。使用对话开场白可以引导用户提问,交代应用背景,降低对话提问的使用门槛。

对话开场白

下一步问题建议

设置下一步问题建议可以在每次对话交互后,让 AI 根据之前的对话内容继续生成 3 个提问,引导下一轮对话。

文字转语音

开启后可以将 AI 回复的内容转换成自然的语音播放。

语音转文字

开启后可以在应用内录音并将语音自动转换成文本。

引用与归属

开启功能后,当 LLM 引用知识库内容来回答问题时,可以在回复内容下面查看到具体的引用段落信息,包括原始分段文本、分段序号、匹配度等。

具体介绍请查看引用与归属

内容审查

我们在与 AI 应用交互的过程中,往往在内容安全性,用户体验,法律法规等方面有较为苛刻的要求,此时我们需要“敏感内容审查”功能,来为终端用户创造一个更好的交互环境。

具体介绍请查看敏感内容审查

标注回复

标注回复功能通过人工编辑标注为应用提供了可定制的高质量问答回复能力

查看标注回复

敏感内容审查

我们在与 AI 应用交互的过程中,往往在内容安全性,用户体验,法律法规等方面有较为苛刻的要求,此时我们需要“敏感词审查”功能,来为终端用户创造一个更好的交互环境。 在提示词编排页面,点击“添加功能”,找到底部的工具箱“内容审核”:

Content moderation

功能一:调用 OpenAI Moderation API

OpenAI 和大多数 LLM 公司提供的模型,都带有内容审查功能,确保不会输出包含有争议的内容,比如暴力,性和非法行为,并且 OpenAI 还开放了这种内容审查能力,具体可以参考 platform.openai.com 。现在你也可以直接在 Dify 上调用 OpenAI Moderation API,你可以审核输入内容或输出内容,只要输入对应的“预设回复”即可。

OpenAI Moderation API

功能二:自定义关键词

开发者可以自定义需要审查的敏感词,比如把“kill”作为关键词,在用户输入的时候作审核动作,要求预设回复内容为“The content is violating usage policies.”可以预见的结果是当用户在终端输入包含“kill”的语料片段,就会触发敏感词审查工具,返回预设回复内容。

Keywords

功能三: 敏感词审查 Moderation 扩展

不同的企业内部往往有着不同的敏感词审查机制,企业在开发自己的 AI 应用如企业内部知识库 ChatBot,需要对员工输入的查询内容作敏感词审查。为此,开发者可以根据自己企业内部的敏感词审查机制写一个 API 扩展,具体可参考 敏感内容审查,从而在 Dify 上调用,实现敏感词审查的高度自定义和隐私保护。

Moderation Settings

比如我们在自己的本地服务中自定义敏感词审查规则:不能查询有关美国总统的名字的问题。当用户在query变量输入"Trump",则在对话时会返回 "Your content violates our usage policy." 测试效果如下:

Moderation Test

转自:多模型调试 | Dify

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值