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.pswp.cn/diannao/92396.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92396.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92396.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Leetcode 3620. Network Recovery Pathways

Leetcode 3620. Network Recovery Pathways 1. 解題思路2. 代碼實現 題目鏈接:3620. Network Recovery Pathways 1. 解題思路 這一題我最開始想的是遍歷一下所有的網絡路徑,不過遇到了超時的情況。因此后來調整了一下處理思路,使用二分法的…

鏈路備份技術(鏈路聚合、RSTP)

一、鏈路聚合!鏈路備份技術之一-----鏈路聚合(Link Aggregation)被視為鏈路備份技術,核心原因在于它能通過多條物理鏈路的捆綁,實現 “一條鏈路故障時,其他鏈路自動接管流量” 的冗余備份效果,同…

PyTorch新手實操 安裝

PyTorch簡介 PyTorch 是一個基于 Python 的開源深度學習框架,由 Meta AI(原 Facebook AI)主導開發,以動態計算圖(Define-by-Run)為核心,支持靈活構建和訓練神經網絡模型。其設計理念高度契合科…

Element Plus Table 組件擴展:表尾合計功能詳解

前言在現代數據驅動的社會中,數據分析和統計成為了非常重要的任務。為了更有效地分析數據和展示統計結果,前端開發人員可以使用Vue框架和Element Plus組件庫來實現數據的統計和分析功能。以下是一個關于如何在 Element Plus 的 el-table 組件中實現行匯總…

神經網絡 非線性激活層 正則化層 線性層

神經網絡 非線性激活層 作用:增強模型的非線性擬合能力 非線性激活層網絡: class activateNet(nn.Module):def __init__(self):super(activateNet,self).__init__()self.relu nn.ReLU()self.sigmoid nn.Sigmoid()def forward(self,input):#output sel…

【Vue進階學習筆記】組件通信專題精講

目錄前言props 父傳子原理說明使用場景代碼示例父組件 PropsTest.vue子組件 Child.vue自定義事件 $emit 子傳父原理說明使用場景代碼示例父組件 EventTest.vue子組件 Event2.vueEvent Bus 兄弟/跨層通信原理說明使用場景代碼示例事件總線 bus/index.ts兄弟組件通信示例Child2.v…

【PTA數據結構 | C語言版】求最小生成樹的Prim算法

本專欄持續輸出數據結構題目集,歡迎訂閱。 文章目錄題目代碼題目 請編寫程序,實現在帶權的無向圖中求最小生成樹的 Prim 算法。 注意:當多個待收錄頂點到當前點集的距離等長時,按編號升序進行收錄。 輸入格式: 輸入首…

【加解密與C】Rot系列(四)RotSpecial

RotSpecial 函數解析RotSpecial 是一個自定義函數,通常用于處理特定的旋轉操作,尤其在圖形變換或數據處理中。該函數可能涉及歐拉角、四元數或其他旋轉表示方法,具體行為取決于實現上下文。以下是關于該函數的通用解釋和可能的使用方法&#…

【機器學習深度學習】LLaMAFactory中的精度訓練選擇——bf16、fp16、fp32與pure_bf16深度解析

目錄 前言 一、 為什么精度如此重要?—— 內存、速度與穩定性的三角博弈 二、 四大精度/模式詳解: bf16, fp16, fp32, pure_bf16 三、 關鍵特性對比表 ▲四大計算類型核心對比表 ▲ 顯存占用對比示例(175B參數模型) ▲LLa…

C# 基于halcon的視覺工作流-章21-點查找

C# 基于halcon的視覺工作流-章21-點查找 本章目標: 一、檢測顯著點; 二、Harris檢測興趣點; 三、Harris二項式檢測興趣點; 四、Sojka運算符檢測角點; 五、Lepetit算子檢測興趣點;一、檢測顯著點 halcon算子…

(11)機器學習小白入門YOLOv:YOLOv8-cls epochs與數據量的關系

YOLOv8-cls epochs與數據量的關系 (1)機器學習小白入門YOLOv :從概念到實踐 (2)機器學習小白入門 YOLOv:從模塊優化到工程部署 (3)機器學習小白入門 YOLOv: 解鎖圖片分類新技能 (4)機器學習小白入門YOLOv :圖片標注實操手冊 (5)機…

Grafana | 如何將 11.x 升級快速到最新 12.x 版本?

[ 知識是人生的燈塔,只有不斷學習,才能照亮前行的道路 ]📢 大家好,我是 WeiyiGeek,一名深耕安全運維開發(SecOpsDev)領域的技術從業者,致力于探索DevOps與安全的融合(Dev…

Dubbo + Spring Boot + Zookeeper 快速搭建分布式服務

Dubbo Spring Boot Zookeeper 快速搭建分布式服務 本文將詳細介紹如何基于 Dubbo、Spring Boot 和 Zookeeper 快速搭建一個簡單的分布式服務調用場景,包含服務提供者(Provider)、服務消費者(Consumer)及公共接口&…

五分鐘掌握 TDengine 數據文件的工作原理

小 T 導讀:今天我們來探討一下——TDengine中的時序數據到底是如何存儲的? 在上一期的文章《五分鐘掌握 TDengine 時序數據的保留策略》中,我們知道了TDengine是如何按照時間段對數據進行分區來管理數據的。 接下來,我們和大家一起…

Python爬蟲實戰:研究http-parser庫相關技術

一、研究背景與意義 在當今數字化時代,網絡數據蘊含著巨大的價值。從商業決策、學術研究到社會治理,對海量網絡信息的有效采集與分析至關重要。網絡爬蟲作為數據獲取的核心工具,其性能與穩定性直接影響數據質量。然而,隨著互聯網技術的發展,網站反爬機制不斷升級,傳統爬…

Go語言實戰案例-批量重命名文件

在《Go語言100個實戰案例》中的 文件與IO操作篇 - 案例17:批量重命名文件 的完整內容,適合初學者實踐如何使用 Go 操作文件系統并批量處理文件名。🎯 案例目標實現一個小工具,能夠批量重命名指定目錄下的所有文件,例如…

基于單片機非接觸紅外測溫系統

傳送門 👉👉👉👉其他作品題目速選一覽表 👉👉👉👉其他作品題目功能速覽 概述 本設計實現了一種基于單片機的非接觸式紅外測溫系統,適用于快速、安全測量物體表面溫…

Python 入門手札:從 0 到會--第十天Python常用的第三方庫Numpy,Pandas,Matplotlib

目錄 一、Numpy 1.NumPy 是什么? 1.1安裝numpy 1.2 導入numpy模塊 2.NumPy 的核心:ndarray 2.1 什么是 ndarray? 2.2 ndarray 的創建方式 2.3 常見屬性(用于查看數組結構) 2.4 ndarray 的切片與索引 2.5 ndarr…

mysql 性能優化之Explain講解

EXPLAIN是 MySQL 中用于分析查詢執行計劃的重要工具,通過它可以查看查詢如何使用索引、掃描數據的方式以及表連接順序等信息,從而找出性能瓶頸。以下是關于EXPLAIN的詳細介紹和實戰指南:1. EXPLAIN 基本用法在SELECT、INSERT、UPDATE、DELETE…

Redis 連接:深度解析與最佳實踐

Redis 連接:深度解析與最佳實踐 引言 Redis 作為一款高性能的內存數據結構存儲系統,在當今的互聯網應用中扮演著越來越重要的角色。高效的 Redis 連接管理對于保證系統的穩定性和性能至關重要。本文將深入探討 Redis 連接的原理、配置以及最佳實踐,幫助讀者更好地理解和應…