dify.AI的介绍

Dify 是一款开源的大语言模型(LLM)应用开发平台。包括 OpenAI 和 Anthropic 主流新模型可在 48 小时内接入

支持的 MaaS 厂商

7

支持的本地模型推理运行ibits(推荐)、OpenLLM、LocalAI、ChatGLM、Ollama、NVIDIA TIS

OpenAI 接口标准模型集成

无限支持

多模态能力

ASR 模型、富文本模型(最高支持 GPT-4o 规格)

内置应用类型

文本生成、聊天机器人、代理、工作流、对话流

Prompt-as-a-Servic集中修改 Prompt 并预览效果

编排模式

简单编排、代理编排、流程编排

Prompt 变量类型

字符串、单选枚举

外部 API 支持

文件(2024 Q3 上线)

代理工作流特性

行业领先的可视化工节点

LLM、知识检索、问题分类器、IF/ELSE、代码、模板、HTTP 请求、工具

RAG 特性

行业首个可视化知识库管理界面,支持片段预览和召回测试

索引方

关键词、文本向量、LLM 辅助问方法

关键词

召回优化

重排序模型

ETL 能力

自动清理 TXT、Markdown、PDF、HTML、DOC、CSV 格式数据;支持非结构化服务

知识库同步

同步 Notion 文档、网页作为知识库

支持的向量数据库

Qdrant(推荐)、Weaviate、Zilliz/Milvus、Pgvector、Pgvector-rs、Chroma、OpenSearch、TiDB、腾讯向量、Oracle、Relyt、Analyticdb、Couchbase

代理技术

ReAct、函数调用

工具支持

调用 OpenAI 插件标准工具、直接加载 OpenAPI 规范 API 为工具

内置工具

40+ 工具(截至 2024 Q2)

日志记录

支持,基于日志的注释

注释回复

基于人工标注的问答,用于基于相似性的回复;可导出为数据格式以微调模型

内容审核

OpenAI 内容审核或外部 API

团队协作

工作区、多成员管理

API 规范

RESTful,覆盖大多数功能

部署方式

Docker、Helm

构建应用方式

Dify 中的“应用”是基于 GPT 等大语言模型构建的实际场景应用,旨在将智能 AI 技术融入特定需求。它融合了 AI 应用开发范式与具体交付物,为开发者提供:

  • 封装友好的 API:后端或前端应用可直接调用,通过 Token 鉴权,简化集成流程。

  • 开箱即用、美观托管的 WebApp:提供模版支持二次开发,快速构建用户界面。

  • 易用界面:集成提示词工程、上下文管理、日志分析和标注功能,提升开发效率。

开发者可根据需求灵活选择全部或部分功能,助力 AI 应用高效开发。

应用类型

Dify 提供五种应用类型:

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

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

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

  4. 对话流(Chatflow):适用于设计复杂流程的多轮对话场景,支持记忆功能并能进行动态应用编排。

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

各应用类型功能区别如下表:

功能

文本生成应用

聊天助手

Agent

对话流(Chatflow)

工作流(Workflow)

WebApp 界面

表单 + 结果式

对话式

对话式

流程式

表单 + 流程式

WebAPI 端点

/completion-messages

/chat-messages

/chat-messages

/chat-messages

/workflows/run

交互方式

一问一答

多轮对话

多轮对话

流程控制 + 多轮对话

单轮生成 + 多轮对话

流式结果返回

支持

支持

支持

支持

支持

上下文保存

当次

持续

持续

持续

当次

用户输入表单

支持

支持

支持

支持

支持

知识库与工具

支持

支持

支持

支持

支持

AI 开场白

不支持

支持

支持

支持

不支持

情景举例

翻译、判断、索引

聊天

任务分解、推理

流程控制、场景定义

批处理、自动化

实时反馈

支持

支持

支持

接入大模型

Dify 是基于大语言模型的 AI 应用开发平台,初次使用时你需要先在 Dify 的 设置 -- 模型供应商 页面内添加并配置所需要的模型。

Dify 已支持多家主流模型供应商,包括 OpenAI 的 GPT 系列、Anthropic 的 Claude 系列等。不同模型的能力和参数各异,用户可根据具体应用场景选择合适的供应商。在使用 Dify 的模型能力前,需从各模型厂商官网获取 API Key。

模型分类

Dify 将模型按使用场景分为以下四类:

  1. 系统推理模型:用于应用创建、职能聊天机器人、对话名称生成及下一步问题建议等功能。已支持的供应商包括 OpenAI、Azure OpenAI Service、Anthropic、Hugging Face Hub、Replicate、Xinference、OpenLLM、讯飞星火、文心一言、通义千问、Minimax 和 ZHIPU(ChatGLM)。

  2. Embedding 模型:用于知识库文档分段嵌入及用户提问处理。已支持的供应商为 OpenAI 和 ZHIPU(ChatGLM),以及 Jina AI(Jina Embeddings)。

  3. Rerank 模型:用于优化 LLM 的搜索结果。已支持的供应商为 Cohere 和 Jina AI(Jina Reranker)。

  4. 语音转文字模型:用于将语音转换为文本。已支持的供应商为 OpenAI。

设置默认模型

Dify 在需要模型时,会根据使用场景来选择设置过的默认模型。在 设置 > 模型供应商 中设置默认模型。

接入模型设置

在 Dify 的 设置 > 模型供应商 中设置要接入的模型。 系统默认推理模型 (System Reasoning Model):设置创建应用使用的默认推理模型, 以及对话名称生成、下一步问题建议等功能也会使用该默认推理模型。

使用模型

配置完模型后,就可以在应用中使用这些模型了:

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

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

  • 创建一个空白应用

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


从模板创建应用

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

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


创建新应用

Dify 上可以创建 4 种不同的应用类型,分别是聊天助手、文本生成应用、Agent 和工作流。我们本次只创建一个空白的聊天助手应用。

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



编排应用

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

填写提示词

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

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

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

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


为了更好的用户体验,可以加上对话开场白:您好!我是CAN,您的专业编程助手...。点击页面底部的 “添加功能” 按钮,打开 “对话开场白” 的功能:


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

添加上下文

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



调试

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


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

发布应用

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