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)

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

Qwen3-8B

Qwen3-8B

文本生成
Qwen3

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

<think>好的,用户想了解如何在Dify平台上创建文本生成应用。首先,我需要回忆一下Dify平台的相关信息,特别是用户提供的引用内容。引用[1]提到在Dify的应用创建页面上有直观的界面,支持创建各种AI应用,包括文本生成。引用[2]详细说明了文本生成助手可以用于编写故事、分类、翻译等任务,并且工作流适合内容生成等场景。 用户的需求很明确,需要一步步的教程。我应该从注册和登录开始,然后进入创建应用的步骤。需要强调选择正确的应用类型,即文本生成。接下来,配置部分可能包括选择模型、设置提示词和参数调整。这里可能需要详细说明提示词工程的重要性,比如如何编写有效的提示词来生成优质文本。 然后,测试和迭代也是关键步骤,用户可能需要知道如何通过测试来优化应用。最后,部署和集成部分应该包括发布应用和API的使用,方便用户将应用集成到自己的系统中。同时,要提醒用户参考官方文档获取最新信息,并利用Dify提供的丰富模型和可视化编排工具来提升效果。 需要确保回答结构清晰,分步骤说明,并且每个步骤都包含具体的操作指导。同时,根据用户提供的引用内容,适当引用参考资料,比如在提到模型选择时引用[^2]。还要注意使用正确的中文表达,避免技术术语过于复杂,让新手也能理解。最后,生成相关问题,帮助用户深入探索,比如优化方法和模型选择等。</think>以下是在 Dify 平台创建文本生成应用程序的详细步骤指南: ### 一、准备阶段 1. **注册/登录账户** 访问[Dify官网](https://dify.ai)并完成注册,已有账户直接登录进入控制台[^1]。 2. **创建工作区** 在控制台点击「新建工作区」,根据业务场景命名(例如"内容创作助手")。 ### 二、创建应用 1. **选择应用类型** 在「创建应用」界面选择「文本生成」类型,系统会提供预置模板(如故事生成、新闻稿撰写)。 2. **基础配置** - **命名与描述**:输入应用名称(如"智能文案生成器"),添加功能描述 - **模型选择**:从支持的模型列表中选择适合的LLM(如GPT-4、Claude-2) $$ \text{模型性能公式}:Q = \alpha \cdot \text{Accuracy} + \beta \cdot \text{Speed} $$ ### 三、核心配置 1. **提示词工程** 在「提示词编排」界面: - 定义系统角色:`你是一位专业文案编辑,擅长生成吸引眼球的营销文案` - 设置输入变量:通过`{{ }}`定义占位符(如`{{产品名称}}`、`{{目标人群}}`) - 示例: ```python "为{{产品名称}}撰写3条面向{{目标人群}}的广告语,要求:" "1. 包含核心卖点{{卖点}} 2. 不超过20字" ``` 2. **参数调优** 在「高级设置」中调整: - Temperature:0.7(创造性) - Max tokens:500 - 重复惩罚:1.2 ### 四、测试与迭代 1. **即时调试** 使用右侧预览窗口输入测试用例: ``` 产品名称:智能手表 目标人群:运动爱好者 卖点:心率监测、GPS定位 ``` 2. **版本管理** 通过「版本历史」保存不同配置,对比生成效果: | 版本 | Temperature | 输出质量 | |------|-------------|----------| | v1.0 | 0.5 | 严谨但缺乏创意 | | v1.1 | 0.7 | 平衡度最佳 | ### 五、部署与集成 1. **发布渠道** - Web端:生成专属访问链接 - API接入:获取API端点及密钥 ```bash curl -X POST "https://api.dify.ai/v1/your-app-id" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{"parameters": {...}}' ``` 2. **监控分析** 在「数据分析」面板查看: - 调用次数统计 - 平均响应时间 - 用户反馈评分 ### 六、最佳实践 1. **多场景适配** 通过分支逻辑处理不同需求: ```mermaid graph TD A[用户输入] --> B{是否指定风格?} B -->|是| C[调用创意模式] B -->|否| D[使用标准模式] ``` 2. **安全机制** - 内容过滤器设置 - 敏感词屏蔽列表 - 输出长度限制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

uncle_ll

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

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

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

打赏作者

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

抵扣说明:

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

余额充值