Dify-11: API参考

部署运行你感兴趣的模型镜像

本文档提供了关于 Dify 服务 API 的全面信息,使开发人员能够以编程方式集成和与 Dify 应用进行交互。这些 API 允许您构建自定义前端,或利用 Dify 的功能集成各种人工智能应用类型。

API 概述

Dify 根据应用类型提供了不同的 API 端点集:

  • 聊天应用:基于会话的对话,带有历史上下文。
  • 文本生成应用:无会话历史的无状态文本生成。
  • 工作流应用:执行预定义的多步骤工作流。
  • 智能体聊天应用:具有使用工具能力的增强型聊天应用。

身份验证

所有 Dify API 都使用 API 密钥进行身份验证。必须使用承载令牌格式将 API 密钥包含在 Authorization HTTP 标头中:

Authorization: Bearer {API_KEY}

出于安全原因,强烈建议将 API 密钥存储在服务器端,而不要在客户端代码中暴露

响应模式

Dify API 支持两种响应模式:

  • 阻塞模式Blocking:完成后返回完整响应(对于长时间运行的进程可能会超时)。
  • 流模式Streaming:在生成响应时以块的形式返回响应,使用服务器发送事件(SSE)。

通用请求和响应元素

文件结构

发送文件时,结构通常如下:

{
  "type": "image|document|audio|video|custom",
  "transfer_method": "remote_url|local_file",
  "url": "https://example.com/path/to/file",  // 当 transfer_method 为 remote_url 时
  "upload_file_id": "file-id"  // 当 transfer_method 为 local_file 时
}
流响应结构

在流模式下,响应遵循 SSE 格式

data: {"event": "message", "task_id": "task-id", "answer": "partial text", ...}\n\n
data: {"event": "message_end", ...}\n\n

每个块以 data: 开头,并由两个换行符分隔。内容是 JSON 格式,根据事件类型具有不同的结构。


聊天应用 API

发送聊天消息

端点POST /chat-messages
创建新的聊天消息或继续现有对话。

请求体

参数类型描述
querystring用户输入 / 问题内容
inputsobject应用定义的变量(键值对)
response_modestring“streaming” 或 “blocking”
userstring用户标识符
conversation_idstring可选 - 继续先前对话的 ID
filesarray可选 - 要处理的文件列表
auto_generate_nameboolean可选 - 自动生成对话标题

响应
在阻塞模式下,返回 ChatCompletionResponse 对象。在流模式下,返回 ChunkChatCompletionResponse 流。

流式传输事件:

事件描述
message来自大语言模型的文本块
agent_message智能体模式下的文本块
agent_thought智能体的推理过程
message_file工具创建的新文件
tts_message语音合成输出
message_end消息结束
error错误信息
上传文件

端点POST /files/upload
上传文件以在消息中使用,支持多模态理解。

请求体:包含文件(要上传的文件)和 user(用户标识符)的表单数据。

响应:文件元数据,包括 ID、名称、大小等。

停止生成

端点POST /chat-messages/:task_id/stop
停止正在进行的消息生成(仅在流模式下)。

路径参数
task_id:来自流块的任务 ID

请求体
user:用户标识符

响应

{
  "result": "success"
}
消息反馈

端点POST /messages/:message_id/feedbacks
对消息提供反馈(点赞 / 点踩)。

路径参数
message_id:消息 ID

请求体

参数描述
rating“like”、“dislike” 或 null
user用户标识符
content可选的反馈内容

响应

{
  "result": "success"
}
获取下一个建议问题

端点GET /messages/{message_id}/suggested
获取当前消息的下一个建议问题。

路径参数
message_id:消息 ID

查询参数
user:用户标识符

响应

{
  "result": "success",
  "data": ["问题 1", "问题 2", "问题 3"]
}
获取对话历史记录

端点GET /messages
以滚动加载格式返回历史聊天记录。

查询参数

参数描述
conversation_id对话 ID
user用户标识符
first_id可选 - 当前页面第一个聊天记录的 ID
limit可选 - 返回的记录数量(默认 20)

响应:包含消息内容、元数据和反馈的消息列表。

获取对话列表

端点GET /conversations
检索当前用户的对话列表。

查询参数

参数描述
user用户标识符
last_id可选 - 当前页面最后一个记录的 ID
limit可选 - 返回的记录数量(默认 20)
sort_by可选 - 排序字段

响应:包含对话元数据的对话列表。

删除对话

端点DELETE /conversations/:conversation_id
删除对话。

路径参数
conversation_id:对话 ID

请求体
user:用户标识符

响应

{
  "result": "success"
}

文本生成应用 API

文本生成应用是无会话历史的无状态文本生成应用。

创建文本生成消息

端点POST /completion-messages
向文本生成应用发送请求。

请求体

参数类型描述
inputsobject必填 - 必须包含 “query” 键及输入文本
response_modestring“streaming” 或 “blocking”
userstring用户标识符
filesarray可选 - 要处理的文件列表

响应
类似于聊天 API,但没有对话上下文。

停止文本生成

端点POST /completion-messages/:task_id/stop
停止正在进行的文本生成(仅在流模式下)。

参数与聊天 API 的停止端点类似。


工作流应用 API

工作流应用执行预定义的多步骤工作流。

执行工作流

端点POST /workflows/run
执行工作流,需要有已发布的工作流。

请求体

参数类型描述
inputsobject应用定义的变量(键值对)
response_modestring“streaming” 或 “blocking”
userstring用户标识符

响应事件

事件描述
workflow_started工作流开始执行
node_started节点开始执行
node_finished节点执行完成
workflow_finished工作流执行完成
tts_message语音合成输出
error错误信息
停止工作流任务

端点POST /workflows/:task_id/stop
停止正在进行的工作流执行。

路径参数
task_id:来自流块的任务 ID

支持工作流的高级聊天 API

高级聊天 API 扩展了标准聊天 API,具有工作流功能。它支持所有聊天 API 端点,并在流响应中包含与工作流相关的事件。

高级聊天事件

高级聊天 API 结合了聊天 API 和工作流 API 的功能,具有与聊天 API 相同的端点,但在流响应中包含额外的事件类型。

错误处理

所有 API 端点返回标准的 HTTP 状态码和结构化的错误响应。

状态码错误码描述
400invalid_param无效的参数输入
400app_unavailable应用配置不可用
400provider_not_initialize没有可用的模型凭证配置
400provider_quota_exceeded模型调用配额已超出
400model_currently_not_support当前模型不可用
400completion_request_error文本生成失败
404-资源未找到
500-内部服务器错误

API 集成流程

此图展示了客户端应用与 Dify API 之间的集成流程,包括不同的 API 端点、响应模式,以及文件上传和停止生成等可选功能。

您可能感兴趣的与本文相关的镜像

Qwen3-8B

Qwen3-8B

文本生成
Qwen3

Qwen3 是 Qwen 系列中的最新一代大型语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uncle_ll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值