mirror of
https://github.com/langgenius/dify-docs.git
synced 2026-03-27 13:28:32 +07:00
689 lines
32 KiB
Plaintext
689 lines
32 KiB
Plaintext
---
|
||
title: ワークフロー
|
||
---
|
||
|
||
ワークフローアプリケーションは、セッションをサポートせず、翻訳、記事作成、要約 AI などに最適です。
|
||
|
||
### ベース URL
|
||
|
||
```text
|
||
https://api.dify.ai/v1
|
||
```
|
||
|
||
### 認証
|
||
|
||
サービス API は`API-Key`認証を使用します。
|
||
|
||
<i>
|
||
**APIキーの漏洩を防ぐため、APIキーはクライアント側で共有または保存せず、サーバー側で保存することを強くお勧めします。**
|
||
</i>
|
||
|
||
すべての API リクエストにおいて、以下のように`Authorization`HTTP ヘッダーに API キーを含めてください:
|
||
|
||
```text
|
||
Authorization: Bearer {API_KEY}
|
||
```
|
||
|
||
---
|
||
|
||
## POST /workflows/run ワークフローを実行
|
||
|
||
ワークフローを実行します。公開されたワークフローがないと実行できません。
|
||
|
||
### リクエストボディ
|
||
|
||
- `inputs` (object) 必須
|
||
アプリで定義されたさまざまな変数値の入力を許可します。
|
||
`inputs`パラメータには複数のキー/値ペアが含まれ、各キーは特定の変数に対応し、各値はその変数の特定の値です。
|
||
ワークフローアプリケーションは少なくとも 1 つのキー/値ペアの入力を必要とします。値はファイルリストである場合もあります。
|
||
ファイルリストは、テキスト理解と質問への回答を組み合わせたファイルの入力に適しています。モデルがファイルの解析と理解機能をサポートしている場合にのみ使用できます。
|
||
|
||
変数がファイルリストの場合、リストの各要素は以下の属性を持つ必要があります。
|
||
|
||
- `type` (string) サポートされているタイプ:
|
||
- `document` ('TXT', 'MD', 'MARKDOWN', 'PDF', 'HTML', 'XLSX', 'XLS', 'DOCX', 'CSV', 'EML', 'MSG', 'PPTX', 'PPT', 'XML', 'EPUB')
|
||
- `image` ('JPG', 'JPEG', 'PNG', 'GIF', 'WEBP', 'SVG')
|
||
- `audio` ('MP3', 'M4A', 'WAV', 'WEBM', 'AMR')
|
||
- `video` ('MP4', 'MOV', 'MPEG', 'MPGA')
|
||
- `custom` (他のファイルタイプ)
|
||
- `transfer_method` (string) 転送方法、画像 URL の場合は`remote_url` / ファイルアップロードの場合は`local_file`
|
||
- `url` (string) 画像 URL(転送方法が`remote_url`の場合)
|
||
- `upload_file_id` (string) アップロードされたファイル ID、事前にファイルアップロード API を通じて取得する必要があります(転送方法が`local_file`の場合)
|
||
|
||
- `response_mode` (string) 必須
|
||
応答の返却モードを指定します。サポートされているモード:
|
||
- `streaming` ストリーミングモード(推奨)、SSE([Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events))を通じてタイプライターのような出力を実装します。
|
||
- `blocking` ブロッキングモード、実行完了後に結果を返します。(プロセスが長い場合、リクエストが中断される可能性があります)
|
||
<i>
|
||
Cloudflareの制限により、100秒後に応答がない場合、リクエストは中断されます。
|
||
</i>
|
||
- `user` (string) 必須
|
||
ユーザー識別子、エンドユーザーのアイデンティティを定義するために使用されます。
|
||
アプリケーション内で開発者によって一意に定義される必要があります。
|
||
- `files` (array[object]) オプション
|
||
|
||
### 応答
|
||
|
||
`response_mode`が`blocking`の場合、CompletionResponse オブジェクトを返します。
|
||
`response_mode`が`streaming`の場合、ChunkCompletionResponse ストリームを返します。
|
||
|
||
#### CompletionResponse
|
||
|
||
アプリの結果を返します。`Content-Type`は`application/json`です。
|
||
|
||
- `workflow_run_id` (string) ワークフロー実行の一意の ID
|
||
- `task_id` (string) タスク ID、リクエスト追跡と以下の Stop Generate API に使用
|
||
- `data` (object) 結果の詳細
|
||
- `id` (string) ワークフロー実行の ID
|
||
- `workflow_id` (string) 関連するワークフローの ID
|
||
- `status` (string) 実行のステータス、`running` / `succeeded` / `failed` / `stopped`
|
||
- `outputs` (json) オプションの出力内容
|
||
- `error` (string) オプションのエラー理由
|
||
- `elapsed_time` (float) オプションの使用時間(秒)
|
||
- `total_tokens` (int) オプションの使用トークン数
|
||
- `total_steps` (int) デフォルト 0
|
||
- `created_at` (timestamp) 開始時間
|
||
- `finished_at` (timestamp) 終了時間
|
||
|
||
#### ChunkCompletionResponse
|
||
|
||
アプリによって出力されたストリームチャンクを返します。`Content-Type`は`text/event-stream`です。
|
||
各ストリーミングチャンクは`data:`で始まり、2 つの改行文字`\n\n`で区切られます。以下のように表示されます:
|
||
|
||
```text
|
||
data: {"event": "text_chunk", "workflow_run_id": "b85e5fc5-751b-454d-b14e-dc5f240b0a31", "task_id": "bd029338-b068-4d34-a331-fc85478922c2", "data": {"text": "\u4e3a\u4e86", "from_variable_selector": ["1745912968134", "text"]}}\n\n
|
||
```
|
||
|
||
ストリーミングチャンクの構造は`event`に応じて異なります:
|
||
|
||
- `event: workflow_started` ワークフローが実行を開始
|
||
- `task_id` (string) タスク ID、リクエスト追跡と以下の Stop Generate API に使用
|
||
- `workflow_run_id` (string) ワークフロー実行の一意の ID
|
||
- `event` (string) `workflow_started`に固定
|
||
- `data` (object) 詳細
|
||
- `id` (string) ワークフロー実行の一意の ID
|
||
- `workflow_id` (string) 関連するワークフローの ID
|
||
- `sequence_number` (int) 自己増加シリアル番号、アプリ内で自己増加し、1 から始まります
|
||
- `created_at` (timestamp) 作成タイムスタンプ、例:1705395332
|
||
- `event: node_started` ノード実行開始
|
||
- `task_id` (string) タスク ID、リクエスト追跡と以下の Stop Generate API に使用
|
||
- `workflow_run_id` (string) ワークフロー実行の一意の ID
|
||
- `event` (string) `node_started`に固定
|
||
- `data` (object) 詳細
|
||
- `id` (string) ワークフロー実行の一意の ID
|
||
- `node_id` (string) ノードの ID
|
||
- `node_type` (string) ノードのタイプ
|
||
- `title` (string) ノードの名前
|
||
- `index` (int) 実行シーケンス番号、トレースノードシーケンスを表示するために使用
|
||
- `predecessor_node_id` (string) オプションのプレフィックスノード ID、キャンバス表示実行パスに使用
|
||
- `inputs` (object) ノードで使用されるすべての前のノード変数の内容
|
||
- `created_at` (timestamp) 開始のタイムスタンプ、例:1705395332
|
||
- `event: text_chunk` テキストフラグメント
|
||
- `task_id` (string) タスク ID、リクエスト追跡と以下の Stop Generate API に使用
|
||
- `workflow_run_id` (string) ワークフロー実行の一意の ID
|
||
- `event` (string) `text_chunk`に固定
|
||
- `data` (object) 詳細
|
||
- `text` (string) テキスト内容
|
||
- `from_variable_selector` (array) テキスト生成元パス(開発者がどのノードのどの変数から生成されたかを理解するための情報)
|
||
- `event: node_finished` ノード実行終了、同じイベントで異なる状態で成功または失敗
|
||
- `task_id` (string) タスク ID、リクエスト追跡と以下の Stop Generate API に使用
|
||
- `workflow_run_id` (string) ワークフロー実行の一意の ID
|
||
- `event` (string) `node_finished`に固定
|
||
- `data` (object) 詳細
|
||
- `id` (string) ワークフロー実行の一意の ID
|
||
- `node_id` (string) ノードの ID
|
||
- `node_type` (string) ノードのタイプ
|
||
- `title` (string) ノードの名前
|
||
- `index` (int) 実行シーケンス番号、トレースノードシーケンスを表示するために使用
|
||
- `predecessor_node_id` (string) オプションのプレフィックスノード ID、キャンバス表示実行パスに使用
|
||
- `inputs` (object) ノードで使用されるすべての前のノード変数の内容
|
||
- `process_data` (json) オプションのノードプロセスデータ
|
||
- `outputs` (json) オプションの出力内容
|
||
- `status` (string) 実行のステータス、`running` / `succeeded` / `failed` / `stopped`
|
||
- `error` (string) オプションのエラー理由
|
||
- `elapsed_time` (float) オプションの使用時間(秒)
|
||
- `execution_metadata` (json) メタデータ
|
||
- `total_tokens` (int) オプションの使用トークン数
|
||
- `total_price` (decimal) オプションの総コスト
|
||
- `currency` (string) オプション 例:`USD` / `RMB`
|
||
- `created_at` (timestamp) 開始のタイムスタンプ、例:1705395332
|
||
- `event: workflow_finished` ワークフロー実行終了、同じイベントで異なる状態で成功または失敗
|
||
- `task_id` (string) タスク ID、リクエスト追跡と以下の Stop Generate API に使用
|
||
- `workflow_run_id` (string) ワークフロー実行の一意の ID
|
||
- `event` (string) `workflow_finished`に固定
|
||
- `data` (object) 詳細
|
||
- `id` (string) ワークフロー実行の ID
|
||
- `workflow_id` (string) 関連するワークフローの ID
|
||
- `status` (string) 実行のステータス、`running` / `succeeded` / `failed` / `stopped`
|
||
- `outputs` (json) オプションの出力内容
|
||
- `error` (string) オプションのエラー理由
|
||
- `elapsed_time` (float) オプションの使用時間(秒)
|
||
- `total_tokens` (int) オプションの使用トークン数
|
||
- `total_steps` (int) デフォルト 0
|
||
- `created_at` (timestamp) 開始時間
|
||
- `finished_at` (timestamp) 終了時間
|
||
- `event: tts_message` TTS オーディオストリームイベント、つまり音声合成出力。内容は Mp3 形式のオーディオブロックで、base64 文字列としてエンコードされています。再生時には、base64 をデコードしてプレーヤーに入力するだけです。(このメッセージは自動再生が有効な場合にのみ利用可能)
|
||
- `task_id` (string) タスク ID、リクエスト追跡と以下の停止応答インターフェースに使用
|
||
- `message_id` (string) 一意のメッセージ ID
|
||
- `audio` (string) 音声合成後のオーディオ、base64 テキストコンテンツとしてエンコードされており、再生時には base64 をデコードしてプレーヤーに入力するだけです
|
||
- `created_at` (int) 作成タイムスタンプ、例:1705395332
|
||
- `event: tts_message_end` TTS オーディオストリーム終了イベント。このイベントを受信すると、オーディオストリームの終了を示します。
|
||
- `task_id` (string) タスク ID、リクエスト追跡と以下の停止応答インターフェースに使用
|
||
- `message_id` (string) 一意のメッセージ ID
|
||
- `audio` (string) 終了イベントにはオーディオがないため、これは空の文字列です
|
||
- `created_at` (int) 作成タイムスタンプ、例:1705395332
|
||
- `event: ping` 接続を維持するために 10 秒ごとに送信される Ping イベント。
|
||
|
||
### エラー
|
||
|
||
- 400, `invalid_param`, 異常なパラメータ入力
|
||
- 400, `app_unavailable`, アプリの設定が利用できません
|
||
- 400, `provider_not_initialize`, 利用可能なモデル資格情報の設定がありません
|
||
- 400, `provider_quota_exceeded`, モデル呼び出しのクォータが不足しています
|
||
- 400, `model_currently_not_support`, 現在のモデルは利用できません
|
||
- 400, `workflow_request_error`, ワークフロー実行に失敗しました
|
||
- 500, 内部サーバーエラー
|
||
|
||
<CodeGroup>
|
||
```bash Request
|
||
curl -X POST 'https://api.dify.ai/v1/workflows/run' \
|
||
--header 'Authorization: Bearer {api_key}' \
|
||
--header 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"inputs": {},
|
||
"response_mode": "streaming",
|
||
"user": "abc-123"
|
||
}'
|
||
```
|
||
</CodeGroup>
|
||
|
||
### ファイル変数の例
|
||
|
||
```json example.json
|
||
{
|
||
"inputs": {
|
||
"{variable_name}": [
|
||
{
|
||
"transfer_method": "local_file",
|
||
"upload_file_id": "{upload_file_id}",
|
||
"type": "{document_type}"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
<CodeGroup>
|
||
#### ブロッキングモード応答
|
||
```json Response
|
||
{
|
||
"workflow_run_id": "djflajgkldjgd",
|
||
"task_id": "9da23599-e713-473b-982c-4328d4f5c78a",
|
||
"data": {
|
||
"id": "fdlsjfjejkghjda",
|
||
"workflow_id": "fldjaslkfjlsda",
|
||
"status": "succeeded",
|
||
"outputs": {
|
||
"text": "Nice to meet you."
|
||
},
|
||
"error": null,
|
||
"elapsed_time": 0.875,
|
||
"total_tokens": 3562,
|
||
"total_steps": 8,
|
||
"created_at": 1705407629,
|
||
"finished_at": 1727807631
|
||
}
|
||
}
|
||
```
|
||
#### ストリーミングモード応答
|
||
```text StreamingResponse
|
||
data: {"event": "workflow_started", "task_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "workflow_run_id": "5ad498-f0c7-4085-b384-88cbe6290", "data": {"id": "5ad498-f0c7-4085-b384-88cbe6290", "workflow_id": "dfjasklfjdslag", "sequence_number": 1, "created_at": 1679586595}}
|
||
data: {"event": "node_started", "task_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "workflow_run_id": "5ad498-f0c7-4085-b384-88cbe6290", "data": {"id": "5ad498-f0c7-4085-b384-88cbe6290", "node_id": "dfjasklfjdslag", "node_type": "start", "title": "Start", "index": 0, "predecessor_node_id": "fdljewklfklgejlglsd", "inputs": {}, "created_at": 1679586595}}
|
||
data: {"event": "node_finished", "task_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "workflow_run_id": "5ad498-f0c7-4085-b384-88cbe6290", "data": {"id": "5ad498-f0c7-4085-b384-88cbe6290", "node_id": "dfjasklfjdslag", "node_type": "start", "title": "Start", "index": 0, "predecessor_node_id": "fdljewklfklgejlglsd", "inputs": {}, "outputs": {}, "status": "succeeded", "elapsed_time": 0.324, "execution_metadata": {"total_tokens": 63127864, "total_price": 2.378, "currency": "USD"}, "created_at": 1679586595}}
|
||
data: {"event": "workflow_finished", "task_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "workflow_run_id": "5ad498-f0c7-4085-b384-88cbe6290", "data": {"id": "5ad498-f0c7-4085-b384-88cbe6290", "workflow_id": "dfjasklfjdslag", "outputs": {}, "status": "succeeded", "elapsed_time": 0.324, "total_tokens": 63127864, "total_steps": "1", "created_at": 1679586595, "finished_at": 1679976595}}
|
||
data: {"event": "tts_message", "conversation_id": "23dd85f3-1a41-4ea0-b7a9-062734ccfaf9", "message_id": "a8bdc41c-13b2-4c18-bfd9-054b9803038c", "created_at": 1721205487, "task_id": "3bf8a0bb-e73b-4690-9e66-4e429bad8ee7", "audio": "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq"}
|
||
data: {"event": "tts_message_end", "conversation_id": "23dd85f3-1a41-4ea0-b7a9-062734ccfaf9", "message_id": "a8bdc41c-13b2-4c18-bfd9-054b9803038c", "created_at": 1721205487, "task_id": "3bf8a0bb-e73b-4690-9e66-4e429bad8ee7", "audio": ""}
|
||
```
|
||
</CodeGroup>
|
||
|
||
### ファイルアップロードのサンプルコード
|
||
|
||
```python example_upload.py
|
||
import requests
|
||
import json
|
||
|
||
def upload_file(file_path, user):
|
||
upload_url = "https://api.dify.ai/v1/files/upload"
|
||
headers = {
|
||
"Authorization": "Bearer app-xxxxxxxx", # あなたのAPIキーに置き換えてください
|
||
}
|
||
|
||
try:
|
||
print("ファイルをアップロードしています...")
|
||
with open(file_path, 'rb') as file:
|
||
files = {
|
||
'file': (file_path, file, 'text/plain') # ファイルが適切な MIME タイプでアップロードされていることを確認してください
|
||
}
|
||
data = {
|
||
"user": user,
|
||
"type": "TXT" # ファイルタイプをTXTに設定します (必要に応じて変更)
|
||
}
|
||
|
||
response = requests.post(upload_url, headers=headers, files=files, data=data)
|
||
if response.status_code == 201: # 201 は作成が成功したことを意味します
|
||
print("ファイルが正常にアップロードされました")
|
||
return response.json().get("id") # アップロードされたファイルIDを取得する
|
||
else:
|
||
print(f"ファイルのアップロードに失敗しました。ステータス コード: {response.status_code}, 応答: {response.text}")
|
||
return None
|
||
except Exception as e:
|
||
print(f"エラーが発生しました: {str(e)}")
|
||
return None
|
||
|
||
def run_workflow(file_id, user, response_mode="blocking"):
|
||
workflow_url = "https://api.dify.ai/v1/workflows/run"
|
||
headers = {
|
||
"Authorization": "Bearer app-xxxxxxxxx", # あなたのAPIキーに置き換えてください
|
||
"Content-Type": "application/json"
|
||
}
|
||
|
||
# `orig_mail` はワークフローで定義された変数名です。実際の変数名に置き換えてください。
|
||
data = {
|
||
"inputs": {
|
||
"orig_mail": [{ # このキーはワークフローの入力変数名と一致する必要があります
|
||
"transfer_method": "local_file",
|
||
"upload_file_id": file_id,
|
||
"type": "document" # アップロードしたファイルのタイプに合わせてください
|
||
}]
|
||
},
|
||
"response_mode": response_mode,
|
||
"user": user
|
||
}
|
||
|
||
try:
|
||
print("ワークフローを実行...")
|
||
response = requests.post(workflow_url, headers=headers, json=data)
|
||
if response.status_code == 200:
|
||
print("ワークフローが正常に実行されました")
|
||
return response.json()
|
||
else:
|
||
print(f"ワークフローの実行がステータス コードで失敗しました: {response.status_code}, 応答: {response.text}")
|
||
return {"status": "error", "message": f"Failed to execute workflow, status code: {response.status_code}, response: {response.text}"}
|
||
except Exception as e:
|
||
print(f"エラーが発生しました: {str(e)}")
|
||
return {"status": "error", "message": str(e)}
|
||
|
||
# 使用例
|
||
# file_path = "{your_file_path}" # アップロードするファイルのパスに置き換えてください
|
||
# user = "difyuser" # ユーザーIDに置き換えてください
|
||
|
||
# # ファイルをアップロードする
|
||
# file_id = upload_file(file_path, user)
|
||
# if file_id:
|
||
# # ファイルは正常にアップロードされました。ワークフローの実行を続行します
|
||
# result = run_workflow(file_id, user)
|
||
# print(result)
|
||
# else:
|
||
# print("ファイルのアップロードに失敗し、ワークフローを実行できません")
|
||
```
|
||
|
||
---
|
||
|
||
## GET /workflows/run/:workflow_id ワークフロー実行詳細を取得
|
||
|
||
ワークフロー実行 ID に基づいて、ワークフロータスクの現在の実行結果を取得します。
|
||
|
||
### パスパラメータ
|
||
|
||
- `workflow_id` (string) ワークフロー ID、ストリーミングチャンクの返り値から取得可能
|
||
|
||
### 応答
|
||
|
||
- `id` (string) ワークフロー実行の ID
|
||
- `workflow_id` (string) 関連するワークフローの ID
|
||
- `status` (string) 実行のステータス、`running` / `succeeded` / `failed` / `stopped`
|
||
- `inputs` (json) 入力内容
|
||
- `outputs` (json) 出力内容
|
||
- `error` (string) エラー理由
|
||
- `total_steps` (int) タスクの総ステップ数
|
||
- `total_tokens` (int) 使用されるトークンの総数
|
||
- `created_at` (timestamp) 開始時間
|
||
- `finished_at` (timestamp) 終了時間
|
||
- `elapsed_time` (float) 使用される総秒数
|
||
|
||
<CodeGroup>
|
||
```bash Request curl -X GET
|
||
'https://api.dify.ai/v1/workflows/run/:workflow_id' \ -H 'Authorization:
|
||
Bearer {api_key}' \ -H 'Content-Type: application/json' ```
|
||
</CodeGroup>
|
||
|
||
<CodeGroup>
|
||
```json Response
|
||
{
|
||
"id": "b1ad3277-089e-42c6-9dff-6820d94fbc76",
|
||
"workflow_id": "19eff89f-ec03-4f75-b0fc-897e7effea02",
|
||
"status": "succeeded",
|
||
"inputs": "{\"sys.files\": [], \"sys.user_id\": \"abc-123\"}",
|
||
"outputs": null,
|
||
"error": null,
|
||
"total_steps": 3,
|
||
"total_tokens": 0,
|
||
"created_at": 1705407629,
|
||
"finished_at": 1727807631,
|
||
"elapsed_time": 30.098514399956912
|
||
}
|
||
```
|
||
</CodeGroup>
|
||
|
||
---
|
||
|
||
## POST /workflows/tasks/:task_id/stop 生成を停止
|
||
|
||
ストリーミングモードでのみサポートされています。
|
||
|
||
### パスパラメータ
|
||
|
||
- `task_id` (string) タスク ID、ストリーミングチャンクの返り値から取得可能
|
||
|
||
### リクエストボディ
|
||
|
||
- `user` (string) 必須
|
||
ユーザー識別子、エンドユーザーのアイデンティティを定義するために使用され、送信メッセージインターフェースで渡されたユーザーと一致している必要があります。
|
||
|
||
### 応答
|
||
|
||
- `result` (string) 常に"success"を返します
|
||
|
||
<CodeGroup>
|
||
```bash Request
|
||
curl -X POST 'https://api.dify.ai/v1/workflows/tasks/:task_id/stop' \
|
||
-H 'Authorization: Bearer {api_key}' \
|
||
-H 'Content-Type: application/json' \
|
||
--data-raw '{
|
||
"user": "abc-123"
|
||
}'
|
||
```
|
||
</CodeGroup>
|
||
|
||
<CodeGroup>
|
||
```json Response
|
||
{
|
||
"result": "success"
|
||
}
|
||
```
|
||
</CodeGroup>
|
||
|
||
---
|
||
|
||
## POST /files/upload ファイルアップロード
|
||
|
||
メッセージ送信時に使用するためのファイルをアップロードし、画像とテキストのマルチモーダル理解を可能にします。
|
||
ワークフローでサポートされている任意の形式をサポートします。
|
||
アップロードされたファイルは、現在のエンドユーザーのみが使用できます。
|
||
|
||
### リクエストボディ
|
||
|
||
このインターフェースは`multipart/form-data`リクエストを必要とします。
|
||
|
||
- `file` (File) 必須
|
||
アップロードするファイル。
|
||
- `user` (string) 必須
|
||
ユーザー識別子、開発者のルールで定義され、アプリケーション内で一意でなければなりません。
|
||
|
||
### 応答
|
||
|
||
アップロードが成功すると、サーバーはファイルの ID と関連情報を返します。
|
||
|
||
- `id` (uuid) ID
|
||
- `name` (string) ファイル名
|
||
- `size` (int) ファイルサイズ(バイト)
|
||
- `extension` (string) ファイル拡張子
|
||
- `mime_type` (string) ファイルの MIME タイプ
|
||
- `created_by` (uuid) エンドユーザー ID
|
||
- `created_at` (timestamp) 作成タイムスタンプ、例:1705395332
|
||
|
||
### エラー
|
||
|
||
- 400, `no_file_uploaded`, ファイルが提供されていません
|
||
- 400, `too_many_files`, 現在は 1 つのファイルのみ受け付けています
|
||
- 400, `unsupported_preview`, ファイルはプレビューをサポートしていません
|
||
- 400, `unsupported_estimate`, ファイルは推定をサポートしていません
|
||
- 413, `file_too_large`, ファイルが大きすぎます
|
||
- 415, `unsupported_file_type`, サポートされていない拡張子、現在はドキュメントファイルのみ受け付けています
|
||
- 503, `s3_connection_failed`, S3 サービスに接続できません
|
||
- 503, `s3_permission_denied`, S3 にファイルをアップロードする権限がありません
|
||
- 503, `s3_file_too_large`, ファイルが S3 のサイズ制限を超えています
|
||
- 500, 内部サーバーエラー
|
||
|
||
<CodeGroup>
|
||
```bash Request curl -X POST 'https://api.dify.ai/v1/files/upload' \
|
||
--header 'Authorization: Bearer {api_key}' \ --form
|
||
'file=@"/path/to/your/file.txt"' \ --form 'user="abc-123"' ```
|
||
</CodeGroup>
|
||
|
||
<CodeGroup>
|
||
```json Response
|
||
{
|
||
"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
|
||
}
|
||
```
|
||
</CodeGroup>
|
||
|
||
---
|
||
|
||
## GET /workflows/logs ワークフローログを取得
|
||
|
||
ワークフローログを返します。最初のページは最新の`{limit}`メッセージを返します。つまり、逆順です。
|
||
|
||
### クエリパラメータ
|
||
|
||
- `keyword` (string, optional): 検索するキーワード
|
||
- `status` (string, optional): フィルタリングするステータス (`succeeded`/`failed`/`stopped`)
|
||
- `page` (int, optional): 現在のページ、デフォルトは 1。
|
||
- `limit` (int, optional): 1 回のリクエストで返すチャット履歴メッセージの数、デフォルトは 20。
|
||
|
||
### 応答
|
||
|
||
- `page` (int) 現在のページ
|
||
- `limit` (int) 返されたアイテムの数、入力がシステム制限を超える場合、システム制限量を返します
|
||
- `total` (int) 合計アイテム数
|
||
- `has_more` (bool) 次のページがあるかどうか
|
||
- `data` (array[object]) ログリスト
|
||
- `id` (string) ID
|
||
- `workflow_run` (object) ワークフロー実行
|
||
- `id` (string) ID
|
||
- `version` (string) バージョン
|
||
- `status` (string) 実行のステータス、`running` / `succeeded` / `failed` / `stopped`
|
||
- `error` (string) オプションのエラー理由
|
||
- `elapsed_time` (float) 使用される総秒数
|
||
- `total_tokens` (int) 使用されるトークン数
|
||
- `total_steps` (int) デフォルト 0
|
||
- `created_at` (timestamp) 開始時間
|
||
- `finished_at` (timestamp) 終了時間
|
||
- `created_from` (string) 作成元
|
||
- `created_by_role` (string) 作成者の役割
|
||
- `created_by_account` (string) オプションの作成者アカウント
|
||
- `created_by_end_user` (object) エンドユーザーによって作成
|
||
- `id` (string) ID
|
||
- `type` (string) タイプ
|
||
- `is_anonymous` (bool) 匿名かどうか
|
||
- `session_id` (string) セッション ID
|
||
- `created_at` (timestamp) 作成時間
|
||
|
||
<CodeGroup>
|
||
```bash Request curl -X GET 'https://api.dify.ai/v1/workflows/logs?limit=1'
|
||
\ --header 'Authorization: Bearer {api_key}' ```
|
||
</CodeGroup>
|
||
|
||
<CodeGroup>
|
||
```json Response
|
||
{
|
||
"page": 1,
|
||
"limit": 1,
|
||
"total": 7,
|
||
"has_more": true,
|
||
"data": [
|
||
{
|
||
"id": "e41b93f1-7ca2-40fd-b3a8-999aeb499cc0",
|
||
"workflow_run": {
|
||
"id": "c0640fc8-03ef-4481-a96c-8a13b732a36e",
|
||
"version": "2024-08-01 12:17:09.771832",
|
||
"status": "succeeded",
|
||
"error": null,
|
||
"elapsed_time": 1.3588523610014818,
|
||
"total_tokens": 0,
|
||
"total_steps": 3,
|
||
"created_at": 1726139643,
|
||
"finished_at": 1726139644
|
||
},
|
||
"created_from": "service-api",
|
||
"created_by_role": "end_user",
|
||
"created_by_account": null,
|
||
"created_by_end_user": {
|
||
"id": "7f7d9117-dd9d-441d-8970-87e5e7e687a3",
|
||
"type": "service_api",
|
||
"is_anonymous": false,
|
||
"session_id": "abc-123"
|
||
},
|
||
"created_at": 1726139644
|
||
}
|
||
]
|
||
}
|
||
```
|
||
</CodeGroup>
|
||
|
||
---
|
||
|
||
## GET /info アプリケーションの基本情報を取得
|
||
|
||
このアプリケーションの基本情報を取得するために使用されます
|
||
|
||
### 応答
|
||
|
||
- `name` (string) アプリケーションの名前
|
||
- `description` (string) アプリケーションの説明
|
||
- `tags` (array[string]) アプリケーションのタグ
|
||
|
||
<CodeGroup>
|
||
```bash Request curl -X GET 'https://api.dify.ai/v1/info' \ -H
|
||
'Authorization: Bearer {api_key}' ```
|
||
</CodeGroup>
|
||
|
||
<CodeGroup>
|
||
```json Response
|
||
{
|
||
"name": "My App",
|
||
"description": "This is my app.",
|
||
"tags": [
|
||
"tag1",
|
||
"tag2"
|
||
]
|
||
}
|
||
```
|
||
</CodeGroup>
|
||
|
||
---
|
||
|
||
## GET /parameters アプリケーションのパラメータ情報を取得
|
||
|
||
ページに入る際に、機能、入力パラメータ名、タイプ、デフォルト値などの情報を取得するために使用されます。
|
||
|
||
### 応答
|
||
|
||
- `user_input_form` (array[object]) ユーザー入力フォームの設定
|
||
- `text-input` (object) テキスト入力コントロール
|
||
- `label` (string) 変数表示ラベル名
|
||
- `variable` (string) 変数 ID
|
||
- `required` (bool) 必須かどうか
|
||
- `default` (string) デフォルト値
|
||
- `paragraph` (object) 段落テキスト入力コントロール
|
||
- `label` (string) 変数表示ラベル名
|
||
- `variable` (string) 変数 ID
|
||
- `required` (bool) 必須かどうか
|
||
- `default` (string) デフォルト値
|
||
- `select` (object) ドロップダウンコントロール
|
||
- `label` (string) 変数表示ラベル名
|
||
- `variable` (string) 変数 ID
|
||
- `required` (bool) 必須かどうか
|
||
- `default` (string) デフォルト値
|
||
- `options` (array[string]) オプション値
|
||
- `file_upload` (object) ファイルアップロード設定
|
||
- `image` (object) 画像設定
|
||
現在サポートされている画像タイプのみ:`png`, `jpg`, `jpeg`, `webp`, `gif`
|
||
- `enabled` (bool) 有効かどうか
|
||
- `number_limits` (int) 画像数の制限、デフォルトは 3
|
||
- `transfer_methods` (array[string]) 転送方法のリスト、remote_url, local_file、いずれかを選択する必要があります
|
||
- `system_parameters` (object) システムパラメータ
|
||
- `file_size_limit` (int) ドキュメントアップロードサイズ制限(MB)
|
||
- `image_file_size_limit` (int) 画像ファイルアップロードサイズ制限(MB)
|
||
- `audio_file_size_limit` (int) オーディオファイルアップロードサイズ制限(MB)
|
||
- `video_file_size_limit` (int) ビデオファイルアップロードサイズ制限(MB)
|
||
|
||
<CodeGroup>
|
||
```bash Request curl -X GET 'https://api.dify.ai/v1/parameters' \ --header
|
||
'Authorization: Bearer {api_key}' ```
|
||
</CodeGroup>
|
||
|
||
<CodeGroup>
|
||
```json Response
|
||
{
|
||
"user_input_form": [
|
||
{
|
||
"paragraph": {
|
||
"label": "Query",
|
||
"variable": "query",
|
||
"required": true,
|
||
"default": ""
|
||
}
|
||
}
|
||
],
|
||
"file_upload": {
|
||
"image": {
|
||
"enabled": false,
|
||
"number_limits": 3,
|
||
"detail": "high",
|
||
"transfer_methods": [
|
||
"remote_url",
|
||
"local_file"
|
||
]
|
||
}
|
||
},
|
||
"system_parameters": {
|
||
"file_size_limit": 15,
|
||
"image_file_size_limit": 10,
|
||
"audio_file_size_limit": 50,
|
||
"video_file_size_limit": 100
|
||
}
|
||
}
|
||
```
|
||
</CodeGroup>
|
||
|
||
{/*
|
||
Contributing Section
|
||
DO NOT edit this section!
|
||
It will be automatically generated by the script.
|
||
*/}
|
||
|
||
<CardGroup cols="2">
|
||
<Card
|
||
title="Edit this page"
|
||
icon="pen-to-square"
|
||
href="https://github.com/langgenius/dify-docs-mintlify/edit/main/api_access/workflow.ja.mdx"
|
||
>
|
||
Help improve our documentation by contributing directly
|
||
</Card>
|
||
<Card
|
||
title="Report an issue"
|
||
icon="github"
|
||
href="https://github.com/langgenius/dify-docs-mintlify/issues/new?title=Documentation%20Issue%3A%20low&body=%23%23%20Issue%20Description%0A%3C%21--%20Please%20briefly%20describe%20the%20issue%20you%20found%20--%3E%0A%0A%23%23%20Page%20Link%0Ahttps%3A%2F%2Fgithub.com%2Flanggenius%2Fdify-docs-mintlify%2Fblob%2Fmain%2Fapi_access%2Fworkflow.ja.mdx%0A%0A%23%23%20Suggested%20Changes%0A%3C%21--%20If%20you%20have%20specific%20suggestions%20for%20changes%2C%20please%20describe%20them%20here%20--%3E%0A%0A%3C%21--%20Thank%20you%20for%20helping%20improve%20our%20documentation%21%20--%3E"
|
||
>
|
||
Found an error or have suggestions? Let us know
|
||
</Card>
|
||
</CardGroup>
|