当前位置: 首页 > news >正文

Dify-13: 文本生成API端点

本文档提供了有关 Dify 中与文本生成相关的 API 端点的全面信息。文本生成 API 支持无会话持久性的单次请求文本生成,使其适用于翻译、摘要、文章写作等非对话式人工智能应用场景。

概述

文本生成 API 端点允许开发人员将 Dify 的文本生成功能集成到不需要维护对话上下文的应用程序中。每个请求都独立处理,仅根据该请求中提供的输入生成内容。

身份验证

所有 API 端点都需要使用 API 密钥进行身份验证。API 密钥应使用承载令牌格式包含在 Authorization HTTP 标头中。

Authorization: Bearer {API_KEY}

重要提示:出于安全原因,请始终将 API 密钥存储在服务器端,切勿存储在客户端代码或应用程序中。API 密钥泄露可能导致未经授权的访问和潜在的经济损失。

主要端点:创建文本生成消息

端点详情
  • URL/completion-messages
  • 方法:POST
  • 目的:根据提供的输入生成文本内容
请求格式
参数类型必填描述
inputsobject包含至少一个 query 字段的输入参数
response_modestring“streaming”(推荐)或 “blocking”
userstring用于跟踪和统计的唯一用户标识符
filesarray请求中包含的文件列表(支持图像)
示例请求体
{"inputs": {"query": "Summarize the benefits of artificial intelligence in healthcare"},"response_mode": "streaming","user": "user-123"
}

对于包含文件的请求,files 数组可以包含描述每个文件的对象:

{"files": [{"type": "image","transfer_method": "remote_url","url": "https://example.com/image.jpg"}]
}
响应格式
  • 阻塞模式:在阻塞模式下,API 在处理完成后返回完整响应:
{"event": "message","message_id": "9da23599-e713-473b-982c-4328d4f5c78a","mode": "completion","answer": "The benefits of artificial intelligence in healthcare include...","metadata": {"usage": {"prompt_tokens": 1033,"prompt_unit_price": "0.001","prompt_price_unit": "0.001","prompt_price": "0.0010330","completion_tokens": 128,"completion_unit_price": "0.002","completion_price_unit": "0.001","completion_price": "0.0002560","total_tokens": 1161,"total_price": "0.0012890","currency": "USD","latency": 0.7682376249867957}},"created_at": 1705407629
}
  • 流式模式:在流式模式下,API 使用服务器发送事件(SSE)在生成响应时返回响应块:
data: {"event": "message", "message_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "answer": " I", "created_at": 1679586595}
data: {"event": "message", "message_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "answer": "'m", "created_at": 1679586595}
data: {"event": "message", "message_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "answer": " glad", "created_at": 1679586595}
data: {"event": "message_end", "id": "5e52ce04-874b-4d27-9045-b3bc80def685", "metadata": {"usage": {...}}}

每个流式块都有特定的事件类型和相应的结构:

事件类型描述关键字段
message来自大语言模型的文本块message_id, answer, created_at
message_end流式传输结束message_id, metadata
tts_message文本转语音音频message_id, audio(base64 编码)
tts_message_end文本转语音流结束message_id
message_replace内容替换message_id, answer
error错误信息status, code, message
ping连接保持活动状态每 10 秒发送一次
错误响应
状态代码描述
400invalid_param请求中的参数无效
400app_unavailable应用配置不可用
400provider_not_initialize没有可用的模型凭证配置
400provider_quota_exceeded模型调用配额已超出
400model_currently_not_support当前模型不可用
400completion_request_error文本生成失败
500-内部服务器错误

支持的端点

文件上传端点
  • URL/files/upload
  • 方法:POST
  • 目的:上传文件(目前支持图像)以用于文本生成消息
  • Content-Type:multipart/form-data

请求参数

参数类型必填描述
filefile要上传的文件
userstring与文本生成消息中使用的用户标识符匹配的用户标识符

响应

{"id": "72fa9618-8f89-4a37-9b33-7e1178a24a67","name": "example.png","size": 1024,"extension": "png","mime_type": "image/png","created_by": "6ad1ab0a-73ff-4ac1-b9e4-cdb312f71f13","created_at": 1577836800
}
停止生成端点
  • URL/completion-messages/:task_id/stop
  • 方法:POST
  • 目的:停止正在进行的文本生成过程(仅流式模式)

请求参数

参数类型必填描述
userstring与文本生成消息中使用的用户标识符匹配的用户标识符

响应

{"result": "success"
}
消息反馈端点
  • URL/messages/:message_id/feedbacks
  • 方法:POST
  • 目的:对生成的内容提供反馈(点赞、点踩、评论)

请求参数

参数类型必填描述
ratingstring“like”、“dislike” 或 null(撤销评分)
userstring用户标识符
contentstring详细的反馈内容

响应

{"result": "success"
}
文本转语音端点
  • URL/text-to-audio
  • 方法:POST
  • 目的:将文本转换为语音音频

请求参数

参数类型必填描述
message_idstring要转换为音频的先前生成的消息 ID
textstring要转换的文本内容(如果未提供 message_id 则使用)
userstring用户标识符

响应:API 直接返回音频文件,Content-Type 为 audio/wav。

系统架构中的文本生成 API

以下图表说明了文本生成 API 如何与 Dify 系统的其他组件集成:

请求 - 响应流程

以下图表显示了文本生成 API 的请求 - 响应流程:

与聊天 API 的主要区别

功能文本生成 API聊天 API
会话持久性
对话历史记录不维护维护
用例一次性文本生成(翻译、摘要)交互式对话
主要端点/completion-messages/chat-messages
对话 ID不使用继续对话时需要

实现注意事项

  • 流式响应使用服务器发送事件(SSE)格式。
  • 响应内容可能会受到审核,不适当的内容会通过 message_replace 事件进行替换。
  • Cloudflare 超时限制请求为 100 秒。
  • 文件上传目前仅支持图像文件(png, jpg, jpeg, webp, gif)。
  • 在文本生成请求中使用文件时,请确保模型支持视觉功能。

错误处理

发生错误时,API 返回适当的 HTTP 状态码和错误信息:

  • 对于阻塞模式请求,错误信息直接在 HTTP 响应中返回。
  • 对于流式模式请求,错误作为 SSE 事件发送,事件类型为 error。

常见的错误场景包括:

  • 无效参数(400)
  • 应用配置问题(400)
  • 模型提供方初始化问题(400)
  • 配额超出错误(400)
  • 不支持的模型(400)
  • 文本生成失败(400)
  • 内部服务器错误(500)
http://www.xdnf.cn/news/1171297.html

相关文章:

  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | ImageCarousel(图片轮播组件)
  • wed前端简单解析
  • 小鹏汽车视觉算法面试30问全景精解
  • SpringAOP的实现原理和场景
  • 消息推送功能设计指南:精准触达与用户体验的平衡之道
  • 遇到JAVA问题
  • 深度学习的一些疑点整理
  • Linux文件系统深入理解
  • VirtualBox安装提示security安全问题
  • Coze智能体1分钟全自动生成哲学主义解析视频,无需写文案,无需剪辑
  • 性能测试-从0到1搭建性能测试环境Jmeter+Grafana+influxDB+Prometheus+Linux
  • Collection接口的详细介绍以及底层原理——包括数据结构红黑树、二叉树等,从0到彻底掌握Collection只需这篇文章
  • Linux文件系统理解1
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现持械检测(C#代码,UI界面版)
  • 使用qemu命令启动虚拟机
  • linux辅助知识(Shell 脚本编程)
  • 基于卷积神经网络与小波变换的医学图像超分辨率算法复现
  • AWE2026启动:加码AI科技,双展区联动开启产业新格局
  • 【kubernetes】-2 K8S的资源管理
  • Spring、Spring MVC、Spring Boot、Spring Cloud的联系和区别
  • 闲庭信步使用图像验证平台加速FPGA的开发:第三十课——车牌识别的FPGA实现(2)实现车牌定位
  • 类加载过程及双亲委派模型
  • 数据结构自学Day12-- 排序算法2
  • Pycharm下载、安装及配置
  • 【运维】SGLang服务器参数配置详解
  • 大数据之Hive:Hive中week相关的几个函数
  • 微调大语言模型(LLM)有多难?
  • SpringBoot全局异常报错处理和信息返回
  • Vue 脚手架基础特性
  • Maven 环境配置全攻略:从入门到实战