Dify中的API接口:对话、生成和工作流

一.对话型应用 API

对话应用支持会话持久化,可将之前的聊天记录作为上下进行回答,可适用于聊天/客服 AI 等。

接口功能描述请求示例
POST/chat-messages创建会话消息。
POST/files/upload上传文件(目前仅支持图片)并在发送消息时使用,可实现图文多模态理解。 支持 png, jpg, jpeg, webp, gif 格式。 上传的文件仅供当前终端用户使用。
POST/chat-messages/:task_id/stop仅支持流式模式。
POST/messages/:message_id/feedbacks消息终端用户反馈、点赞,方便应用开发者优化输出预期。
GET/messages/{message_id}/suggested获取下一轮建议问题列表。
GET/messages滚动加载形式返回历史聊天记录,第一页返回最新 limit 条,即:倒序返回。
GET/conversations获取当前用户的会话列表,默认返回最近的 20 条。
DELETE/conversations/:conversation_id删除会话。
POST/conversations/:conversation_id/name对会话进行重命名,会话名称用于显示在支持多会话的客户端上。
POST/audio-to-text该接口需使用 multipart/form-data 进行请求。
POST/text-to-audio文字转语音。
GET/parameters用于进入页面一开始,获取功能开关、输入参数名称、类型及默认值等使用。
GET/meta用于获取工具icon

二.文本生成型应用 API

文本生成应用无会话支持,适合用于翻译/文章写作/总结 AI 等。

接口功能描述请求示例
POST/completion-messages发送请求给文本生成型应用。
POST/files/upload上传文件(目前仅支持图片)并在发送消息时使用,可实现图文多模态理解。 支持 png, jpg, jpeg, webp, gif 格式。 上传的文件仅供当前终端用户使用。
POST/completion-messages/:task_id/stop仅支持流式模式。
POST/messages/:message_id/feedbacks消息终端用户反馈、点赞,方便应用开发者优化输出预期。
GET/parameters用于进入页面一开始,获取功能开关、输入参数名称、类型及默认值等使用。
POST/text-to-audio文字转语音。

三.Workflow 应用 API

Workflow 应用无会话支持,适合用于翻译/文章写作/总结 AI 等。

接口功能描述请求示例
POST/workflows/run执行 workflow,没有已发布的 workflow,不可执行。
POST/workflows/:task_id/stop仅支持流式模式。
GET/parameters用于进入页面一开始,获取功能开关、输入参数名称、类型及默认值等使用。

参考文献:
[1] Dify中的API接口:对话、生成和工作流:https://z0yrmerhgi8.feishu.cn/wiki/Y6qvwPpv3iUp2KkUc5Qck18pnMe

### Dify多轮对话工作流的配置方法 Dify是一个强大的工具,用于构建复杂的对话工作流,特别是在处理多轮问答场景时表现出色。以下是关于如何配置Dify多轮对话工作流的具体说明: #### 1. 工作流的设计原则 在设计一个多轮对话工作流之前,应先明确其目标范围。为了降低复杂性提高可维护性,建议将整个流程划分为多个独立的小型工作流[^1]。每个小型工作流专注于完成特定的任务或子功能。 #### 2. 创建基础工作流结构 通过Dify平台提供的界面或者API接口来初始化一个新的工作流项目。在此阶段,定义好输入参数、输出结果以及触发条件等内容是非常重要的。例如,在构建订机票业务时,可能需要收集用户的出发地、目的地、日期等信息作为输入变量[^2]。 ```json { "input": { "departureCity": "", "destinationCity": "", "travelDate": "" }, "output": {}, "conditions": [] } ``` #### 3. 添加节点与逻辑分支 在一个典型的工作流中,通常包含若干个顺序执行的操作步骤(即节点),并根据不同的情况设置相应的跳转路径(即逻辑分支)。对于某些特殊需求还可以加入循环机制以便重复询问直到满足预设标准为止。 - **节点类型**: 可以选择文本提示、表单填写等多种形式。 - **逻辑判断**: 使用if-else语句或其他高级控制结构来进行决策分析。 ```javascript // 示例代码展示简单的条件分支 function decideNextStep(userInput){ let nextAction; if (userInput.includes('yes')){ nextAction = 'confirmBooking'; } else if (userInput.includes('no')){ nextAction ='reselectOptions'; } return nextAction; } ``` #### 4. 测试优化调整 最后一步就是反复测试已建立起来的工作流模型,并依据实际运行效果做出必要的改进措施。这包括但不限于修复发现的问题错误、精简冗余环节以及提升用户体验等方面。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

NLP工程化

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

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

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

打赏作者

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

抵扣说明:

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

余额充值