本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续!
0 前言
Dify的一个“应用”指基于LLM构建的实际场景应用。通过创建应用,可将智能 AI 技术应用于特定的需求。它既包含了开发 AI 应用的工程范式,也包含了具体的交付物。
一个应用为开发者交付:
- 封装友好的 API,可由后端或前端应用直接调用,通过 Token 鉴权
- 开箱即用、美观且托管的 WebApp,你可以 WebApp 的模版进行二次开发
- 一套包含提示词工程、上下文管理、日志分析和标注的易用界面
可任选其中之一或全部,来支撑你的 AI 应用开发。
1 应用类型
Dify提供如下应用类型:
- 聊天助手:基于 LLM 构建对话式交互的助手
- 文本生成:构建面向文本生成类任务的助手,例如撰写故事、文本分类、翻译等
- Agent:能够分解任务、推理思考、调用工具的对话式智能助手
- 工作流:基于流程编排的方式定义更加灵活的 LLM 工作流
- chatflow:支持记忆的复杂多轮对话工作流
文本生成 V.S 聊天助手
特性 | 文本生成 | 聊天助手 |
---|---|---|
WebApp 界面 | 表单+结果式 | 聊天式 |
WebAPI 端点 | completion-messages | chat-messages |
交互方式 | 一问一答 | 多轮对话 |
流式结果返回 | 支持 | 支持 |
上下文保存 | 当次 | 持续 |
用户输入表单 | 支持 | 支持 |
知识库与插件 | 支持 | 支持 |
AI 开场白 | 不支持 | 支持 |
情景举例 | 翻译、判断、索引 | 聊天 |
2 创建应用
3种方式在 Dify 的工作室内创建应用:
- 基于应用模板创建(新手推荐)
- 创建空白应用
- 通过 DSL 文件(本地/在线)创建应用
2.1 从模板创建应用
为帮助新手用户快速了解在 Dify 能构建啥应用,Dify 团队提示词工程师已创建多场景、高质量的应用模板。
任意选择某个模板,并将其添加至工作区即可。
2.2 创建一个新应用
如需在 Dify 创建一个空白应用,Dify可创建不同应用类型:
给应用起一个名字、选择合适的图标,或者上传喜爱的图片用作图标、使用一段清晰的文字描述此应用的用途,以便后续应用在团队内使用。
2.3 通过 DSL 文件创建应用
Dify DSL 是由 Dify.AI 所定义的 AI 应用工程文件标准,文件格式为 YML。该标准涵盖应用在 Dify 内的基本描述、模型参数、编排配置等信息。
本地导入
如从社区或其它人获得一个应用模版(DSL 文件),可从工作室选择 「 导入DSL 文件 」。DSL 文件导入后将直接加载原应用的所有配置信息。
URL 导入
你也可以通过 URL 导入 DSL 文件,参考的链接格式:
https://example.com/your_dsl.yml
导入 DSL 文件时将校对文件版本号。如果 DSL 版本号差异较大,有可能会出现兼容性问题。
3 聊天助手
对话型应用采用一问一答模式与用户持续对话。
3.1 适用场景
客户服务、在线教育、医疗保健、金融服务等领域。这些应用可以帮助组织提高工作效率、减少人工成本和提供更好用户体验。
3.2 咋编排?
对话型应用的编排支持:对话前提示词,变量,上下文,开场白和下一步问题建议。
以 面试官 应用为例。
3.2.1 创建应用
填写应用名称,应用类型选聊天助手:
3.2.2 编排应用
创建应用后会自动跳转到应用概览页。点击左侧菜单 编排 来编排应用。
① 填写提示词
提示词用于约束 AI 给出专业回复,让回应更精确。示例:
- 输入提示指令,要求给出一段面试场景的提示词
- 右侧内容框将自动生成提示词
- 你可以在提示词内插入自定义变量
可借助内置提示生成器,如下点击生成:
红框内输入你的提示词,再点击生成即可,右边即是优化后的提示词:
提示词内支持插入表单变量,如 {{input}}
。提示词中的变量的值会替换成用户填写的值。
为更好用户体验,可以加上对话开场白,点击右下角【管理】:
可选增强功能如下:
编辑开场白即可:你好,{{name}}。我是你的面试官,Bob。你准备好了吗?
。
可添加数个开场问题。
② 添加上下文
如果想要让 AI 的对话范围局限在【知识库】内,例如企业内的客服话术规范,可以在“上下文”内引用知识库。
③ 添加文件上传
部分多模态 LLM 已原生支持处理文件,如 Claude 3.5 Sonnet 或 Gemini 1.5 Pro。你可以在 LLM 的官方网站了解文件上传能力的支持情况。
选择具备读取文件的 LLM,开启 “文档” 功能。无需复杂配置即可让当前 Chatbot 具备文件识别能力。
3.2.3 调试
在右侧填写用户输入项,输入内容进行调试。先输入变量 jobName 值为后端开发,开始激聊:
如果回答结果不理想,可以调整提示词和底层模型。你也可以使用多个模型同步进行调试,搭配出合适的配置:
多个模型进行调试:
如果使用单一模型调试时感到效率低下,你也可以使用 “多个模型进行调试” 功能,批量检视模型的回答效果。最多支持同时添加 4 个大模型:
⚠️ 使用多模型调试功能时,如果仅看到部分大模型,这是因为暂未添加其它大模型的 Key。
3.2.4 发布应用
调试好应用后,点击右上角的 “发布” 按钮生成独立的 AI 应用。
① 发布为公开 Web 站点
发布一个可供用户在互联网上公开访问的 Web 应用,该应用将根据你的 Prompt 和编排设置进行工作。
- 自部署的开源版,该应用将运行在你的服务器上
- 云服务,该应用将托管至网址 https://udify.app/
发布 AI 站点
在应用监测页中,你可以找到 WebApp 的管理卡片。打开访问开关后,你可以得到一个能够在互联网上公开分享的网址:
可见,均预置了漂亮的 WebApp 界面。
② 嵌入你的 AI 站点
Dify 支持将你的 AI 应用嵌入到业务网站中,可用该能力在几分钟内制作具有业务数据的官网 AI 客服、业务知识问答等应用。点击 WebApp 卡片上的嵌入按钮,复制嵌入代码,粘贴到你网站的目标位置:
③ 基于 APIs 开发
Dify 基于“后端即服务”理念为所有应用提供了 API,为 AI 应用开发者带来了诸多便利。通过这一理念,开发者可以直接在前端应用中获取大型语言模型的强大能力,而无需关注复杂的后端架构和部署过程。
用 Dify API 的好处
- 让前端应用直接安全地调用 LLM 能力,省去后端服务的开发过程
- 在可视化的界面中设计应用,并在所有客户端中实时生效
- 对 LLM 供应商的基础能力进行了良好封装
- 随时切换 LLM 供应商,并对 LLM 的密钥进行集中管理
- 在可视化的界面中运营你的应用,例如分析日志、标注及观察用户活跃
- 持续为应用提供更多工具能力、插件能力和知识库
如何使用?
选择一个应用,在应用(Apps)左侧导航中可以找到访问 API(API Access)。在该页面中你可以查看 Dify 提供的 API 文档,并管理可访问 API 的凭据。
例如你是一个咨询公司的开发部分,你可以基于公司的私有数据库提供 AI 能力给终端用户或开发者,但开发者无法掌握你的数据和 AI 逻辑设计,从而使得服务可以安全、可持续的交付并满足商业目的。
最佳实践中,API 密钥应通过后端调用,而不是直接以明文暴露在前端代码或请求中,这样可以防止你的应用被滥用或攻击。
你可以为一个应用创建多个访问凭据,以实现交付给不同的用户或开发者。这意味着 API 的使用者虽然使用了应用开发者提供的 AI 能力,但背后的 Promp 工程、知识库和工具能力是经封装的。
FAQ
Q:咋在聊天助手内添加第三方工具?
A:聊天助手类型应用不支持添加第三方工具,可在 Agent 类型应用内添加第三方工具。
本文由博客一文多发平台 OpenWrite 发布!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。