第六章 RAG框架分析之Dify
6.1 基础介绍
www.dify.com
Dify 是一个开源的大型语言模型(LLM)应用开发平台,结合 Backend-as-a-Service 和 LLMOps 理念,帮助开发者快速构建生产级的生成式 AI 应用,即便是非技术人员也可以参与 AI 应用的定义和数据操作。
通过集成构建 LLM 应用所需的关键技术栈,包括对数百种模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎和灵活的 Agent 框架,同时提供一组易于使用的接口和 API,Dify 为开发人员节省了大量重复造轮子的时间,使他们能够专注于创新和业务需求。
您可以将 LangChain 等库视为带有锤子、钉子等的工具箱。相比之下,Dify 提供了更适合生产的完整解决方案——将 Dify 视为具有精细工程设计和软件测试的脚手架系统。
重要的是,Dify 是开源的,由专业的全职团队和社区共同打造。您可以根据任何模型自行部署类似于 Assistants API 和 GPT 的功能,在易于使用的界面上完全控制您的数据,并提供灵活的安全性。
Dify 这个名字来自 Define + Modify,指的是定义并不断改进您的 AI 应用程序。它是为您而打造的。
- 初创企业– 快速将您的 AI 想法变成现实,加速成功和失败。在现实世界中,数十个团队已经通过 Dify 构建了 MVP 以获得资金或赢得客户订单。
- 将 LLM 集成到现有业务中– 通过引入 LLM 来增强当前应用程序的功能。访问 Dify 的 RESTful API 以将提示与业务逻辑分离。使用 Dify 的管理界面来跟踪数据、成本和使用情况,同时不断提高性能。
- 企业 LLM 基础设施– 一些银行和互联网公司正在部署 Dify 作为内部 LLM 网关,加速采用 GenAI 技术,同时实现集中治理。
- 探索 LLM 功能– 即使作为技术爱好者,您也可以通过 Dify 轻松实践 Prompt 工程和 Agent 技术。在 GPT 问世之前,已有超过 60,000 名开发人员在 Dify 上构建了他们的第一个应用程序。
6.2 技术特点
LLM 推理引擎 | Dify Runtime(自 v0.4 起已删除 LangChain) |
支持的商业模式 | 10+,包括 OpenAI 和 Anthropic 在 48 小时内加入新的主流模型 |
支持的 MaaS 供应商 | 7、Hugging Face、Replicate、AWS Bedrock、NVIDIA、GroqCloud、together.ai、OpenRouter |
支持的本地模型推理运行时 | 6、Xoribits(推荐)、OpenLLM、LocalAI、ChatGLM、Ollama、NVIDIA TIS |
支持OpenAI接口标准模型集成 | ∞ |
多模式能力 | ASR 模型符合 GPT-4V 规格的富文本模型 |
内置应用程序类型 | 文本生成、对话、代理、工作流、群组(2024 年第二季度) |
提示即服务编排 | 可视化编排界面广受好评,修改提示和预览效果在一处完成。编排模式简单编排助理编排流程编排多代理编排(2024 年第二季度)提示变量类型细绳无线电枚举外部 API文件(2024 年第二季度) |
Agentic 工作流功能 | 业界领先的可视化工作流编排界面、实时编辑节点调试、模块化 DSL 和本机代码运行时,旨在构建更复杂、可靠和稳定的 LLM 应用程序。支持的节点法学硕士知识检索问题分类器如果别的代码模板HTTP 请求工具 |
RAG 功能 | 业界首个可视化知识库管理界面,支持片段预览和回忆测试。索引方法关键词文本向量法学硕士辅助问题片段模型检索方法关键词文本相似度匹配混合搜索N 选择 1多路径召回召回优化重新排序模型 |
ETL 功能 | 自动清理 TXT、Markdown、PDF、HTML、DOC、CSV 格式。非结构化服务可提供最大支持。将 Notion 文档同步为知识库。 |
支持的矢量数据库 | Qdrant(推荐)、Weaviate、Zilliz |
代理技术 | ReAct,函数调用。工具支持调用 OpenAI 插件标准工具直接加载 OpenAPI 规范 API 作为工具内置工具30 多种工具(截至 2024 年第一季度) |
日志记录 | 支持,基于日志的注解 |
批注回复 | 基于人工注释的问答,用于基于相似度的回复。可导出为数据格式以进行模型微调。 |
内容审核 | OpenAI Moderation 或外部 API |
团队协作 | 工作区、多成员管理 |
API 规范 | RESTful,涵盖大多数功能 |
部署方法 | Docker,Helm |
6.3 什么是 LLMOps?
LLMOps(大型语言模型操作)是一套全面的实践和流程,涵盖大型语言模型(如 GPT 系列)的开发、部署、维护和优化。LLMOps 的目标是确保高效、可扩展且安全地使用这些强大的 AI 模型来构建和运行现实世界的应用程序。它涉及模型训练、部署、监控、更新、安全和合规等方面。
下表列出了使用 Dify 前后AI应用开发各个阶段的差异:
脚步 | 前 | 后 | 省时间 |
开发应用程序的前端和后端 | 集成和封装LLM功能需要花费大量时间来开发前端应用程序。 | 直接使用Dify的后端服务基于WebApp脚手架进行开发。 | -80% |
及时工程 | 只能通过调用 API 或 Playground 来完成。 | 根据用户输入的数据进行调试。 | -25% |
数据准备和嵌入 | 编写代码实现长文本数据的处理和嵌入。 | 上传文本或者绑定数据源到平台。 | -80% |
应用程序日志记录和分析 | 编写代码来记录日志并访问数据库来查看它们。 | 该平台提供实时记录和分析。 | -70% |
数据分析与微调 | 技术人员管理数据并创建微调队列。 | 非技术人员可以直观地协作和调整模型。 | -60% |
AI插件开发与集成 | 编写代码来创建和集成 AI 插件。 | 该平台提供用于创建和集成插件的可视化工具。 | -50% |
6.4 实战教学:
在 Dify 中,“应用”是指基于 GPT 等大型语言模型构建的现实场景应用。通过创建应用,你可以将智能 AI 技术应用于特定需求。它既包括开发 AI 应用的工程范式,也包括具体的交付成果。
简而言之,应用程序向开发人员提供:
- 一个用户友好的封装 LLM API,可以通过令牌认证直接由后端或前端应用程序调用
- 一个现成的、美观的托管 Web 应用程序,您可以使用 Web 应用程序模板进一步开发它
- 一组易于使用的界面,用于快速工程、上下文管理、日志分析和注释
您可以选择其中一个或者全部来支持您的AI应用程序开发。
应用程序类型
Dify 提供两种类型的应用:文本生成和对话式。未来可能会出现更多的应用范例,Dify 的最终目标是覆盖 80% 以上的典型 LLM 应用场景。文本生成和对话式应用之间的差异如下表所示:
文本生成器 | 聊天应用程序 | |
Web应用程序界面 | 表格+结果 | 聊天风格 |
API 端点 | completion-messages | chat-messages |
交互模式 | 一个问题和一个答案 | 多轮对话 |
流式结果返回 | 支持的 | 支持的 |
上下文保存 | 当前时间 | 连续的 |
用户输入表单 | 支持的 | 支持的 |
知识与插件 | 支持的 | 支持的 |
人工智能开幕致辞 | 不支持 | 支持的 |
场景示例 | 翻译、判断、索引 | 聊天或一切 |
在Dify以管理员身份登录后,进入主导航应用页面点击“创建新应用”选择一个对话式或文本生成应用并命名(后期可修改)
我们在应用创建界面提供了一些模板,您可以在创建应用时在弹窗中点击从模板创建,这些模板会为您想要开发的应用提供灵感和参考。
从配置文件创建
如果你从社区或其他人那里获得了模板,你可以点击从应用程序配置文件创建。上传文件将加载对方应用程序中的大部分设置(但不是当前的知识)。
你的申请
如果您是第一次使用,系统会提示您输入 OpenAI API 密钥。正常运行的 LLM 密钥是使用 Dify 的先决条件。如果您还没有,请申请一个。
输入您的 OpenAI API 密钥
创建应用程序或选择现有应用程序后,您将进入应用程序概览页面,其中显示应用程序的配置文件。您可以在此处直接访问您的 WebApp 或检查 API 状态,以及启用或禁用它们。
统计数据显示一段时间内应用程序的使用情况、活跃用户数和 LLM 调用消耗情况,让您能够不断提高应用程序运营的成本效益。我们将逐步提供更多有用的可视化功能;请告诉我们您的需求。
总消息数:每日 AI 交互数;不包括提示工程/调试。
活跃用户:参与AI问答的独立用户,不包括即时工程/调试。
平均会话互动:针对基于对话的应用,持续的用户与人工智能之间的沟通次数。
用户满意率:每千条消息的点赞数,反映用户对AI解答的满意度。
平均响应时间:AI 处理/响应的时间(毫秒);适用于基于文本的应用程序。
令牌使用情况:每日语言模型令牌使用情况;用于成本控制。
开始使用
使用 Dify 创建 AI 应用程序的好处之一是,您可以根据您的 Prompt 编排在几分钟内启动一个用户友好的 Web 应用程序。
如果您使用自托管开源版本,该应用程序将在您的服务器上运行。
如果您使用云版本,该应用程序将托管在 udify.app 上。
启动 WebApp
在应用程序概述页面中,您可以找到 AI 站点 (WebApp) 的卡片。只需启用 WebApp 访问权限即可为您的用户获取可共享的链接。
分享您的 WebApp
我们为以下两个应用程序提供了简洁的 WebApp 界面:
文本生成(转到预览)
对话式(进入预览)
配置您的 WebApp
单击 WebApp 卡上的设置按钮来配置 AI 站点的一些选项。最终用户将看到这些选项:
图标
姓名
应用程序描述
界面语言
版权信息
隐私政策链接
嵌入您的 WebApp
Dify 支持将您的 AI 应用嵌入到您的企业网站。借助此功能,您可以在几分钟内在您的官方网站上使用业务数据创建 AI 客服和业务知识问答应用程序。单击 WebApp 卡上的嵌入按钮,复制嵌入代码,然后将其粘贴到您网站上的所需位置。
对于 iframe 标签:复制 iframe 代码并将其粘贴到您网站上用于显示 AI 应用程序的标签(例如
<div>
、等)中。<section>
对于脚本标签:复制脚本代码并将其粘贴到您网站上的
<head>
或标签中。<body>
例如,如果你将脚本代码粘贴到你的官方网站的部分,你将在你的网站上得到一个 AI 聊天机器人:
6.4.2 创建知识库
如果创建的类型是知识库。
则可以通过添加文档来实现RAG
从测试中我们可以看到被查询到了文档中的内容
6.5 商业化许可
Dify是开源的,并且协议是被允许用于商业化产品的。
但是有2个限制,可能会限制我们采用其框架。
RA/SD 衍生者AI训练营。发布者:chris,转载请注明出处:https://www.shxcj.com/archives/6923