mirror of
https://github.com/langgenius/dify-docs.git
synced 2026-07-22 20:36:31 -04:00
32e1b169da
* docs: correct HITL API integration flow and sync translations
- Fix the claim that the resume endpoint differs per app type (same
endpoint; only the entry endpoint differs)
- Tie workflow_run_id guidance to the human_input_required event
(chatflow message chunks don't carry it)
- Require the same user when resuming the event stream (mismatch
returns 404); add include_state_snapshot and continue_on_pause
guidance
- Note at the capture step that a null form_token means Email delivery
- Soften the upload-time validation claim to file size limits
- Split long paragraphs; align zh endpoint name with the reference page
* fix: correct API references against verified backend behavior
Audit of the Service API specs against dify hotfix/1.15.0-fix.1, with
every change code-verified and the serious items adversarially
confirmed. Applies to en/zh/ja.
- Add curl samples for GET endpoints with required query params
(Mintlify omits query params from generated snippets)
- Document 401 once in every spec's auth scheme description
- Correct wrong facts: workflow run detail returns inputs as a JSON
string; DELETE /conversations requires a JSON body; audio-to-text
accepts audio/{mp3,m4a,wav,amr,mpga} by MIME type; workflow log
created_by_account filters by email; triggered_from values are
app-run/webhook/schedule/plugin; stop endpoints' user semantics
differ per app type
- Remove unreachable docs: phantom text_replace SSE event, annotation
403, file preview endpoint in the workflow spec, invented
score_threshold bounds
- Make upload user optional (DEFAULT-USER fallback), fix upload
response example, add missing invalid_param error
- Declare text_to_speech.autoPlay in parameters responses (prose
values, no response-field enums)
* fix: complete API reference audit for knowledge and completion specs
* feat: add API spec consolidation pipeline
Phase-1 of the API docs consolidation: tooling that merges the five per-app-type Service API specs into one openapi_service.json per language, with every divergence resolved explicitly in resolutions.json and rendering-preserving namespacing for mode-scoped schema families. Includes the audit lint and parity checks (lint taught the new language-prefixed href scheme), hand-merged mode-aware SSE documentation for POST /chat-messages in en/zh/ja, and the New Agent (Beta) virtual nav group with code-verified mode notes.
* feat: consolidate API reference into one spec per language
Emit {en,zh,ja}/api-reference/openapi_service.json (82 ops, 130 components) from the audit-fixed per-app-type specs; wire docs.json to them with explicit per-app-type endpoint lists, x-mint.href URLs (/{lang}/api-reference/{tag}/{summary} with shared English slugs for in-place language switching), 265 redirects covering the legacy en and CJK URLs, per-app-type overview pages including New Agent (Beta), and rewritten legacy API links in 21 MDX bodies. The old five specs per language stay as pipeline input; they are no longer rendered.
* fix: remove dead conversation_completed error from chat specs
ConversationCompletedError is never raised anywhere at the verified 1.15.0 ref (7a4252b3de): controllers catch it, but no service code raises it, so the documented 400 conversation_completed can never fire. Remove the bullet and example from the chat and chatflow /chat-messages docs in en/zh/ja. Found and adversarially confirmed during the New Agent (PR #836) verification; filed on the upstream bug list.
* feat: add membership matrix and restructure nav config
* feat: rename resource tags and update all references
* feat: stamp per-operation availability lines
* feat: wire three-group API navigation
* feat: add app-type page coverage lint
* docs: rewrite chatflow overview as app-type API guide
* docs: polish chatflow overview zh and ja wording
* docs: rewrite workflow overview as app-type API guide
* docs: align workflow overview details across languages
* docs: expand new agent overview into app-type API guide
* docs: use task-oriented heading on new agent overview
* docs: rewrite chatbot and agent overview as app-type API guide
* docs: rewrite text generator overview as app-type API guide
* docs: match end user link text to merged spec summary
* docs: rewrite knowledge overview as app-type API guide
* docs: move knowledge api guide into api reference
* docs: localize ui labels on knowledge overview
* docs: refresh pipeline readme for restructure modes
* docs: name app-type pages in the guides sidebar
* feat: rename zh completion messages tag to match resource framing
* docs: prototype endpoints-first layout on chatflow overview
* docs: correct detail accuracy on chatflow overview
* docs: move human input flow guide into api reference
Move the shared HITL API integration walkthrough from its six per-product
copies into {en,zh,ja}/api-reference/guides/human-input-flow as the first
task guide in the API docs. Guides gains an App Types subgroup (expanded
by default) with the flow guide after it; six redirects cover the old
paths; the Human Input node docs and the chatflow overview link to the
new home.
* fix: update spec links to the moved human input guide
* fix: let spec lint accept mdx guide pages under api-reference
* docs: align chatflow zh and ja overviews to endpoints-first layout
* docs: polish chatflow zh and ja mode terms and hitl wording
* docs: align workflow overviews to endpoints-first layout
* docs: document form expiry path in human input flow guide
* docs: align new agent overviews to endpoints-first layout
* docs: align chatbot and agent overviews to endpoints-first layout
* docs: align text generator overviews to endpoints-first layout
* docs: align knowledge overviews to endpoints-first layout
* docs: correct built-in metadata examples and agent heading
* docs: flatten app-type pages directly under guides
* docs: make guide pages self-contained and trim reference detail
* docs: add get started guide and retire developing-with-apis
* docs: update new agent api behavior for latest main
New Agent behavior re-verified against dify origin/main (f3ba2846):
agent_thought events now stream through the Service API carrying the
model's reasoning steps and tool calls; a new agent_not_published 400
fires on Send Chat Message and Get App Parameters; the files claim is
softened to contents-not-processed (raw references now reach the prompt;
runtime confirmation pending). Streaming-only, message_end metadata, and
the endpoint surface are unchanged.
* docs: audit fixes for get started and human input flow guides
* docs: fix em dash spacing and ja sentence length in get started
* docs: move message_end note to the send endpoint line
* docs: update writing guides and API skill for app-type naming
- Glossary and zh/ja translation guides: Workflow and Chatflow app types stay English (Workflow 应用 / Chatflow アプリ); lowercase workflow localizes to 工作流 / ワークフロー.
- formatting-guide: API reference links use the language prefix with English slugs.
- dify-docs-api-reference skill: Spec Structure documents source specs merged into openapi_service.json by the pipeline.
* feat: add operation sidebar titles and simplify API redirects
- merge_specs stamps x-mint.metadata.sidebarTitle per operation so translated summaries show in the sidebar.
- Redirects reduced to a catch-all to the English API home plus three knowledge-base exceptions.
- memberships, strings, and SSE overrides carry app-type labels (Workflow/Chatflow English, New Agent, API Overviews group).
* docs: correct app-type naming and translations across API specs
- English mode enum labels Chatflow and Workflow apps.
- zh/ja app references use Workflow/Chatflow; New Agent is 新 Agent / 新しい Agent.
- ja knowledge tag データセット becomes ナレッジベース; zh 模型提供商 becomes 模型供应商.
- Regenerate merged openapi_service.json with per-operation sidebar titles.
* docs: add streaming, errors, and end-user identity API guides
- Consume Streaming Responses: response modes, SSE parsing, event dispatch, and reconnect.
- Handle Errors and Rate Limits: the error envelope, status classes, and retry guidance.
- End User Identity: what the user field scopes and why it stays consistent.
- English source with zh and ja translations.
* docs: reconcile API guides and apply app-type naming
- Reader-test fixes and content audit on get-started and the app-type overview pages.
- zh/ja reconciled to the English source.
- Workflow/Chatflow and New Agent naming applied in prose.
* feat: wire API nav and redirects for consolidated guides
- Rename the guides group to API Overviews and register the new guide pages.
- Redirects: catch-all to the English API home plus three product-embedded knowledge-base links to the Knowledge guide.
* fix: normalize zh model-provider term to 模型供应商
Aligns the POSITION_PROVIDER_* descriptions with the canonical glossary term.
* docs: use Info callouts for guide forward-link notes
Wrap the authentication, base URL, and `user` field forward-reference in each app-type guide (agent, chat, chatflow, completion, workflow; en/zh/ja) in an `<Info>` callout.
* refactor: remove one-time analyze mode and verification compose
- Drop the `analyze` mode (design-time spec-overlap analysis) and its helpers; the merge is stable and nothing invokes it.
- Delete `compose.swagger.yml`, the throwaway local code-vs-spec verification stack (flagged in review for inline credentials).
- README: drop the analyze entry and correct the redirect description.
* fix: correct Chatflow naming and reasoning wording in SSE overrides
- Use "Chatflow" (English) for the app type in the `/chat-messages` SSE tables instead of 对话流/チャットフロー, and fix the legacy zh chatflow "对话流工作流" description. Standalone table cells were missed by the earlier app-type rename.
- Describe `reasoning_chunk` as "reasoning content" in en/ja (matching the `reasoning` field and the zh wording) instead of "chain-of-thought".
* docs: refine API guide wording and simplify the human-input example
* docs: standardize Workflow and Chatflow app-type capitalization
Capitalize Chatflow and Workflow when they name an app type; keep "workflow" lowercase for the general engine, graph, or run sense.
* fix: use 供应商 for model provider in the zh Knowledge spec
* fix: rename the Knowledge API nav group to "Knowledge APIs"
* fix: un-deprecate Update Document by Text in the Knowledge spec
* translate: un-deprecate Update Document by Text in zh/ja specs
Mirror the en fix (6802d5eb) into the zh and ja Knowledge specs, source and merged: drop the deprecated flag and the leading Deprecated notice from the update-by-text operation. It is the canonical text-update route; only Update Document by File stays deprecated.
4422 lines
191 KiB
JSON
4422 lines
191 KiB
JSON
{
|
||
"openapi": "3.0.1",
|
||
"info": {
|
||
"title": "Workflow アプリAPI",
|
||
"description": "Workflow アプリケーションはセッションなしの動作をサポートし、翻訳、記事作成、要約 AI などに最適です。",
|
||
"version": "1.0.0"
|
||
},
|
||
"servers": [
|
||
{
|
||
"url": "https://{api_base_url}",
|
||
"description": "Workflow App API のベース URL です。セルフホスト環境では、独自の API ベース URL に置き換えてください。",
|
||
"variables": {
|
||
"api_base_url": {
|
||
"default": "api.dify.ai/v1",
|
||
"description": "API ベース URL のホストとパス(`https://` を除く)。"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"security": [
|
||
{
|
||
"ApiKeyAuth": []
|
||
}
|
||
],
|
||
"paths": {
|
||
"/workflows/run": {
|
||
"post": {
|
||
"summary": "ワークフローを実行",
|
||
"description": "ワークフローを実行します。公開済みのワークフローがないと実行できません。",
|
||
"operationId": "executeWorkflowJp",
|
||
"tags": [
|
||
"ワークフロー"
|
||
],
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/WorkflowExecutionRequest"
|
||
},
|
||
"examples": {
|
||
"streaming_example": {
|
||
"summary": "リクエスト例 - ストリーミングモード",
|
||
"value": {
|
||
"inputs": {
|
||
"query": "Summarize this text: The quick brown fox jumps over the lazy dog."
|
||
},
|
||
"response_mode": "streaming",
|
||
"user": "user_workflow_123"
|
||
}
|
||
},
|
||
"blocking_example": {
|
||
"summary": "リクエスト例 - ブロッキングモード",
|
||
"value": {
|
||
"inputs": {
|
||
"query": "Translate this to French: Hello world"
|
||
},
|
||
"response_mode": "blocking",
|
||
"user": "user_workflow_456"
|
||
}
|
||
},
|
||
"with_file_array_variable": {
|
||
"summary": "Request Example - File array input",
|
||
"value": {
|
||
"inputs": {
|
||
"my_documents": [
|
||
{
|
||
"type": "document",
|
||
"transfer_method": "local_file",
|
||
"upload_file_id": "a1b2c3d4-5678-90ab-cdef-1234567890ab"
|
||
},
|
||
{
|
||
"type": "image",
|
||
"transfer_method": "remote_url",
|
||
"url": "https://example.com/image.jpg"
|
||
}
|
||
]
|
||
},
|
||
"response_mode": "blocking",
|
||
"user": "user_workflow_789"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "リクエスト成功。コンテンツタイプと構造はリクエストの `response_mode` パラメータに依存します。\n\n- `response_mode` が `blocking` の場合、 `application/json` で `WorkflowBlockingResponse` オブジェクトを返します。\n- `response_mode` が `streaming` の場合、 `text/event-stream` で `ChunkWorkflowEvent` オブジェクトのストリームを返します。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/WorkflowBlockingResponse"
|
||
},
|
||
"examples": {
|
||
"blockingResponse": {
|
||
"summary": "レスポンス例 - ブロッキングモード",
|
||
"value": {
|
||
"task_id": "c3800678-a077-43df-a102-53f23ed20b88",
|
||
"workflow_run_id": "fb47b2e6-5e43-4f90-be01-d5c5a088d156",
|
||
"data": {
|
||
"id": "fb47b2e6-5e43-4f90-be01-d5c5a088d156",
|
||
"workflow_id": "7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345",
|
||
"status": "succeeded",
|
||
"outputs": {
|
||
"result": "Bonjour le monde"
|
||
},
|
||
"error": null,
|
||
"elapsed_time": 1.23,
|
||
"total_tokens": 150,
|
||
"total_steps": 3,
|
||
"created_at": 1705407629,
|
||
"finished_at": 1705407630
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"text/event-stream": {
|
||
"schema": {
|
||
"type": "string",
|
||
"description": "Server-Sent Events (SSE) のストリーム。\n\n**パース**:各行は `data: ` で始まり JSON オブジェクトが続き、`\\n\\n` で終了します。JSON をパースする前に `data: ` プレフィックスを除去し、`event` フィールドを読み取ってイベントタイプを判定してください。`ping` イベント(接続維持のため 10 秒ごとに送信)は無視してください。\n\n**ストリームライフサイクル**:`workflow_finished`、`workflow_paused`、または `error` イベントを受信するとストリームが閉じます。エラーはストリーム内の `error` イベントとして HTTP ステータス `200` で配信されます。ステータスコードではなくイベントペイロードを確認して詳細を取得してください。\n\n**推論イベント**:\n- `reasoning_chunk`:`reasoning_format` が `separated` の LLM ノードが発行する思考過程のデルタです。連続する `reasoning_chunk` イベントを連結すると、完全な推論を復元できます。`is_final: true` のイベントはノードの思考完了を示し、空の `reasoning` を伴う場合があります。ペイロードは `data` の下にあり、チャットアプリとは異なり `message_id` や `conversation_id` は含まれません。並行する `text_chunk` ストリームには `<think>` タグが含まれません。\n\n**人間の入力イベント**:\n- `human_input_required`:ワークフローが人間の入力ノードに到達した際に `workflow_paused` と同時に発行されます。ペイロードの `form_token` を使用して、[人間の入力 API](/api-reference/人間の入力/人間の入力フォームを取得) でフォーム処理を進めます。\n- `human_input_form_filled`:受信者がフォームを送信し、ワークフロー実行が再開されます。\n- `human_input_form_timeout`:応答がないままフォームが期限切れ。タイムアウトのフォールバックエッジが定義されている場合、ワークフローはそのエッジを通って実行されます。"
|
||
},
|
||
"examples": {
|
||
"streamingResponse": {
|
||
"summary": "レスポンス例 - ストリーミングモード",
|
||
"value": "data: {\"event\": \"workflow_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"inputs\": {\"query\": \"Translate this\"}, \"created_at\": 1705407629, \"reason\": \"initial\"}} data: {\"event\": \"node_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"node_exec_1\", \"node_id\": \"node_1\", \"node_type\": \"llm\", \"title\": \"LLM Node\", \"index\": 1, \"created_at\": 1705407629}} data: {\"event\": \"reasoning_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"reasoning\": \"Let me translate that.\", \"node_id\": \"node_1\", \"is_final\": false}} data: {\"event\": \"reasoning_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"reasoning\": \"\", \"node_id\": \"node_1\", \"is_final\": true}} data: {\"event\": \"text_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"text\": \"Bonjour\", \"from_variable_selector\": [\"node_1\", \"text\"]}} data: {\"event\": \"workflow_finished\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"status\": \"succeeded\", \"outputs\": {\"result\": \"Bonjour le monde\"}, \"elapsed_time\": 1.23, \"total_tokens\": 150, \"total_steps\": 3, \"created_at\": 1705407629, \"finished_at\": 1705407630}}"
|
||
},
|
||
"humanInputPause": {
|
||
"summary": "レスポンス例 - 人間の入力での一時停止",
|
||
"value": "data: {\"event\": \"workflow_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"inputs\": {\"draft\": \"Hello\"}, \"created_at\": 1705407629, \"reason\": \"initial\"}} data: {\"event\": \"human_input_required\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"form_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\", \"form_token\": \"tok_abc123\", \"node_id\": \"approval_node\", \"node_title\": \"Approval\", \"form_content\": \"Please review the draft.\", \"inputs\": [{\"type\": \"paragraph\", \"output_variable_name\": \"comment\", \"default\": null}], \"actions\": [{\"id\": \"approve\", \"title\": \"Approve\", \"button_style\": \"primary\"}], \"display_in_ui\": false, \"resolved_default_values\": {\"comment\": \"\"}, \"expiration_time\": 1705494029}} data: {\"event\": \"workflow_paused\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"status\": \"paused\", \"created_at\": 1705407629, \"elapsed_time\": 0.5}}"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "- `not_workflow_app` : App mode does not match the API route.\n- `provider_not_initialize` : 有効なモデルプロバイダーの認証情報が見つかりません。\n- `provider_quota_exceeded` : モデルプロバイダーのクォータが使い切られました。\n- `model_currently_not_support` : 現在のモデルは利用できません。\n- `completion_request_error` : Workflow execution request failed.\n- `invalid_param` : Invalid parameter value.",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"not_workflow_app": {
|
||
"summary": "not_workflow_app",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "not_workflow_app",
|
||
"message": "Please check if your app mode matches the right API route."
|
||
}
|
||
},
|
||
"provider_not_initialize": {
|
||
"summary": "provider_not_initialize",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "provider_not_initialize",
|
||
"message": "No valid model provider credentials found. Please go to Settings -> Model Provider to complete your provider credentials."
|
||
}
|
||
},
|
||
"provider_quota_exceeded": {
|
||
"summary": "provider_quota_exceeded",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "provider_quota_exceeded",
|
||
"message": "Your quota for Dify Hosted OpenAI has been exhausted. Please go to Settings -> Model Provider to complete your own provider credentials."
|
||
}
|
||
},
|
||
"model_currently_not_support": {
|
||
"summary": "model_currently_not_support",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "model_currently_not_support",
|
||
"message": "Dify Hosted OpenAI trial currently not support the GPT-4 model."
|
||
}
|
||
},
|
||
"completion_request_error": {
|
||
"summary": "completion_request_error",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "completion_request_error",
|
||
"message": "Completion request failed."
|
||
}
|
||
},
|
||
"invalid_param": {
|
||
"summary": "invalid_param",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "invalid_param",
|
||
"message": "Arg user must be provided."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "- `too_many_requests` : このアプリケーションへの同時リクエストが多すぎます。\n- `rate_limit_error` : アップストリームのモデルプロバイダーのレート制限を超えました。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"too_many_requests": {
|
||
"summary": "too_many_requests",
|
||
"value": {
|
||
"status": 429,
|
||
"code": "too_many_requests",
|
||
"message": "Too many requests. Please try again later."
|
||
}
|
||
},
|
||
"rate_limit_error": {
|
||
"summary": "rate_limit_error",
|
||
"value": {
|
||
"status": 429,
|
||
"code": "rate_limit_error",
|
||
"message": "Rate Limit Error"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "`internal_server_error` : 内部サーバーエラー。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"internal_server_error": {
|
||
"summary": "internal_server_error",
|
||
"value": {
|
||
"status": 500,
|
||
"code": "internal_server_error",
|
||
"message": "Internal Server Error."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/workflows/{workflow_id}/run": {
|
||
"post": {
|
||
"summary": "ID でワークフローを実行",
|
||
"description": "ID で指定された特定のワークフローバージョンを実行します。ワークフローの特定の公開バージョンを実行する場合に便利です。",
|
||
"operationId": "runWorkflowByIdJa",
|
||
"tags": [
|
||
"ワークフロー"
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "workflow_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"description": "実行する特定バージョンのワークフロー ID です。この値は [ワークフローを実行](/api-reference/ワークフロー/ワークフローを実行) のレスポンスおよび [ワークフロー実行詳細を取得](/api-reference/ワークフロー/ワークフロー実行詳細を取得) の `workflow_id` フィールドで返されます。",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
],
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/WorkflowExecutionRequest"
|
||
},
|
||
"examples": {
|
||
"example": {
|
||
"summary": "リクエスト例",
|
||
"value": {
|
||
"inputs": {
|
||
"query": "Summarize this article"
|
||
},
|
||
"response_mode": "blocking",
|
||
"user": "user_workflow_123"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "リクエスト成功。コンテンツタイプと構造はリクエストの `response_mode` パラメータに依存します。\n\n- `response_mode` が `blocking` の場合、 `application/json` で `WorkflowBlockingResponse` オブジェクトを返します。\n- `response_mode` が `streaming` の場合、 `text/event-stream` で `ChunkWorkflowEvent` オブジェクトのストリームを返します。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/WorkflowBlockingResponse"
|
||
},
|
||
"examples": {
|
||
"blockingResponse": {
|
||
"summary": "レスポンス例 - ブロッキングモード",
|
||
"value": {
|
||
"task_id": "c3800678-a077-43df-a102-53f23ed20b88",
|
||
"workflow_run_id": "fb47b2e6-5e43-4f90-be01-d5c5a088d156",
|
||
"data": {
|
||
"id": "fb47b2e6-5e43-4f90-be01-d5c5a088d156",
|
||
"workflow_id": "7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345",
|
||
"status": "succeeded",
|
||
"outputs": {
|
||
"result": "Article summary here"
|
||
},
|
||
"error": null,
|
||
"elapsed_time": 2.45,
|
||
"total_tokens": 280,
|
||
"total_steps": 4,
|
||
"created_at": 1705407629,
|
||
"finished_at": 1705407631
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"text/event-stream": {
|
||
"schema": {
|
||
"type": "string",
|
||
"description": "Server-Sent Events (SSE) のストリーム。\n\n**パース**:各行は `data: ` で始まり JSON オブジェクトが続き、`\\n\\n` で終了します。JSON をパースする前に `data: ` プレフィックスを除去し、`event` フィールドを読み取ってイベントタイプを判定してください。`ping` イベント(接続維持のため 10 秒ごとに送信)は無視してください。\n\n**ストリームライフサイクル**:`workflow_finished`、`workflow_paused`、または `error` イベントを受信するとストリームが閉じます。エラーはストリーム内の `error` イベントとして HTTP ステータス `200` で配信されます。ステータスコードではなくイベントペイロードを確認して詳細を取得してください。\n\n**推論イベント**:\n- `reasoning_chunk`:`reasoning_format` が `separated` の LLM ノードが発行する思考過程のデルタです。連続する `reasoning_chunk` イベントを連結すると、完全な推論を復元できます。`is_final: true` のイベントはノードの思考完了を示し、空の `reasoning` を伴う場合があります。ペイロードは `data` の下にあり、チャットアプリとは異なり `message_id` や `conversation_id` は含まれません。並行する `text_chunk` ストリームには `<think>` タグが含まれません。\n\n**人間の入力イベント**:\n- `human_input_required`:ワークフローが人間の入力ノードに到達した際に `workflow_paused` と同時に発行されます。ペイロードの `form_token` を使用して、[人間の入力 API](/api-reference/人間の入力/人間の入力フォームを取得) でフォーム処理を進めます。\n- `human_input_form_filled`:受信者がフォームを送信し、ワークフロー実行が再開されます。\n- `human_input_form_timeout`:応答がないままフォームが期限切れ。タイムアウトのフォールバックエッジが定義されている場合、ワークフローはそのエッジを通って実行されます。"
|
||
},
|
||
"examples": {
|
||
"streamingResponse": {
|
||
"summary": "レスポンス例 - ストリーミングモード",
|
||
"value": "data: {\"event\": \"workflow_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"inputs\": {\"query\": \"Translate this\"}, \"created_at\": 1705407629, \"reason\": \"initial\"}} data: {\"event\": \"node_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"node_exec_1\", \"node_id\": \"node_1\", \"node_type\": \"llm\", \"title\": \"LLM Node\", \"index\": 1, \"created_at\": 1705407629}} data: {\"event\": \"reasoning_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"reasoning\": \"Let me translate that.\", \"node_id\": \"node_1\", \"is_final\": false}} data: {\"event\": \"reasoning_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"reasoning\": \"\", \"node_id\": \"node_1\", \"is_final\": true}} data: {\"event\": \"text_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"text\": \"Bonjour\", \"from_variable_selector\": [\"node_1\", \"text\"]}} data: {\"event\": \"workflow_finished\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"status\": \"succeeded\", \"outputs\": {\"result\": \"Bonjour le monde\"}, \"elapsed_time\": 1.23, \"total_tokens\": 150, \"total_steps\": 3, \"created_at\": 1705407629, \"finished_at\": 1705407630}}"
|
||
},
|
||
"humanInputPause": {
|
||
"summary": "レスポンス例 - 人間の入力での一時停止",
|
||
"value": "data: {\"event\": \"workflow_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"inputs\": {\"draft\": \"Hello\"}, \"created_at\": 1705407629, \"reason\": \"initial\"}} data: {\"event\": \"human_input_required\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"form_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\", \"form_token\": \"tok_abc123\", \"node_id\": \"approval_node\", \"node_title\": \"Approval\", \"form_content\": \"Please review the draft.\", \"inputs\": [{\"type\": \"paragraph\", \"output_variable_name\": \"comment\", \"default\": null}], \"actions\": [{\"id\": \"approve\", \"title\": \"Approve\", \"button_style\": \"primary\"}], \"display_in_ui\": false, \"resolved_default_values\": {\"comment\": \"\"}, \"expiration_time\": 1705494029}} data: {\"event\": \"workflow_paused\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"status\": \"paused\", \"created_at\": 1705407629, \"elapsed_time\": 0.5}}"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "- `not_workflow_app` : App mode does not match the API route.\n- `bad_request` : Workflow is a draft or has an invalid ID format.\n- `provider_not_initialize` : 有効なモデルプロバイダーの認証情報が見つかりません。\n- `provider_quota_exceeded` : モデルプロバイダーのクォータが使い切られました。\n- `model_currently_not_support` : 現在のモデルは利用できません。\n- `completion_request_error` : Workflow execution request failed.\n- `invalid_param` : Required parameter missing or invalid.",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"not_workflow_app": {
|
||
"summary": "not_workflow_app",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "not_workflow_app",
|
||
"message": "Please check if your app mode matches the right API route."
|
||
}
|
||
},
|
||
"bad_request": {
|
||
"summary": "bad_request",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "bad_request",
|
||
"message": "Workflow is a draft and cannot be executed."
|
||
}
|
||
},
|
||
"provider_not_initialize": {
|
||
"summary": "provider_not_initialize",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "provider_not_initialize",
|
||
"message": "No valid model provider credentials found. Please go to Settings -> Model Provider to complete your provider credentials."
|
||
}
|
||
},
|
||
"provider_quota_exceeded": {
|
||
"summary": "provider_quota_exceeded",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "provider_quota_exceeded",
|
||
"message": "Your quota for Dify Hosted OpenAI has been exhausted. Please go to Settings -> Model Provider to complete your own provider credentials."
|
||
}
|
||
},
|
||
"model_currently_not_support": {
|
||
"summary": "model_currently_not_support",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "model_currently_not_support",
|
||
"message": "Dify Hosted OpenAI trial currently not support the GPT-4 model."
|
||
}
|
||
},
|
||
"completion_request_error": {
|
||
"summary": "completion_request_error",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "completion_request_error",
|
||
"message": "Completion request failed."
|
||
}
|
||
},
|
||
"invalid_param": {
|
||
"summary": "invalid_param",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "invalid_param",
|
||
"message": "Arg user must be provided."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "`not_found` : ワークフローが見つかりません。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"not_found": {
|
||
"summary": "not_found",
|
||
"value": {
|
||
"status": 404,
|
||
"code": "not_found",
|
||
"message": "Workflow not found."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"429": {
|
||
"description": "- `too_many_requests` : このアプリケーションへの同時リクエストが多すぎます。\n- `rate_limit_error` : アップストリームのモデルプロバイダーのレート制限を超えました。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"too_many_requests": {
|
||
"summary": "too_many_requests",
|
||
"value": {
|
||
"status": 429,
|
||
"code": "too_many_requests",
|
||
"message": "Too many requests. Please try again later."
|
||
}
|
||
},
|
||
"rate_limit_error": {
|
||
"summary": "rate_limit_error",
|
||
"value": {
|
||
"status": 429,
|
||
"code": "rate_limit_error",
|
||
"message": "Rate Limit Error"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "`internal_server_error` : 内部サーバーエラー。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"internal_server_error": {
|
||
"summary": "internal_server_error",
|
||
"value": {
|
||
"status": 500,
|
||
"code": "internal_server_error",
|
||
"message": "Internal Server Error."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/workflows/run/{workflow_run_id}": {
|
||
"get": {
|
||
"summary": "ワークフロー実行詳細を取得",
|
||
"description": "ワークフロー実行 ID に基づいて、ワークフロータスクの現在の実行結果を取得します。",
|
||
"operationId": "getWorkflowRunDetailJp",
|
||
"tags": [
|
||
"ワークフロー"
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "workflow_run_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"description": "ワークフロー実行 ID です。ワークフロー実行レスポンスまたはストリーミングイベントから取得できます。",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "ワークフロー実行の詳細の取得に成功しました。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/WorkflowRunDetailResponse"
|
||
},
|
||
"examples": {
|
||
"workflowRunDetail": {
|
||
"summary": "レスポンス例",
|
||
"value": {
|
||
"id": "fb47b2e6-5e43-4f90-be01-d5c5a088d156",
|
||
"workflow_id": "7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345",
|
||
"status": "succeeded",
|
||
"inputs": "{\"query\": \"Translate this to French\"}",
|
||
"outputs": {
|
||
"result": "Traduisez ceci en francais"
|
||
},
|
||
"error": null,
|
||
"total_steps": 3,
|
||
"total_tokens": 150,
|
||
"created_at": 1705407629,
|
||
"finished_at": 1705407630,
|
||
"elapsed_time": 1.23
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "`not_workflow_app` : アプリモードが API ルートと一致しません。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"not_workflow_app": {
|
||
"summary": "not_workflow_app",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "not_workflow_app",
|
||
"message": "Please check if your app mode matches the right API route."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "`not_found` : ワークフロー実行記録が見つかりません。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"workflow_run_not_found": {
|
||
"summary": "not_found",
|
||
"value": {
|
||
"status": 404,
|
||
"code": "not_found",
|
||
"message": "Workflow run not found."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/workflows/logs": {
|
||
"get": {
|
||
"summary": "ワークフローログ一覧を取得",
|
||
"description": "過去のワークフロー実行を、任意のフィルターで一覧表示します。各エントリは実行単位のサマリー(ステータス、トークン使用量、ステップ数、所要時間)であり、ノードごとの実行ログではありません。\n\n実行のノードレベルのイベントを追跡するには、代わりにストリーミングを使用します。\n\n- **自分で開始する実行**:[ワークフローを実行](/api-reference/ワークフロー/ワークフローを実行) をストリーミングモードで使用すると、実行の進行に応じて `node_started` と `node_finished` が送信されます。\n- **すでに進行中の実行**:[ワークフローイベントをストリーム](/api-reference/ワークフロー/ワークフローイベントをストリーム) を `include_state_snapshot=true` 付きで呼び出し、実行済み各ノードのステータスを再送してから、残りをストリーミングします。\n\n完了した実行のノードレベルのログは、サービス API 経由では取得できません。",
|
||
"operationId": "getWorkflowLogsJp",
|
||
"tags": [
|
||
"ワークフロー"
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "keyword",
|
||
"in": "query",
|
||
"description": "ログ内を検索するキーワードです。",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
{
|
||
"name": "status",
|
||
"in": "query",
|
||
"description": "実行ステータスでフィルタリングします。",
|
||
"schema": {
|
||
"type": "string",
|
||
"enum": [
|
||
"succeeded",
|
||
"failed",
|
||
"stopped"
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "page",
|
||
"in": "query",
|
||
"description": "ページネーションのページ番号。",
|
||
"schema": {
|
||
"type": "integer",
|
||
"default": 1,
|
||
"minimum": 1,
|
||
"maximum": 99999
|
||
}
|
||
},
|
||
{
|
||
"name": "limit",
|
||
"in": "query",
|
||
"description": "1 ページあたりの件数です。",
|
||
"schema": {
|
||
"type": "integer",
|
||
"default": 20,
|
||
"minimum": 1,
|
||
"maximum": 100
|
||
}
|
||
},
|
||
{
|
||
"name": "created_at__before",
|
||
"in": "query",
|
||
"description": "この ISO 8601 タイムスタンプ以前に作成されたログをフィルタリングします。",
|
||
"schema": {
|
||
"type": "string",
|
||
"format": "date-time"
|
||
}
|
||
},
|
||
{
|
||
"name": "created_at__after",
|
||
"in": "query",
|
||
"description": "この ISO 8601 タイムスタンプ以降に作成されたログをフィルタリングします。",
|
||
"schema": {
|
||
"type": "string",
|
||
"format": "date-time"
|
||
}
|
||
},
|
||
{
|
||
"name": "created_by_end_user_session_id",
|
||
"in": "query",
|
||
"description": "エンドユーザーセッション ID でフィルタリングします。",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
{
|
||
"name": "created_by_account",
|
||
"in": "query",
|
||
"description": "作成者のアカウントのメールアドレス(例:`name@example.com`)でフィルタリングします。",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "ワークフローログの取得に成功しました。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/WorkflowLogsResponse"
|
||
},
|
||
"examples": {
|
||
"workflowLogs": {
|
||
"summary": "レスポンス例",
|
||
"value": {
|
||
"page": 1,
|
||
"limit": 20,
|
||
"total": 1,
|
||
"has_more": false,
|
||
"data": [
|
||
{
|
||
"id": "b7e2f8a1-3c4d-5e6f-7890-abcdef123456",
|
||
"workflow_run": {
|
||
"id": "fb47b2e6-5e43-4f90-be01-d5c5a088d156",
|
||
"version": "2025-01-16 12:00:00.000000",
|
||
"status": "succeeded",
|
||
"error": null,
|
||
"elapsed_time": 1.23,
|
||
"total_tokens": 150,
|
||
"total_steps": 3,
|
||
"created_at": 1705407629,
|
||
"finished_at": 1705407630,
|
||
"exceptions_count": 0,
|
||
"triggered_from": "app-run"
|
||
},
|
||
"created_from": "service-api",
|
||
"created_by_role": "end_user",
|
||
"created_by_account": null,
|
||
"created_by_end_user": {
|
||
"id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
|
||
"type": "service_api",
|
||
"is_anonymous": false,
|
||
"session_id": "user_workflow_123"
|
||
},
|
||
"created_at": 1705407629
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/workflows/tasks/{task_id}/stop": {
|
||
"post": {
|
||
"summary": "ワークフロータスクを停止",
|
||
"description": "実行中のワークフロータスクを停止します。`streaming` モードでのみサポートされます。",
|
||
"operationId": "stopWorkflowTaskGenerationJp",
|
||
"tags": [
|
||
"ワークフロー"
|
||
],
|
||
"parameters": [
|
||
{
|
||
"name": "task_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"description": "タスク ID です。[ワークフローを実行](/api-reference/ワークフロー/ワークフローを実行) API のストリーミングチャンクレスポンスから取得できます。",
|
||
"schema": {
|
||
"type": "string"
|
||
}
|
||
}
|
||
],
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "object",
|
||
"required": [
|
||
"user"
|
||
],
|
||
"properties": {
|
||
"user": {
|
||
"type": "string",
|
||
"description": "ユーザー識別子です。エンドユーザーの識別のみに使用され、[ワークフローを実行](/api-reference/ワークフロー/ワークフローを実行) リクエストで渡した `user` と一致する必要はありません。停止はユーザーに関係なくタスクに適用されます。"
|
||
}
|
||
}
|
||
},
|
||
"examples": {
|
||
"example": {
|
||
"summary": "リクエスト例",
|
||
"value": {
|
||
"user": "user_workflow_123"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"$ref": "#/components/responses/SuccessResult"
|
||
},
|
||
"400": {
|
||
"description": "- `not_workflow_app` : アプリモードが API ルートと一致しません。\n- `invalid_param` : 必須パラメータが不足しているか無効です。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"not_workflow_app": {
|
||
"summary": "not_workflow_app",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "not_workflow_app",
|
||
"message": "Please check if your app mode matches the right API route."
|
||
}
|
||
},
|
||
"invalid_param": {
|
||
"summary": "invalid_param",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "invalid_param",
|
||
"message": "Arg user must be provided."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/files/upload": {
|
||
"post": {
|
||
"operationId": "uploadWorkflowFileJp",
|
||
"tags": [
|
||
"ファイル操作"
|
||
],
|
||
"summary": "ファイルをアップロード",
|
||
"description": "メッセージ送信時に使用するファイルをアップロードします。画像、ドキュメント、音声、動画のマルチモーダル理解が可能です。アップロードされたファイルは現在のエンドユーザーのみが使用できます。",
|
||
"requestBody": {
|
||
"description": "ファイルアップロードリクエスト。multipart/form-data 形式が必要です。",
|
||
"required": true,
|
||
"content": {
|
||
"multipart/form-data": {
|
||
"schema": {
|
||
"type": "object",
|
||
"required": [
|
||
"file"
|
||
],
|
||
"properties": {
|
||
"file": {
|
||
"type": "string",
|
||
"format": "binary",
|
||
"description": "アップロードするファイル。サポートされるタイプには画像、ドキュメント、音声、動画が含まれます。"
|
||
},
|
||
"user": {
|
||
"type": "string",
|
||
"description": "ユーザー識別子。開発者のルールで定義され、アプリケーション内で一意である必要があります。Service API と WebApp のユーザー ID は独立しており、値が同じでも同じユーザーを指しません。省略した場合、アップロードは共有の `DEFAULT-USER` エンドユーザーに帰属します。ファイルは、アップロード時と同じ `user` 値を持つリクエストからのみ使用できます。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"201": {
|
||
"description": "ファイルが正常にアップロードされました。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/FileUploadResponse"
|
||
},
|
||
"examples": {
|
||
"uploadSuccess": {
|
||
"summary": "レスポンス例",
|
||
"value": {
|
||
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
|
||
"name": "product-photo.png",
|
||
"size": 204800,
|
||
"extension": "png",
|
||
"mime_type": "image/png",
|
||
"created_by": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
|
||
"created_at": 1705407629,
|
||
"preview_url": null,
|
||
"source_url": "https://upload.dify.ai/files/a1b2c3d4-5678-90ab-cdef-1234567890ab/file-preview?timestamp=1705407629&nonce=8b3e26a5&sign=rN5DXW3xkVGwGE5MSvptu_BhQVXpMbXWmVJ0ib0LMzI=",
|
||
"original_url": null,
|
||
"user_id": null,
|
||
"tenant_id": "11223344-5566-7788-99aa-bbccddeeff00",
|
||
"conversation_id": null,
|
||
"file_key": null
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "- `no_file_uploaded` : リクエストにファイルが提供されていません。\n- `too_many_files` : 1 回のリクエストにつき 1 ファイルのみ許可されています。\n- `filename_not_exists_error` : アップロードされたファイルにファイル名がありません。\n- `invalid_param` : ファイル名に不正な文字(`/` または `\\`)が含まれています。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"no_file_uploaded": {
|
||
"summary": "no_file_uploaded",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "no_file_uploaded",
|
||
"message": "Please upload your file."
|
||
}
|
||
},
|
||
"too_many_files": {
|
||
"summary": "too_many_files",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "too_many_files",
|
||
"message": "Only one file is allowed."
|
||
}
|
||
},
|
||
"filename_not_exists_error": {
|
||
"summary": "filename_not_exists_error",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "filename_not_exists_error",
|
||
"message": "The specified filename does not exist."
|
||
}
|
||
},
|
||
"invalid_param": {
|
||
"summary": "invalid_param",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "invalid_param",
|
||
"message": "Filename contains invalid characters"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"413": {
|
||
"description": "`file_too_large` : ファイルサイズの上限を超えています。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"file_too_large": {
|
||
"summary": "file_too_large",
|
||
"value": {
|
||
"status": 413,
|
||
"code": "file_too_large",
|
||
"message": "File size exceeded."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"415": {
|
||
"description": "`unsupported_file_type` : 許可されていないファイルタイプです。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"unsupported_file_type": {
|
||
"summary": "unsupported_file_type",
|
||
"value": {
|
||
"status": 415,
|
||
"code": "unsupported_file_type",
|
||
"message": "File type not allowed."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/end-users/{end_user_id}": {
|
||
"get": {
|
||
"operationId": "getEndUserWorkflowJp",
|
||
"tags": [
|
||
"エンドユーザー"
|
||
],
|
||
"summary": "エンドユーザー取得",
|
||
"description": "ID を指定してエンドユーザーを取得します。他の API がエンドユーザー ID を返す場合(例:[ファイルをアップロード](/api-reference/ファイル操作/ファイルをアップロード)の `created_by`)に便利です。",
|
||
"parameters": [
|
||
{
|
||
"name": "end_user_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"description": "エンドユーザー ID。",
|
||
"schema": {
|
||
"type": "string",
|
||
"format": "uuid"
|
||
}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "エンドユーザーを正常に取得しました。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/EndUserDetail"
|
||
},
|
||
"examples": {
|
||
"endUserDetail": {
|
||
"summary": "レスポンス例",
|
||
"value": {
|
||
"id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
|
||
"tenant_id": "11223344-5566-7788-99aa-bbccddeeff00",
|
||
"app_id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
|
||
"type": "service_api",
|
||
"external_user_id": "abc-123",
|
||
"name": null,
|
||
"is_anonymous": false,
|
||
"session_id": "abc-123",
|
||
"created_at": "2024-01-16T12:00:29Z",
|
||
"updated_at": "2024-01-16T12:00:29Z"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "`end_user_not_found` : エンドユーザーが見つかりません。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"end_user_not_found": {
|
||
"summary": "end_user_not_found",
|
||
"value": {
|
||
"status": 404,
|
||
"code": "end_user_not_found",
|
||
"message": "End user not found."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/audio-to-text": {
|
||
"post": {
|
||
"operationId": "workflowAudioToTextJa",
|
||
"tags": [
|
||
"音声・テキスト変換"
|
||
],
|
||
"summary": "音声をテキストに変換",
|
||
"description": "音声ファイルをテキストに変換します。アップロードされたファイルの MIME タイプで検証され、`audio/mp3`、`audio/m4a`、`audio/wav`、`audio/amr`、`audio/mpga` のいずれかである必要があります。それ以外のタイプ(一般的な `audio/mpeg` を含む)は `unsupported_audio_type` エラーで拒否されます。ファイルサイズの上限は `30 MB` です。",
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"multipart/form-data": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/AudioToTextRequest"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "音声からテキストへの変換に成功しました。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/AudioToTextResponse"
|
||
},
|
||
"examples": {
|
||
"audioToTextSuccess": {
|
||
"summary": "レスポンス例",
|
||
"value": {
|
||
"text": "Hello, I would like to know more about the iPhone 13 Pro Max."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "- `app_unavailable` : アプリケーションが利用できないか、設定が正しくありません。\n- `no_audio_uploaded` : 音声ファイルがアップロードされていません。\n- `provider_not_support_speech_to_text` : モデルプロバイダーが音声認識をサポートしていません。\n- `provider_not_initialize` : 有効なモデルプロバイダーの認証情報が見つかりません。\n- `provider_quota_exceeded` : モデルプロバイダーのクォータが使い切られました。\n- `model_currently_not_support` : 現在のモデルはこの操作をサポートしていません。\n- `completion_request_error` : 音声認識リクエストに失敗しました。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"app_unavailable": {
|
||
"summary": "app_unavailable",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "app_unavailable",
|
||
"message": "App unavailable, please check your app configurations."
|
||
}
|
||
},
|
||
"no_audio_uploaded": {
|
||
"summary": "no_audio_uploaded",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "no_audio_uploaded",
|
||
"message": "Please upload your audio."
|
||
}
|
||
},
|
||
"provider_not_support_speech_to_text": {
|
||
"summary": "provider_not_support_speech_to_text",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "provider_not_support_speech_to_text",
|
||
"message": "Provider not support speech to text."
|
||
}
|
||
},
|
||
"provider_not_initialize": {
|
||
"summary": "provider_not_initialize",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "provider_not_initialize",
|
||
"message": "No valid model provider credentials found. Please go to Settings -> Model Provider to complete your provider credentials."
|
||
}
|
||
},
|
||
"provider_quota_exceeded": {
|
||
"summary": "provider_quota_exceeded",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "provider_quota_exceeded",
|
||
"message": "Your quota for Dify Hosted OpenAI has been exhausted. Please go to Settings -> Model Provider to complete your own provider credentials."
|
||
}
|
||
},
|
||
"model_currently_not_support": {
|
||
"summary": "model_currently_not_support",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "model_currently_not_support",
|
||
"message": "Dify Hosted OpenAI trial currently not support the GPT-4 model."
|
||
}
|
||
},
|
||
"completion_request_error": {
|
||
"summary": "completion_request_error",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "completion_request_error",
|
||
"message": "Completion request failed."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"413": {
|
||
"description": "`audio_too_large` : 音声ファイルサイズが上限を超えています。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"audio_too_large": {
|
||
"summary": "audio_too_large",
|
||
"value": {
|
||
"status": 413,
|
||
"code": "audio_too_large",
|
||
"message": "Audio size exceeded."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"415": {
|
||
"description": "`unsupported_audio_type` : 許可されていない音声タイプです。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"unsupported_audio_type": {
|
||
"summary": "unsupported_audio_type",
|
||
"value": {
|
||
"status": 415,
|
||
"code": "unsupported_audio_type",
|
||
"message": "Audio type not allowed."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "`internal_server_error` : 内部サーバーエラー。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"internal_server_error": {
|
||
"summary": "internal_server_error",
|
||
"value": {
|
||
"status": 500,
|
||
"code": "internal_server_error",
|
||
"message": "Internal server error."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/text-to-audio": {
|
||
"post": {
|
||
"operationId": "workflowTextToAudioJa",
|
||
"tags": [
|
||
"音声・テキスト変換"
|
||
],
|
||
"summary": "テキストを音声に変換",
|
||
"description": "テキストを音声に変換します。",
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/TextToAudioRequest"
|
||
},
|
||
"examples": {
|
||
"textToAudioExample": {
|
||
"summary": "リクエスト例",
|
||
"value": {
|
||
"text": "Hello, welcome to our service.",
|
||
"user": "abc-123",
|
||
"voice": "alloy",
|
||
"streaming": false
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "生成された音声ファイルを返します。`Content-Type` ヘッダーは音声の MIME タイプ(例:`audio/wav`、`audio/mp3`)に設定されます。`streaming` が `true` の場合、音声はチャンク転送エンコーディングでストリーミングされます。",
|
||
"content": {
|
||
"audio/mpeg": {
|
||
"schema": {
|
||
"type": "string",
|
||
"format": "binary"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "- `app_unavailable` : アプリケーションが利用できないか、設定が正しくありません。\n- `provider_not_initialize` : 有効なモデルプロバイダーの認証情報が見つかりません。\n- `provider_quota_exceeded` : モデルプロバイダーのクォータが使い切られました。\n- `model_currently_not_support` : 現在のモデルはこの操作をサポートしていません。\n- `completion_request_error` : テキスト読み上げリクエストに失敗しました。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"app_unavailable": {
|
||
"summary": "app_unavailable",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "app_unavailable",
|
||
"message": "App unavailable, please check your app configurations."
|
||
}
|
||
},
|
||
"provider_not_initialize": {
|
||
"summary": "provider_not_initialize",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "provider_not_initialize",
|
||
"message": "No valid model provider credentials found. Please go to Settings -> Model Provider to complete your provider credentials."
|
||
}
|
||
},
|
||
"provider_quota_exceeded": {
|
||
"summary": "provider_quota_exceeded",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "provider_quota_exceeded",
|
||
"message": "Your quota for Dify Hosted OpenAI has been exhausted. Please go to Settings -> Model Provider to complete your own provider credentials."
|
||
}
|
||
},
|
||
"model_currently_not_support": {
|
||
"summary": "model_currently_not_support",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "model_currently_not_support",
|
||
"message": "Dify Hosted OpenAI trial currently not support the GPT-4 model."
|
||
}
|
||
},
|
||
"completion_request_error": {
|
||
"summary": "completion_request_error",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "completion_request_error",
|
||
"message": "Completion request failed."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"500": {
|
||
"description": "`internal_server_error` : 内部サーバーエラー。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"internal_server_error": {
|
||
"summary": "internal_server_error",
|
||
"value": {
|
||
"status": 500,
|
||
"code": "internal_server_error",
|
||
"message": "Internal server error."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/info": {
|
||
"get": {
|
||
"operationId": "getWorkflowAppInfoJp",
|
||
"tags": [
|
||
"アプリケーション設定"
|
||
],
|
||
"summary": "アプリケーションの基本情報を取得",
|
||
"description": "このアプリケーションの基本情報(名前、説明、タグ、モード)を取得します。",
|
||
"responses": {
|
||
"200": {
|
||
"description": "アプリケーションの基本情報。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/AppInfoResponse"
|
||
},
|
||
"examples": {
|
||
"appInfo": {
|
||
"summary": "レスポンス例",
|
||
"value": {
|
||
"name": "My Workflow App",
|
||
"description": "便利なカスタマーサービスチャットボット。",
|
||
"tags": [
|
||
"customer-service",
|
||
"chatbot"
|
||
],
|
||
"mode": "workflow",
|
||
"author_name": "Dify Team"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/parameters": {
|
||
"get": {
|
||
"operationId": "getWorkflowAppParametersJp",
|
||
"tags": [
|
||
"アプリケーション設定"
|
||
],
|
||
"summary": "アプリケーションのパラメータ情報を取得",
|
||
"description": "アプリケーションの入力フォーム設定(機能スイッチ、入力パラメータ名、タイプ、デフォルト値)を取得します。",
|
||
"responses": {
|
||
"200": {
|
||
"description": "アプリケーションパラメータ情報。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/WorkflowAppParametersResponse"
|
||
},
|
||
"examples": {
|
||
"appParameters": {
|
||
"summary": "レスポンス例",
|
||
"value": {
|
||
"opening_statement": "Hello! How can I help you today?",
|
||
"suggested_questions": [
|
||
"What can you do?",
|
||
"Tell me about your features."
|
||
],
|
||
"suggested_questions_after_answer": {
|
||
"enabled": true
|
||
},
|
||
"speech_to_text": {
|
||
"enabled": false
|
||
},
|
||
"text_to_speech": {
|
||
"enabled": false,
|
||
"voice": "alloy",
|
||
"language": "en-US",
|
||
"autoPlay": "disabled"
|
||
},
|
||
"retriever_resource": {
|
||
"enabled": true
|
||
},
|
||
"annotation_reply": {
|
||
"enabled": false
|
||
},
|
||
"more_like_this": {
|
||
"enabled": false
|
||
},
|
||
"sensitive_word_avoidance": {
|
||
"enabled": false
|
||
},
|
||
"user_input_form": [
|
||
{
|
||
"text-input": {
|
||
"label": "City",
|
||
"variable": "city",
|
||
"required": true,
|
||
"default": ""
|
||
}
|
||
}
|
||
],
|
||
"file_upload": {
|
||
"image": {
|
||
"enabled": true,
|
||
"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,
|
||
"workflow_file_upload_limit": 10
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "`app_unavailable` : アプリケーションが利用できないか、設定が正しくありません。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"app_unavailable": {
|
||
"summary": "app_unavailable",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "app_unavailable",
|
||
"message": "App unavailable, please check your app configurations."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/meta": {
|
||
"get": {
|
||
"operationId": "getWorkflowAppMetaJa",
|
||
"tags": [
|
||
"アプリケーション設定"
|
||
],
|
||
"summary": "アプリケーションのメタ情報を取得",
|
||
"description": "このアプリケーションのメタデータ(ツールアイコンやその他の設定詳細)を取得します。",
|
||
"responses": {
|
||
"200": {
|
||
"description": "アプリケーションのメタ情報を正常に取得しました。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/AppMetaResponse"
|
||
},
|
||
"examples": {
|
||
"appMeta": {
|
||
"summary": "レスポンス例",
|
||
"value": {
|
||
"tool_icons": {
|
||
"dalle3": "https://example.com/icons/dalle3.png",
|
||
"calculator": {
|
||
"background": "#4A90D9",
|
||
"content": "🧮"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/site": {
|
||
"get": {
|
||
"operationId": "getWorkflowWebAppSettingsJp",
|
||
"tags": [
|
||
"アプリケーション設定"
|
||
],
|
||
"summary": "アプリの WebApp 設定を取得",
|
||
"description": "このアプリケーションの WebApp 設定(サイト設定、テーマ、カスタマイズオプション)を取得します。",
|
||
"responses": {
|
||
"200": {
|
||
"description": "アプリケーションの WebApp 設定。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"$ref": "#/components/schemas/WebAppSettingsResponse"
|
||
},
|
||
"examples": {
|
||
"webAppSettings": {
|
||
"summary": "レスポンス例",
|
||
"value": {
|
||
"title": "My Chat App",
|
||
"chat_color_theme": "#4A90D9",
|
||
"chat_color_theme_inverted": false,
|
||
"icon_type": "emoji",
|
||
"icon": "🤖",
|
||
"icon_background": "#FFFFFF",
|
||
"icon_url": null,
|
||
"description": "便利なカスタマーサービスチャットボット。",
|
||
"copyright": "2025 Dify",
|
||
"privacy_policy": "https://example.com/privacy",
|
||
"custom_disclaimer": "",
|
||
"default_language": "en-US",
|
||
"show_workflow_steps": false,
|
||
"use_icon_as_answer_icon": true
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"403": {
|
||
"description": "`forbidden` : このアプリケーションのサイトが見つからないか、ワークスペースがアーカイブされています。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"forbidden": {
|
||
"summary": "forbidden",
|
||
"value": {
|
||
"status": 403,
|
||
"code": "forbidden",
|
||
"message": "Forbidden."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/form/human_input/{form_token}": {
|
||
"get": {
|
||
"tags": [
|
||
"人間の入力"
|
||
],
|
||
"summary": "人間の入力フォームを取得",
|
||
"description": "一時停止中の人間の入力フォームの内容を取得します。 WebApp 配信が必要です。\n\n人間の入力エンドポイントを呼び出す一連の流れについては、[API 連携フロー](/ja/api-reference/guides/human-input-flow) を参照してください。",
|
||
"operationId": "getWorkflowHumanInputForm",
|
||
"parameters": [
|
||
{
|
||
"name": "form_token",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string"
|
||
},
|
||
"description": "一時停止中のフォームへのアクセストークン。ストリーミングモードのワークフローを実行エンドポイントまたはチャットメッセージを送信エンドポイントが返す `human_input_required` イベントから取得します。"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "フォーム内容の取得に成功しました。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"form_content": {
|
||
"type": "string",
|
||
"description": "ワークフロー変数を埋め込んだ、事前レンダリング済みのフォーム本文。"
|
||
},
|
||
"inputs": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"description": "フォーム入力コントロールの種類。利用可能な値: `paragraph` (複数行テキスト入力)、 `select` (リストからの単一選択)、 `file` (単一ファイルアップロード)、 `file-list` (複数ファイルアップロード)。"
|
||
},
|
||
"output_variable_name": {
|
||
"type": "string",
|
||
"description": "ワークフロー内でこの入力の送信値を参照する際の変数名。送信リクエストの `inputs` オブジェクトのキーに対応します。"
|
||
},
|
||
"default": {
|
||
"type": "object",
|
||
"nullable": true,
|
||
"description": "`paragraph` 入力の生のデフォルト値設定。クライアントはこのフィールドを直接解決すべきではありません。デフォルトの表示には `resolved_default_values` を使用してください。その他の入力タイプ、またはデフォルト値が未設定の場合は `null` になります。",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"description": "デフォルト値のソース。 `constant` は `value` をリテラル文字列として使用することを示します。 `variable` は `selector` がワークフロー変数を指すことを示します。"
|
||
},
|
||
"selector": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "`type` が `variable` の場合の変数参照パス(例: `[\"node_id\", \"var_name\"]`)。少なくとも 2 つの要素を含む必要があります。"
|
||
},
|
||
"value": {
|
||
"type": "string",
|
||
"description": "`type` が `constant` の場合のリテラルなデフォルト値。常に文字列です。"
|
||
}
|
||
}
|
||
},
|
||
"option_source": {
|
||
"type": "object",
|
||
"description": "`select` 入力の選択肢のソース。 `type` が `select` の場合のみ含まれます。",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"enum": [
|
||
"variable",
|
||
"constant"
|
||
],
|
||
"description": "選択肢のソース。 `constant` は `value` に選択肢を直接列挙することを示します。 `variable` は `selector` が選択肢を提供する `array[string]` 型のワークフロー変数を指すことを示します。"
|
||
},
|
||
"selector": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "`type` が `variable` の場合の変数参照パス。"
|
||
},
|
||
"value": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "`type` が `constant` の場合のリテラルな選択肢リスト。"
|
||
}
|
||
}
|
||
},
|
||
"allowed_file_types": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string",
|
||
"enum": [
|
||
"image",
|
||
"document",
|
||
"audio",
|
||
"video",
|
||
"custom"
|
||
]
|
||
},
|
||
"description": "受信者がアップロード可能なファイルカテゴリ。 `file` および `file-list` 入力に含まれます。値: `image`、 `document`、 `audio`、 `video`、 `custom`。"
|
||
},
|
||
"allowed_file_extensions": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "`allowed_file_types` に `custom` が含まれる場合に許可されるファイル拡張子。各拡張子には先頭の `.` を含めてください。たとえば `.md` です。`file` および `file-list` 入力に含まれます。"
|
||
},
|
||
"allowed_file_upload_methods": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string",
|
||
"enum": [
|
||
"local_file",
|
||
"remote_url"
|
||
]
|
||
},
|
||
"description": "受信者が使用できるアップロード方法。値: `local_file`、 `remote_url`。 `file` および `file-list` 入力に含まれます。"
|
||
},
|
||
"number_limits": {
|
||
"type": "integer",
|
||
"description": "受信者がアップロードできるファイルの最大数。 `file-list` 入力のみに含まれます。"
|
||
}
|
||
}
|
||
},
|
||
"description": "フォーム入力フィールドの定義。"
|
||
},
|
||
"resolved_default_values": {
|
||
"type": "object",
|
||
"additionalProperties": {
|
||
"type": "string"
|
||
},
|
||
"description": "フォームに表示するための事前計算済みデフォルト値。入力の `output_variable_name` をキーとします。デフォルト値がワークフロー変数から解決可能な `paragraph` 入力にのみ設定されます。解決可能なデフォルトがない入力では空になります。クライアントはこれらの値をそのまま表示してください。 `default` をクライアント側で再解決する必要はありません。すべての値は文字列化されています。"
|
||
},
|
||
"user_actions": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"maxLength": 20,
|
||
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
|
||
"description": "アクションボタンの識別子。受信者がこのボタンを選択したときに、[人間の入力フォームを送信](/api-reference/人間の入力/人間の入力フォームを送信) エンドポイントの `action` として渡します。"
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"maxLength": 100,
|
||
"description": "受信者に表示されるボタンのラベル。"
|
||
},
|
||
"button_style": {
|
||
"type": "string",
|
||
"description": "ボタンの視覚スタイル。利用可能な値: `primary`、 `default`、 `accent`、 `ghost`。"
|
||
}
|
||
}
|
||
},
|
||
"description": "利用可能な送信アクション。"
|
||
},
|
||
"expiration_time": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Unix タイムスタンプ(秒)。この時刻以降、フォームは送信できなくなります。",
|
||
"nullable": true
|
||
}
|
||
}
|
||
},
|
||
"examples": {
|
||
"success": {
|
||
"summary": "レスポンス例",
|
||
"value": {
|
||
"form_content": "Please review the draft, set a priority, and confirm or request changes.",
|
||
"inputs": [
|
||
{
|
||
"type": "paragraph",
|
||
"output_variable_name": "feedback",
|
||
"default": {
|
||
"type": "constant",
|
||
"selector": [],
|
||
"value": ""
|
||
}
|
||
},
|
||
{
|
||
"type": "select",
|
||
"output_variable_name": "priority",
|
||
"option_source": {
|
||
"type": "constant",
|
||
"selector": [],
|
||
"value": [
|
||
"low",
|
||
"medium",
|
||
"high"
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"type": "file",
|
||
"output_variable_name": "attachment",
|
||
"allowed_file_types": [
|
||
"image",
|
||
"document"
|
||
],
|
||
"allowed_file_extensions": [],
|
||
"allowed_file_upload_methods": [
|
||
"local_file",
|
||
"remote_url"
|
||
]
|
||
},
|
||
{
|
||
"type": "file-list",
|
||
"output_variable_name": "attachments",
|
||
"allowed_file_types": [
|
||
"image",
|
||
"document"
|
||
],
|
||
"allowed_file_extensions": [],
|
||
"allowed_file_upload_methods": [
|
||
"local_file",
|
||
"remote_url"
|
||
],
|
||
"number_limits": 5
|
||
}
|
||
],
|
||
"resolved_default_values": {
|
||
"feedback": ""
|
||
},
|
||
"user_actions": [
|
||
{
|
||
"id": "approve",
|
||
"title": "Approve",
|
||
"button_style": "primary"
|
||
},
|
||
{
|
||
"id": "reject",
|
||
"title": "Request changes",
|
||
"button_style": "default"
|
||
}
|
||
],
|
||
"expiration_time": 1745510400
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "`not_found` :フォームが見つかりません。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"not_found": {
|
||
"summary": "not_found",
|
||
"value": {
|
||
"status": 404,
|
||
"code": "not_found",
|
||
"message": "フォームが見つかりません"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"412": {
|
||
"description": "- `human_input_form_submitted` :フォームは送信済みです。フォームはワンショットで、最初の応答が有効になります(送信したユーザーは問いません)。\n- `human_input_form_expired` :送信が到達する前にフォームの有効期限が切れています。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"human_input_form_submitted": {
|
||
"summary": "human_input_form_submitted",
|
||
"value": {
|
||
"status": 412,
|
||
"code": "human_input_form_submitted",
|
||
"message": "このフォームは他のユーザーによって送信済みです。form_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890"
|
||
}
|
||
},
|
||
"human_input_form_expired": {
|
||
"summary": "human_input_form_expired",
|
||
"value": {
|
||
"status": 412,
|
||
"code": "human_input_form_expired",
|
||
"message": "このフォームは有効期限切れです。form_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"post": {
|
||
"tags": [
|
||
"人間の入力"
|
||
],
|
||
"summary": "人間の入力フォームを送信",
|
||
"description": "一時停止中の人間の入力フォームに受信者の応答を送信します。受理されるとワークフローが再開され、後続のイベントはワークフローイベントをストリーミングエンドポイントで追跡できます。 WebApp 配信が必要です。",
|
||
"operationId": "submitWorkflowHumanInputForm",
|
||
"parameters": [
|
||
{
|
||
"name": "form_token",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string"
|
||
},
|
||
"description": "一時停止中のフォームへのアクセストークン。ストリーミングモードのワークフローを実行エンドポイントまたはチャットメッセージを送信エンドポイントが返す `human_input_required` イベントから取得します。"
|
||
}
|
||
],
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "object",
|
||
"required": [
|
||
"inputs",
|
||
"action",
|
||
"user"
|
||
],
|
||
"properties": {
|
||
"inputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"description": "各入力の `output_variable_name` をキーとして送信する値。段落と選択の入力は文字列、`file` 入力は単一のファイルマッピング、`file-list` 入力はファイルマッピングの配列です。ファイルマッピングは `{transfer_method: local_file, upload_file_id, type}` または `{transfer_method: remote_url, url, type}` で、`type` はそのフィールドの `allowed_file_types` のいずれか(`image`、`document`、`audio`、`video`、`custom`)です。`local_file` の場合、`upload_file_id` は [ファイルをアップロード](/api-reference/ファイル操作/ファイルをアップロード) が返す `id` です。実行、アップロード、送信の各呼び出しで一貫した `user` を使用してください。"
|
||
},
|
||
"action": {
|
||
"type": "string",
|
||
"description": "受信者が選択したアクションボタンの ID。フォームの `user_actions` リスト([人間の入力フォームを取得](/api-reference/人間の入力/人間の入力フォームを取得) エンドポイントから返される)にある `id` のいずれかと一致する必要があります。"
|
||
},
|
||
"user": {
|
||
"type": "string",
|
||
"description": "ユーザー識別子。開発者のルールで定義され、アプリケーション内で一意である必要があります。Service API と WebApp のユーザー ID は独立しており、値が同じでも同じユーザーを指しません。"
|
||
}
|
||
}
|
||
},
|
||
"examples": {
|
||
"approve": {
|
||
"summary": "リクエスト例",
|
||
"value": {
|
||
"inputs": {
|
||
"feedback": "公開して問題ありません",
|
||
"priority": "high",
|
||
"attachment": {
|
||
"transfer_method": "local_file",
|
||
"upload_file_id": "3c8fa1b2-7d4e-4f9a-b0c1-d2e3f4a5b6c7",
|
||
"type": "image"
|
||
},
|
||
"attachments": [
|
||
{
|
||
"transfer_method": "local_file",
|
||
"upload_file_id": "1a77f0df-c0e6-461c-987c-e72526f341ee",
|
||
"type": "document"
|
||
},
|
||
{
|
||
"transfer_method": "remote_url",
|
||
"url": "https://example.com/report.pdf",
|
||
"type": "document"
|
||
}
|
||
]
|
||
},
|
||
"action": "approve",
|
||
"user": "abc-123"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {
|
||
"description": "フォームの送信に成功しました。レスポンスボディは空のオブジェクトです。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "object"
|
||
},
|
||
"examples": {
|
||
"success": {
|
||
"summary": "レスポンス例",
|
||
"value": {}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "- `bad_request` :フォーム受信者のタイプが無効です。\n- `invalid_form_data` :送信内容がフォーム定義の検証に失敗しました。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"bad_request": {
|
||
"summary": "bad_request",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "bad_request",
|
||
"message": "フォーム受信者のタイプが無効です"
|
||
}
|
||
},
|
||
"invalid_form_data": {
|
||
"summary": "invalid_form_data",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "invalid_form_data",
|
||
"message": "必須入力が不足しています:feedback"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "`not_found` :フォームが見つかりません。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"not_found": {
|
||
"summary": "not_found",
|
||
"value": {
|
||
"status": 404,
|
||
"code": "not_found",
|
||
"message": "フォームが見つかりません"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"412": {
|
||
"description": "- `human_input_form_submitted` :フォームは送信済みです。フォームはワンショットで、最初の応答が有効になります(送信したユーザーは問いません)。\n- `human_input_form_expired` :送信が到達する前にフォームの有効期限が切れています。",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"human_input_form_submitted": {
|
||
"summary": "human_input_form_submitted",
|
||
"value": {
|
||
"status": 412,
|
||
"code": "human_input_form_submitted",
|
||
"message": "このフォームは他のユーザーによって送信済みです。form_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890"
|
||
}
|
||
},
|
||
"human_input_form_expired": {
|
||
"summary": "human_input_form_expired",
|
||
"value": {
|
||
"status": 412,
|
||
"code": "human_input_form_expired",
|
||
"message": "このフォームは有効期限切れです。form_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"/workflow/{workflow_run_id}/events": {
|
||
"get": {
|
||
"tags": [
|
||
"ワークフロー"
|
||
],
|
||
"summary": "ワークフローイベントをストリーム",
|
||
"description": "一時停止後または元の SSE 接続が切断された後にワークフロー実行の Server-Sent Events ストリームを再開します。すでに完了している実行に対しては、`workflow_finished` イベントを 1 つ送信してストリームを閉じます。\n\n進行中の実行のノードレベルのステータスと進捗を確認するには、`include_state_snapshot=true` を指定して呼び出します。ストリームは新しいイベントの送信前に、実行済み各ノードのステータスを再送します。",
|
||
"operationId": "streamWorkflowEvents",
|
||
"parameters": [
|
||
{
|
||
"name": "workflow_run_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string",
|
||
"format": "uuid"
|
||
},
|
||
"description": "イベントストリームを再開するワークフロー実行 ID(元のワークフロー実行レスポンスの `workflow_run_id`)。"
|
||
},
|
||
{
|
||
"name": "user",
|
||
"in": "query",
|
||
"required": true,
|
||
"schema": {
|
||
"type": "string"
|
||
},
|
||
"description": "この実行を最初にトリガーしたエンドユーザー識別子。ワークフロー実行の作成者と一致している必要があります。"
|
||
},
|
||
{
|
||
"name": "include_state_snapshot",
|
||
"in": "query",
|
||
"required": false,
|
||
"schema": {
|
||
"type": "boolean",
|
||
"default": false
|
||
},
|
||
"description": "`true` の場合、永続化された状態スナップショットからリプレイし、新しいイベントのストリーミング開始前に実行済みノードのステータスサマリーを含めます。"
|
||
},
|
||
{
|
||
"name": "continue_on_pause",
|
||
"in": "query",
|
||
"required": false,
|
||
"schema": {
|
||
"type": "boolean",
|
||
"default": false
|
||
},
|
||
"description": "`true` に設定すると、複数の `workflow_paused` イベントを跨いでストリームを開いたままにします(ワークフローに複数の人間の入力ノードが連続する場合に有用)。デフォルトでは最初の一時停止で閉じます。"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {
|
||
"description": "Server-Sent Events ストリーム。各イベントは `data: {JSON}\\n\\n` として配信されます。イベントペイロードは元のストリーミングレスポンスと同じスキーマに従います。",
|
||
"content": {
|
||
"text/event-stream": {
|
||
"schema": {
|
||
"type": "string",
|
||
"description": "再開されたワークフロー実行のイベントの SSE ストリームです。形式は [ワークフローを実行](/api-reference/ワークフロー/ワークフローを実行) と同じです。再開された部分で `reasoning_format: separated` を指定した LLM ノードが実行される場合、このストリームには `reasoning_chunk` イベントも含まれます。"
|
||
},
|
||
"examples": {
|
||
"resumedRun": {
|
||
"summary": "レスポンス例 - 再開実行",
|
||
"value": "data: {\"event\": \"human_input_form_filled\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"node_id\": \"approval_node\", \"node_title\": \"Approval\", \"rendered_content\": \"Please review the draft.\", \"action_id\": \"approve\", \"action_text\": \"Approve\"}} data: {\"event\": \"node_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"node_exec_2\", \"node_id\": \"node_1\", \"node_type\": \"llm\", \"title\": \"LLM Node\", \"index\": 2, \"created_at\": 1705407705}} data: {\"event\": \"reasoning_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"reasoning\": \"Approved, now translating.\", \"node_id\": \"node_1\", \"is_final\": false}} data: {\"event\": \"reasoning_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"reasoning\": \"\", \"node_id\": \"node_1\", \"is_final\": true}} data: {\"event\": \"text_chunk\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"text\": \"Bonjour\", \"from_variable_selector\": [\"node_1\", \"text\"]}} data: {\"event\": \"workflow_finished\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"status\": \"succeeded\", \"outputs\": {\"result\": \"Bonjour\"}, \"elapsed_time\": 2.1, \"total_tokens\": 42, \"total_steps\": 2, \"created_at\": 1705407629, \"finished_at\": 1705407706}}"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"400": {
|
||
"description": "`not_workflow_app` : Please check if your app mode matches the right API route.",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"not_workflow_app": {
|
||
"summary": "not_workflow_app",
|
||
"value": {
|
||
"status": 400,
|
||
"code": "not_workflow_app",
|
||
"message": "Please check if your app mode matches the right API route."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"404": {
|
||
"description": "`not_found` : Workflow run not found.",
|
||
"content": {
|
||
"application/json": {
|
||
"examples": {
|
||
"not_found": {
|
||
"summary": "not_found",
|
||
"value": {
|
||
"status": 404,
|
||
"code": "not_found",
|
||
"message": "Workflow run not found"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"x-codeSamples": [
|
||
{
|
||
"lang": "bash",
|
||
"label": "ストリームを再開",
|
||
"source": "curl -N --request GET \\\n --url 'https://{api_base_url}/workflow/{workflow_run_id}/events?user={user}' \\\n --header 'Authorization: Bearer {api_key}'"
|
||
},
|
||
{
|
||
"lang": "bash",
|
||
"label": "状態スナップショット付き",
|
||
"source": "curl -N --request GET \\\n --url 'https://{api_base_url}/workflow/{workflow_run_id}/events?user={user}&include_state_snapshot=true' \\\n --header 'Authorization: Bearer {api_key}'"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"components": {
|
||
"securitySchemes": {
|
||
"ApiKeyAuth": {
|
||
"type": "http",
|
||
"scheme": "bearer",
|
||
"bearerFormat": "API_KEY",
|
||
"description": "API Key 認証です。すべての API リクエストにおいて、`Authorization` HTTP ヘッダーに `Bearer ` プレフィックスを付けた API Key を含めてください。例:`Authorization: Bearer {API_KEY}`。**API Key はサーバーサイドに保存し、クライアントサイドで共有・保存しないことを強く推奨します。API Key の漏洩は深刻な結果につながる可能性があります。**API Key が欠落または無効な場合、HTTP `401` とエラーコード `unauthorized` が返されます。"
|
||
}
|
||
},
|
||
"responses": {
|
||
"SuccessResult": {
|
||
"description": "操作が成功しました。",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"result": {
|
||
"type": "string",
|
||
"enum": [
|
||
"success"
|
||
],
|
||
"description": "操作結果です。"
|
||
}
|
||
}
|
||
},
|
||
"examples": {
|
||
"success": {
|
||
"summary": "レスポンス例",
|
||
"value": {
|
||
"result": "success"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"schemas": {
|
||
"WorkflowExecutionRequest": {
|
||
"type": "object",
|
||
"required": [
|
||
"inputs",
|
||
"user"
|
||
],
|
||
"properties": {
|
||
"inputs": {
|
||
"type": "object",
|
||
"description": "ワークフロー入力変数のキーと値のペアです。ファイル型変数の値は、`type`、`transfer_method`、および `url` または `upload_file_id` を持つファイルオブジェクトの配列である必要があります。アプリが期待する変数名と型については、[アプリケーションのパラメータ情報を取得](/api-reference/アプリケーション設定/アプリケーションのパラメータ情報を取得) レスポンスの `user_input_form` フィールドを参照してください。",
|
||
"additionalProperties": {
|
||
"oneOf": [
|
||
{
|
||
"type": "string"
|
||
},
|
||
{
|
||
"type": "number"
|
||
},
|
||
{
|
||
"type": "boolean"
|
||
},
|
||
{
|
||
"type": "object"
|
||
},
|
||
{
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/components/schemas/InputFileObject"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"response_mode": {
|
||
"type": "string",
|
||
"enum": [
|
||
"streaming",
|
||
"blocking"
|
||
],
|
||
"description": "レスポンスモードです。同期レスポンスには `blocking`(Cloudflare タイムアウトは `100 s`)、サーバー送信イベントには `streaming` を使用します。省略した場合、デフォルトはブロッキング動作になります。"
|
||
},
|
||
"user": {
|
||
"type": "string",
|
||
"description": "開発者のルールで定義されるユーザー識別子で、アプリケーション内で一意である必要があります。この識別子はデータアクセスの範囲を限定します——ワークフロー実行とファイルは同じ `user` 値でクエリした場合にのみ表示されます。"
|
||
},
|
||
"files": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/components/schemas/InputFileObject"
|
||
},
|
||
"nullable": true,
|
||
"description": "ファイルリストです。ファイルとテキストを組み合わせて入力する場合に適しており、モデルが Vision 機能をサポートしている場合にのみ使用できます。ローカルファイルを添付するには、まず [ファイルをアップロード](/api-reference/ファイル操作/ファイルをアップロード) でアップロードし、返された `id` を `upload_file_id` として `transfer_method: local_file` で使用します。"
|
||
}
|
||
}
|
||
},
|
||
"InputFileObject": {
|
||
"type": "object",
|
||
"required": [
|
||
"type",
|
||
"transfer_method"
|
||
],
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"enum": [
|
||
"document",
|
||
"image",
|
||
"audio",
|
||
"video",
|
||
"custom"
|
||
],
|
||
"description": "ファイルタイプ。"
|
||
},
|
||
"transfer_method": {
|
||
"type": "string",
|
||
"enum": [
|
||
"remote_url",
|
||
"local_file"
|
||
],
|
||
"description": "転送方法です。ファイル URL の場合は `remote_url`、アップロードファイルの場合は `local_file` です。"
|
||
},
|
||
"url": {
|
||
"type": "string",
|
||
"format": "url",
|
||
"description": "ファイル URL(`transfer_method` が `remote_url` の場合)です。"
|
||
},
|
||
"upload_file_id": {
|
||
"type": "string",
|
||
"description": "[ファイルをアップロード](/api-reference/ファイル操作/ファイルをアップロード) API から取得したアップロード済みファイル ID です(`transfer_method` が `local_file` の場合に使用)。"
|
||
}
|
||
}
|
||
},
|
||
"WorkflowBlockingResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"task_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "進行中の実行のタスク ID です。[ワークフロータスクを停止](/api-reference/ワークフロー/ワークフロータスクを停止) と組み合わせて、実行中のワークフローをキャンセルします。実行中のみ有効です。"
|
||
},
|
||
"workflow_run_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "このワークフロー実行記録の永続的な識別子です。[ワークフロー実行詳細を取得](/api-reference/ワークフロー/ワークフロー実行詳細を取得) と組み合わせて、実行後に結果を取得します。"
|
||
},
|
||
"data": {
|
||
"$ref": "#/components/schemas/WorkflowFinishedData"
|
||
}
|
||
}
|
||
},
|
||
"ChunkWorkflowEvent": {
|
||
"type": "object",
|
||
"required": [
|
||
"event"
|
||
],
|
||
"properties": {
|
||
"event": {
|
||
"type": "string",
|
||
"enum": [
|
||
"workflow_started",
|
||
"node_started",
|
||
"node_finished",
|
||
"node_retry",
|
||
"iteration_started",
|
||
"iteration_next",
|
||
"iteration_completed",
|
||
"loop_started",
|
||
"loop_next",
|
||
"loop_completed",
|
||
"reasoning_chunk",
|
||
"text_chunk",
|
||
"workflow_finished",
|
||
"tts_message",
|
||
"tts_message_end",
|
||
"workflow_paused",
|
||
"agent_log",
|
||
"human_input_required",
|
||
"human_input_form_filled",
|
||
"human_input_form_timeout",
|
||
"error",
|
||
"ping"
|
||
],
|
||
"description": "ストリーミングイベントの種類。"
|
||
}
|
||
},
|
||
"discriminator": {
|
||
"propertyName": "event",
|
||
"mapping": {
|
||
"workflow_started": "#/components/schemas/StreamEventWorkflowStarted",
|
||
"node_started": "#/components/schemas/StreamEventNodeStarted",
|
||
"node_finished": "#/components/schemas/StreamEventNodeFinished",
|
||
"node_retry": "#/components/schemas/StreamEventNodeRetry",
|
||
"iteration_started": "#/components/schemas/StreamEventIterationStarted",
|
||
"iteration_next": "#/components/schemas/StreamEventIterationNext",
|
||
"iteration_completed": "#/components/schemas/StreamEventIterationCompleted",
|
||
"loop_started": "#/components/schemas/StreamEventLoopStarted",
|
||
"loop_next": "#/components/schemas/StreamEventLoopNext",
|
||
"loop_completed": "#/components/schemas/StreamEventLoopCompleted",
|
||
"reasoning_chunk": "#/components/schemas/StreamEventReasoningChunk",
|
||
"text_chunk": "#/components/schemas/StreamEventTextChunk",
|
||
"workflow_finished": "#/components/schemas/StreamEventWorkflowFinished",
|
||
"tts_message": "#/components/schemas/StreamEventTtsMessage",
|
||
"tts_message_end": "#/components/schemas/StreamEventTtsMessageEnd",
|
||
"error": "#/components/schemas/StreamEventError",
|
||
"ping": "#/components/schemas/StreamEventPing",
|
||
"workflow_paused": "#/components/schemas/StreamEventWorkflowPaused",
|
||
"agent_log": "#/components/schemas/StreamEventAgentLog",
|
||
"human_input_required": "#/components/schemas/StreamEventHumanInputRequired",
|
||
"human_input_form_filled": "#/components/schemas/StreamEventHumanInputFormFilled",
|
||
"human_input_form_timeout": "#/components/schemas/StreamEventHumanInputFormTimeout"
|
||
}
|
||
}
|
||
},
|
||
"StreamEventBase": {
|
||
"type": "object",
|
||
"properties": {
|
||
"task_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "進行中の実行のタスク ID です。[ワークフロータスクを停止](/api-reference/ワークフロー/ワークフロータスクを停止) と組み合わせて、実行中のワークフローをキャンセルします。実行中のみ有効です。"
|
||
},
|
||
"workflow_run_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "このワークフロー実行記録の永続的な識別子です。[ワークフロー実行詳細を取得](/api-reference/ワークフロー/ワークフロー実行詳細を取得) と組み合わせて、実行後に結果を取得します。"
|
||
}
|
||
}
|
||
},
|
||
"StreamEventWorkflowStarted": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "ワークフロー実行 ID です。"
|
||
},
|
||
"workflow_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "Workflow ID."
|
||
},
|
||
"inputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"description": "このワークフロー実行の入力変数です。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "ワークフロー実行が開始した Unix タイムスタンプです。"
|
||
},
|
||
"reason": {
|
||
"type": "string",
|
||
"description": "ワークフロー開始の理由です。`initial` は新規実行、`resumption` は一時停止状態からの再開を示します。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventNodeStarted": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "ノード実行 ID です。"
|
||
},
|
||
"node_id": {
|
||
"type": "string",
|
||
"description": "ワークフローグラフ内のノード ID です。"
|
||
},
|
||
"node_type": {
|
||
"type": "string",
|
||
"description": "ノードタイプ(例:`llm`、`code`、`template-transform`)です。"
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"description": "ノードの表示名です。"
|
||
},
|
||
"index": {
|
||
"type": "integer",
|
||
"description": "実行シーケンスインデックスです。"
|
||
},
|
||
"predecessor_node_id": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "先行ノードの ID(存在する場合)です。"
|
||
},
|
||
"inputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true,
|
||
"description": "このノードの入力変数です。"
|
||
},
|
||
"inputs_truncated": {
|
||
"type": "boolean",
|
||
"description": "`inputs` データが切り捨てられたかどうかです。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "ノード実行が開始した Unix タイムスタンプです。"
|
||
},
|
||
"extras": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"description": "ノード実行の追加メタデータです。"
|
||
},
|
||
"iteration_id": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "このノードがイテレーション内で実行される場合の親イテレーション ID です。"
|
||
},
|
||
"loop_id": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "このノードがループ内で実行される場合の親ループ ID です。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventNodeFinished": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "ノード実行 ID です。"
|
||
},
|
||
"node_id": {
|
||
"type": "string",
|
||
"description": "ワークフローグラフ内のノード ID です。"
|
||
},
|
||
"node_type": {
|
||
"type": "string",
|
||
"description": "Node type."
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"description": "ノードの表示名です。"
|
||
},
|
||
"index": {
|
||
"type": "integer",
|
||
"description": "実行シーケンスインデックスです。"
|
||
},
|
||
"predecessor_node_id": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "先行ノードの ID(存在する場合)です。"
|
||
},
|
||
"inputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true,
|
||
"description": "このノードの入力変数です。"
|
||
},
|
||
"inputs_truncated": {
|
||
"type": "boolean",
|
||
"description": "`inputs` データが切り捨てられたかどうかです。"
|
||
},
|
||
"process_data": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true,
|
||
"description": "ノード実行中に生成された処理データです。"
|
||
},
|
||
"process_data_truncated": {
|
||
"type": "boolean",
|
||
"description": "`process_data` が切り詰められたかどうかです。"
|
||
},
|
||
"outputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true,
|
||
"description": "ノードからの出力データです。"
|
||
},
|
||
"outputs_truncated": {
|
||
"type": "boolean",
|
||
"description": "`outputs` データが切り詰められたかどうかです。"
|
||
},
|
||
"status": {
|
||
"type": "string",
|
||
"description": "ノードの実行ステータスです。`running` は進行中、`succeeded` は完了、`failed` はエラー、`stopped` は手動停止、`exception` は予期しない障害を示します。"
|
||
},
|
||
"error": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "ノードが失敗した場合のエラーメッセージです。"
|
||
},
|
||
"elapsed_time": {
|
||
"type": "number",
|
||
"format": "float",
|
||
"description": "経過時間(秒)です。"
|
||
},
|
||
"execution_metadata": {
|
||
"type": "object",
|
||
"nullable": true,
|
||
"description": "トークン使用量を含む実行メタデータです。",
|
||
"properties": {
|
||
"total_tokens": {
|
||
"type": "integer",
|
||
"nullable": true,
|
||
"description": "このノードで消費された合計トークン数です。"
|
||
},
|
||
"total_price": {
|
||
"type": "number",
|
||
"format": "float",
|
||
"nullable": true,
|
||
"description": "このノード実行の合計コストです。"
|
||
},
|
||
"currency": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "コストの通貨(例: `USD`)です。"
|
||
}
|
||
}
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "ノード実行が開始した Unix タイムスタンプです。"
|
||
},
|
||
"finished_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "ノード実行が完了した Unix タイムスタンプです。"
|
||
},
|
||
"files": {
|
||
"type": "array",
|
||
"nullable": true,
|
||
"items": {
|
||
"type": "object",
|
||
"additionalProperties": true
|
||
},
|
||
"description": "このノードで生成されたファイルです。"
|
||
},
|
||
"iteration_id": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "このノードがイテレーション内で実行される場合の親イテレーション ID です。"
|
||
},
|
||
"loop_id": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "このノードがループ内で実行される場合の親ループ ID です。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventNodeRetry": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "ノード実行 ID です。"
|
||
},
|
||
"node_id": {
|
||
"type": "string",
|
||
"description": "ワークフローグラフ内のノード ID です。"
|
||
},
|
||
"node_type": {
|
||
"type": "string",
|
||
"description": "Node type."
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"description": "ノードの表示名です。"
|
||
},
|
||
"index": {
|
||
"type": "integer",
|
||
"description": "実行シーケンスインデックスです。"
|
||
},
|
||
"predecessor_node_id": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "先行ノードの ID(存在する場合)です。"
|
||
},
|
||
"inputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true
|
||
},
|
||
"inputs_truncated": {
|
||
"type": "boolean",
|
||
"description": "`inputs` データが切り捨てられたかどうかです。"
|
||
},
|
||
"process_data": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true,
|
||
"description": "ノード実行中に生成された処理データです。"
|
||
},
|
||
"process_data_truncated": {
|
||
"type": "boolean",
|
||
"description": "`process_data` が切り詰められたかどうかです。"
|
||
},
|
||
"outputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true
|
||
},
|
||
"outputs_truncated": {
|
||
"type": "boolean",
|
||
"description": "`outputs` データが切り詰められたかどうかです。"
|
||
},
|
||
"status": {
|
||
"type": "string",
|
||
"description": "リトライ時点のノード実行ステータスです。"
|
||
},
|
||
"error": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "リトライをトリガーしたエラーメッセージです。"
|
||
},
|
||
"elapsed_time": {
|
||
"type": "number",
|
||
"format": "float",
|
||
"description": "経過時間(秒)です。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64"
|
||
},
|
||
"finished_at": {
|
||
"type": "integer",
|
||
"format": "int64"
|
||
},
|
||
"retry_index": {
|
||
"type": "integer",
|
||
"description": "ゼロ始まりのリトライ回数インデックスです。"
|
||
},
|
||
"iteration_id": {
|
||
"type": "string",
|
||
"nullable": true
|
||
},
|
||
"loop_id": {
|
||
"type": "string",
|
||
"nullable": true
|
||
},
|
||
"execution_metadata": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true,
|
||
"description": "ノード実行のメタデータです。"
|
||
},
|
||
"files": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"additionalProperties": true
|
||
},
|
||
"description": "実行中にノードが生成したファイルです。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventIterationStarted": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "ノード実行 ID です。"
|
||
},
|
||
"node_id": {
|
||
"type": "string",
|
||
"description": "イテレーションノード ID です。"
|
||
},
|
||
"node_type": {
|
||
"type": "string",
|
||
"description": "ノードの種類(常に `iteration`)です。"
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"description": "イテレーションノードの表示名です。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64"
|
||
},
|
||
"inputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"description": "イテレーションの入力変数です。"
|
||
},
|
||
"inputs_truncated": {
|
||
"type": "boolean",
|
||
"description": "`inputs` データが切り捨てられたかどうかです。"
|
||
},
|
||
"metadata": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"description": "イテレーションのメタデータです。"
|
||
},
|
||
"extras": {
|
||
"type": "object",
|
||
"additionalProperties": true
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventIterationNext": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid"
|
||
},
|
||
"node_id": {
|
||
"type": "string"
|
||
},
|
||
"node_type": {
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"type": "string"
|
||
},
|
||
"index": {
|
||
"type": "integer",
|
||
"description": "現在のイテレーションインデックス(ゼロ始まり)です。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64"
|
||
},
|
||
"extras": {
|
||
"type": "object",
|
||
"additionalProperties": true
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventIterationCompleted": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid"
|
||
},
|
||
"node_id": {
|
||
"type": "string"
|
||
},
|
||
"node_type": {
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"type": "string"
|
||
},
|
||
"outputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true
|
||
},
|
||
"outputs_truncated": {
|
||
"type": "boolean",
|
||
"description": "`outputs` データが切り詰められたかどうかです。"
|
||
},
|
||
"inputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true,
|
||
"description": "イテレーションの入力変数です。"
|
||
},
|
||
"inputs_truncated": {
|
||
"type": "boolean",
|
||
"description": "`inputs` データが切り捨てられたかどうかです。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "イテレーションが開始した Unix タイムスタンプです。"
|
||
},
|
||
"extras": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true,
|
||
"description": "イテレーションの追加メタデータです。"
|
||
},
|
||
"status": {
|
||
"type": "string",
|
||
"description": "イテレーションの完了ステータスです。"
|
||
},
|
||
"error": {
|
||
"type": "string",
|
||
"nullable": true
|
||
},
|
||
"elapsed_time": {
|
||
"type": "number",
|
||
"format": "float"
|
||
},
|
||
"total_tokens": {
|
||
"type": "integer"
|
||
},
|
||
"execution_metadata": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"description": "トークン使用量を含む実行メタデータです。"
|
||
},
|
||
"finished_at": {
|
||
"type": "integer",
|
||
"format": "int64"
|
||
},
|
||
"steps": {
|
||
"type": "integer",
|
||
"description": "完了したイテレーションステップ数です。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventLoopStarted": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid"
|
||
},
|
||
"node_id": {
|
||
"type": "string"
|
||
},
|
||
"node_type": {
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"type": "string"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64"
|
||
},
|
||
"inputs": {
|
||
"type": "object",
|
||
"additionalProperties": true
|
||
},
|
||
"inputs_truncated": {
|
||
"type": "boolean",
|
||
"description": "`inputs` データが切り捨てられたかどうかです。"
|
||
},
|
||
"metadata": {
|
||
"type": "object",
|
||
"additionalProperties": true
|
||
},
|
||
"extras": {
|
||
"type": "object",
|
||
"additionalProperties": true
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventLoopNext": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid"
|
||
},
|
||
"node_id": {
|
||
"type": "string"
|
||
},
|
||
"node_type": {
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"type": "string"
|
||
},
|
||
"index": {
|
||
"type": "integer",
|
||
"description": "現在のループイテレーションインデックス(ゼロベース)です。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64"
|
||
},
|
||
"pre_loop_output": {
|
||
"description": "前回のループイテレーションからの出力です。",
|
||
"nullable": true
|
||
},
|
||
"extras": {
|
||
"type": "object",
|
||
"additionalProperties": true
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventLoopCompleted": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid"
|
||
},
|
||
"node_id": {
|
||
"type": "string"
|
||
},
|
||
"node_type": {
|
||
"type": "string"
|
||
},
|
||
"title": {
|
||
"type": "string"
|
||
},
|
||
"outputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true
|
||
},
|
||
"outputs_truncated": {
|
||
"type": "boolean",
|
||
"description": "`outputs` データが切り詰められたかどうかです。"
|
||
},
|
||
"inputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true,
|
||
"description": "ループの入力変数です。"
|
||
},
|
||
"inputs_truncated": {
|
||
"type": "boolean",
|
||
"description": "`inputs` データが切り捨てられたかどうかです。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64"
|
||
},
|
||
"extras": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true,
|
||
"description": "ループの追加メタデータです。"
|
||
},
|
||
"status": {
|
||
"type": "string",
|
||
"description": "ループの完了ステータスです。"
|
||
},
|
||
"error": {
|
||
"type": "string",
|
||
"nullable": true
|
||
},
|
||
"elapsed_time": {
|
||
"type": "number",
|
||
"format": "float"
|
||
},
|
||
"total_tokens": {
|
||
"type": "integer"
|
||
},
|
||
"execution_metadata": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"description": "トークン使用量を含む実行メタデータです。"
|
||
},
|
||
"finished_at": {
|
||
"type": "integer",
|
||
"format": "int64"
|
||
},
|
||
"steps": {
|
||
"type": "integer",
|
||
"description": "完了したループイテレーション数です。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventReasoningChunk": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"reasoning": {
|
||
"type": "string",
|
||
"description": "`reasoning_format` が `separated` の LLM ノードが発行する思考過程のデルタです。連続する `reasoning_chunk` イベントを連結すると、完全な推論を復元できます。このストリームは `text_chunk` と並行しており、`text` ストリームには `<think>` タグが含まれません。"
|
||
},
|
||
"node_id": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "推論を生成している LLM ノードの ID です。複数の LLM ノードが実行される場合に、推論の出所を特定できます。"
|
||
},
|
||
"is_final": {
|
||
"type": "boolean",
|
||
"description": "`true` は LLM ノードの推論フェーズの終了(「思考完了」のシグナル)を示します。空の `reasoning` を伴う場合があります。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventTextChunk": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"text": {
|
||
"type": "string",
|
||
"description": "テキスト内容のチャンクです。"
|
||
},
|
||
"from_variable_selector": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"nullable": true,
|
||
"description": "ワークフロー内のテキスト変数のソースパスです。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventWorkflowFinished": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"$ref": "#/components/schemas/WorkflowFinishedData"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventTtsMessage": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"audio": {
|
||
"type": "string",
|
||
"format": "byte",
|
||
"description": "Base64 エンコードされた MP3 音声チャンク。すべてのチャンクを順番にデコードして連結すると、完全な音声ファイルが生成されます。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "このオーディオチャンクが生成された Unix タイムスタンプです。"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventTtsMessageEnd": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"audio": {
|
||
"type": "string",
|
||
"description": "空の文字列。音声ストリームの終了を示します。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "音声ストリームが終了した Unix タイムスタンプです。"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventError": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"status": {
|
||
"type": "integer",
|
||
"description": "エラーの HTTP ステータスコードです。"
|
||
},
|
||
"code": {
|
||
"type": "string",
|
||
"description": "エラーコード。"
|
||
},
|
||
"message": {
|
||
"type": "string",
|
||
"description": "エラーメッセージ。"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventPing": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"description": "キープアライブ ping イベントです。追加プロパティはありません。"
|
||
}
|
||
]
|
||
},
|
||
"WorkflowFinishedData": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "ワークフロー実行 ID です。"
|
||
},
|
||
"workflow_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "Workflow ID."
|
||
},
|
||
"status": {
|
||
"type": "string",
|
||
"description": "ワークフローの実行ステータスです。`running` は実行中、`succeeded` は正常完了、`failed` は実行エラー、`stopped` は手動停止、`partial-succeeded` は一部のノードが成功し他が失敗、`paused` は人間の入力待ちを示します。"
|
||
},
|
||
"outputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true,
|
||
"description": "ワークフローからの出力データです。"
|
||
},
|
||
"error": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "ワークフローが失敗した場合のエラーメッセージです。"
|
||
},
|
||
"elapsed_time": {
|
||
"type": "number",
|
||
"format": "float",
|
||
"description": "合計経過時間(秒)です。"
|
||
},
|
||
"total_tokens": {
|
||
"type": "integer",
|
||
"description": "全ノードで消費された合計トークン数です。"
|
||
},
|
||
"total_steps": {
|
||
"type": "integer",
|
||
"description": "実行されたワークフローの合計ステップ数です。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "ワークフロー実行が作成された Unix タイムスタンプです。"
|
||
},
|
||
"finished_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"nullable": true,
|
||
"description": "ワークフロー実行が完了した Unix タイムスタンプです。"
|
||
},
|
||
"created_by": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"description": "作成者情報です。ストリーミングの `workflow_finished` イベントにのみ存在します。"
|
||
},
|
||
"exceptions_count": {
|
||
"type": "integer",
|
||
"nullable": true,
|
||
"description": "実行中に発生した例外の数です。ストリーミングの `workflow_finished` イベントにのみ含まれます。"
|
||
},
|
||
"files": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"additionalProperties": true
|
||
},
|
||
"nullable": true,
|
||
"description": "ワークフロー実行中に生成されたファイルです。ストリーミングの `workflow_finished` イベントにのみ存在します。"
|
||
}
|
||
}
|
||
},
|
||
"WorkflowRunDetailResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "ワークフロー実行 ID です。"
|
||
},
|
||
"workflow_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "Workflow ID."
|
||
},
|
||
"status": {
|
||
"type": "string",
|
||
"description": "ワークフローの実行ステータスです。`running` は実行中、`succeeded` は正常完了、`failed` は実行エラー、`stopped` は手動停止、`partial-succeeded` は一部のノードが成功し他が失敗、`paused` は人間の入力待ちを示します。"
|
||
},
|
||
"inputs": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "ワークフロー実行の入力変数です。生の JSON 文字列として返されるため(例:`{\"query\": \"...\"}`)、クライアント側でパースする必要があります。`null` の場合もあります。"
|
||
},
|
||
"outputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"description": "ワークフローからの出力データです。出力がまだない場合は空のオブジェクトです。"
|
||
},
|
||
"error": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "ワークフローが失敗した場合のエラーメッセージです。"
|
||
},
|
||
"total_steps": {
|
||
"type": "integer",
|
||
"description": "実行されたワークフローの合計ステップ数です。"
|
||
},
|
||
"total_tokens": {
|
||
"type": "integer",
|
||
"description": "消費された合計トークン数です。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "ワークフロー実行が作成された Unix タイムスタンプです。"
|
||
},
|
||
"finished_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"nullable": true,
|
||
"description": "ワークフロー実行が完了した Unix タイムスタンプです。"
|
||
},
|
||
"elapsed_time": {
|
||
"type": "number",
|
||
"format": "float",
|
||
"nullable": true,
|
||
"description": "合計経過時間(秒)です。"
|
||
}
|
||
}
|
||
},
|
||
"FileUploadResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "一意のファイル ID。"
|
||
},
|
||
"name": {
|
||
"type": "string",
|
||
"description": "ファイル名。"
|
||
},
|
||
"size": {
|
||
"type": "integer",
|
||
"description": "ファイルサイズ(バイト)。"
|
||
},
|
||
"extension": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "ファイル拡張子。"
|
||
},
|
||
"mime_type": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "ファイルの MIME タイプ。"
|
||
},
|
||
"created_by": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"nullable": true,
|
||
"description": "ファイルをアップロードしたユーザーの ID。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "アップロードタイムスタンプ(Unix エポック秒)。"
|
||
},
|
||
"preview_url": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "ファイルのプレビュー URL。"
|
||
},
|
||
"source_url": {
|
||
"type": "string",
|
||
"description": "ファイルの署名付きダウンロード URL です。"
|
||
},
|
||
"original_url": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "ファイルの元の URL。"
|
||
},
|
||
"user_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"nullable": true,
|
||
"description": "未使用です。常に `null` になります。"
|
||
},
|
||
"tenant_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"nullable": true,
|
||
"description": "関連付けられたテナントの ID。"
|
||
},
|
||
"conversation_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"nullable": true,
|
||
"description": "関連付けられた会話の ID。"
|
||
},
|
||
"file_key": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "未使用です。常に `null` になります。"
|
||
}
|
||
}
|
||
},
|
||
"EndUserDetail": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "エンドユーザー ID。"
|
||
},
|
||
"tenant_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "テナント ID。"
|
||
},
|
||
"app_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"nullable": true,
|
||
"description": "アプリケーション ID。"
|
||
},
|
||
"type": {
|
||
"type": "string",
|
||
"description": "エンドユーザーのタイプ。Service API ユーザーの場合は常に `service_api` です。"
|
||
},
|
||
"external_user_id": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "API リクエストで提供された `user` 識別子です(例:[チャットメッセージを送信](/api-reference/チャットメッセージ/チャットメッセージを送信) の `user` フィールド)。"
|
||
},
|
||
"name": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "エンドユーザー名。"
|
||
},
|
||
"is_anonymous": {
|
||
"type": "boolean",
|
||
"description": "ユーザーが匿名かどうかを示します。元の API リクエストで `user` 識別子が提供されなかった場合、`true` になります。"
|
||
},
|
||
"session_id": {
|
||
"type": "string",
|
||
"description": "セッション識別子。デフォルトは `external_user_id` の値です。"
|
||
},
|
||
"created_at": {
|
||
"type": "string",
|
||
"format": "date-time",
|
||
"description": "作成タイムスタンプ。"
|
||
},
|
||
"updated_at": {
|
||
"type": "string",
|
||
"format": "date-time",
|
||
"description": "最終更新タイムスタンプ。"
|
||
}
|
||
}
|
||
},
|
||
"WorkflowLogsResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"page": {
|
||
"type": "integer",
|
||
"description": "現在のページ番号です。"
|
||
},
|
||
"limit": {
|
||
"type": "integer",
|
||
"description": "1 ページあたりの件数です。"
|
||
},
|
||
"total": {
|
||
"type": "integer",
|
||
"description": "ログエントリの合計数です。"
|
||
},
|
||
"has_more": {
|
||
"type": "boolean",
|
||
"description": "さらにページがあるかどうかです。"
|
||
},
|
||
"data": {
|
||
"type": "array",
|
||
"items": {
|
||
"$ref": "#/components/schemas/WorkflowLogItem"
|
||
},
|
||
"description": "ワークフローログエントリのリストです。"
|
||
}
|
||
}
|
||
},
|
||
"WorkflowLogItem": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "ログエントリ ID です。"
|
||
},
|
||
"workflow_run": {
|
||
"$ref": "#/components/schemas/WorkflowRunSummary"
|
||
},
|
||
"created_from": {
|
||
"type": "string",
|
||
"description": "ワークフロー実行のソース(例:`service-api`)です。"
|
||
},
|
||
"created_by_role": {
|
||
"type": "string",
|
||
"description": "作成者のロール(例:`end_user`、`account`)です。"
|
||
},
|
||
"created_by_account": {
|
||
"type": "object",
|
||
"nullable": true,
|
||
"description": "管理者ユーザーが作成した場合のアカウント詳細です。",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "アカウント ID。"
|
||
},
|
||
"name": {
|
||
"type": "string",
|
||
"description": "アカウント表示名。"
|
||
},
|
||
"email": {
|
||
"type": "string",
|
||
"description": "アカウントメールアドレス。"
|
||
}
|
||
}
|
||
},
|
||
"created_by_end_user": {
|
||
"$ref": "#/components/schemas/EndUserSummary"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "ログエントリが作成された Unix タイムスタンプです。"
|
||
},
|
||
"details": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"nullable": true,
|
||
"description": "ログエントリの追加詳細です。"
|
||
}
|
||
}
|
||
},
|
||
"WorkflowRunSummary": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "ワークフロー実行 ID です。"
|
||
},
|
||
"version": {
|
||
"type": "string",
|
||
"description": "ワークフローバージョン識別子です。"
|
||
},
|
||
"status": {
|
||
"type": "string",
|
||
"description": "ワークフローの実行ステータスです。`running` は実行中、`succeeded` は正常完了、`failed` は実行エラー、`stopped` は手動停止、`partial-succeeded` は一部のノードが成功し他が失敗、`paused` は人間の入力待ちを示します。"
|
||
},
|
||
"error": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "ワークフローが失敗した場合のエラーメッセージです。"
|
||
},
|
||
"elapsed_time": {
|
||
"type": "number",
|
||
"format": "float",
|
||
"description": "合計経過時間(秒)です。"
|
||
},
|
||
"total_tokens": {
|
||
"type": "integer",
|
||
"description": "消費された合計トークン数です。"
|
||
},
|
||
"total_steps": {
|
||
"type": "integer",
|
||
"description": "実行されたワークフローの合計ステップ数です。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "ワークフロー実行が作成された Unix タイムスタンプです。"
|
||
},
|
||
"finished_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"nullable": true,
|
||
"description": "ワークフロー実行が完了した Unix タイムスタンプです。"
|
||
},
|
||
"exceptions_count": {
|
||
"type": "integer",
|
||
"description": "実行中に発生した例外の数です。"
|
||
},
|
||
"triggered_from": {
|
||
"type": "string",
|
||
"description": "ワークフロー実行をトリガーしたソースです。`app-run` はアプリまたは API からの実行、`webhook` は Webhook トリガーによる実行、`schedule` はスケジュールトリガーによる実行を示します、`plugin` はプラグイントリガーによる実行を示します。"
|
||
}
|
||
}
|
||
},
|
||
"EndUserSummary": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "エンドユーザー ID。"
|
||
},
|
||
"type": {
|
||
"type": "string",
|
||
"description": "エンドユーザーの種類です。"
|
||
},
|
||
"is_anonymous": {
|
||
"type": "boolean",
|
||
"description": "エンドユーザーが匿名かどうかです。"
|
||
},
|
||
"session_id": {
|
||
"type": "string",
|
||
"description": "セッション識別子です。"
|
||
}
|
||
}
|
||
},
|
||
"AudioToTextRequest": {
|
||
"type": "object",
|
||
"description": "音声からテキストへの変換のリクエストボディ。",
|
||
"required": [
|
||
"file"
|
||
],
|
||
"properties": {
|
||
"file": {
|
||
"type": "string",
|
||
"format": "binary",
|
||
"description": "音声ファイルです。MIME タイプで検証され、`audio/mp3`、`audio/m4a`、`audio/wav`、`audio/amr`、`audio/mpga` のいずれかである必要があります。上限:`30 MB`。"
|
||
},
|
||
"user": {
|
||
"type": "string",
|
||
"description": "ユーザー識別子。"
|
||
}
|
||
}
|
||
},
|
||
"AudioToTextResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"text": {
|
||
"type": "string",
|
||
"description": "音声認識からの出力テキスト。"
|
||
}
|
||
}
|
||
},
|
||
"TextToAudioRequest": {
|
||
"type": "object",
|
||
"description": "テキストから音声への変換のリクエストボディ。`message_id` または `text` のいずれかを指定してください。",
|
||
"properties": {
|
||
"message_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "メッセージ ID です。両方が指定された場合、`text` よりも優先されます。"
|
||
},
|
||
"text": {
|
||
"type": "string",
|
||
"description": "変換する音声コンテンツ。"
|
||
},
|
||
"user": {
|
||
"type": "string",
|
||
"description": "ユーザー識別子。"
|
||
},
|
||
"voice": {
|
||
"type": "string",
|
||
"description": "テキスト読み上げに使用する音声。利用可能な音声は、このアプリに設定された TTS プロバイダーによって異なります。デフォルトには[アプリケーションのパラメータ情報を取得](/api-reference/アプリケーション設定/アプリケーションのパラメータ情報を取得) → `text_to_speech.voice` の `voice` 値を使用してください。"
|
||
},
|
||
"streaming": {
|
||
"type": "boolean",
|
||
"description": "ストリーミングレスポンスを有効にするかどうか。"
|
||
}
|
||
}
|
||
},
|
||
"AppInfoResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"name": {
|
||
"type": "string",
|
||
"description": "アプリケーション名。"
|
||
},
|
||
"description": {
|
||
"type": "string",
|
||
"description": "アプリケーションの説明。"
|
||
},
|
||
"tags": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "アプリケーションタグ。"
|
||
},
|
||
"mode": {
|
||
"type": "string",
|
||
"description": "アプリケーションモード。`completion` はテキスト生成アプリ、`chat` は基本チャットアプリ、`agent-chat` はエージェントベースのアプリ、`advanced-chat` は Chatflow アプリ、`workflow` は Workflow アプリです。"
|
||
},
|
||
"author_name": {
|
||
"type": "string",
|
||
"description": "アプリケーション作成者の名前。"
|
||
}
|
||
}
|
||
},
|
||
"WorkflowAppParametersResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"opening_statement": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "オープニングステートメントのテキストです。"
|
||
},
|
||
"suggested_questions": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "提案された質問のリストです。"
|
||
},
|
||
"suggested_questions_after_answer": {
|
||
"type": "object",
|
||
"description": "回答後の提案質問の設定です。",
|
||
"properties": {
|
||
"enabled": {
|
||
"type": "boolean",
|
||
"description": "この機能が有効かどうか。"
|
||
}
|
||
}
|
||
},
|
||
"speech_to_text": {
|
||
"type": "object",
|
||
"description": "音声テキスト変換機能の設定です。",
|
||
"properties": {
|
||
"enabled": {
|
||
"type": "boolean",
|
||
"description": "この機能が有効かどうか。"
|
||
}
|
||
}
|
||
},
|
||
"text_to_speech": {
|
||
"type": "object",
|
||
"description": "テキスト音声変換機能の設定です。",
|
||
"properties": {
|
||
"enabled": {
|
||
"type": "boolean",
|
||
"description": "この機能が有効かどうか。"
|
||
},
|
||
"voice": {
|
||
"type": "string",
|
||
"description": "TTS 音声識別子。"
|
||
},
|
||
"language": {
|
||
"type": "string",
|
||
"description": "TTS 言語。"
|
||
},
|
||
"autoPlay": {
|
||
"type": "string",
|
||
"description": "自動再生設定です。音声を自動再生するには `enabled`、手動再生を要求するには `disabled` を指定します。"
|
||
}
|
||
}
|
||
},
|
||
"retriever_resource": {
|
||
"type": "object",
|
||
"description": "ナレッジ検索の引用リソース設定です。",
|
||
"properties": {
|
||
"enabled": {
|
||
"type": "boolean",
|
||
"description": "この機能が有効かどうか。"
|
||
}
|
||
}
|
||
},
|
||
"annotation_reply": {
|
||
"type": "object",
|
||
"description": "アノテーション返信機能の設定です。",
|
||
"properties": {
|
||
"enabled": {
|
||
"type": "boolean",
|
||
"description": "この機能が有効かどうか。"
|
||
}
|
||
}
|
||
},
|
||
"more_like_this": {
|
||
"type": "object",
|
||
"description": "類似コンテンツ機能の設定です。",
|
||
"properties": {
|
||
"enabled": {
|
||
"type": "boolean",
|
||
"description": "この機能が有効かどうか。"
|
||
}
|
||
}
|
||
},
|
||
"sensitive_word_avoidance": {
|
||
"type": "object",
|
||
"description": "コンテンツモデレーション機能の設定です。",
|
||
"properties": {
|
||
"enabled": {
|
||
"type": "boolean",
|
||
"description": "この機能が有効かどうか。"
|
||
}
|
||
}
|
||
},
|
||
"user_input_form": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"oneOf": [
|
||
{
|
||
"title": "Text Input",
|
||
"type": "object",
|
||
"properties": {
|
||
"text-input": {
|
||
"type": "object",
|
||
"properties": {
|
||
"label": {
|
||
"type": "string",
|
||
"description": "入力フィールドの表示ラベルです。"
|
||
},
|
||
"variable": {
|
||
"type": "string",
|
||
"description": "ワークフローで使用される変数名です。"
|
||
},
|
||
"required": {
|
||
"type": "boolean",
|
||
"description": "このフィールドが必須かどうかです。"
|
||
},
|
||
"default": {
|
||
"type": "string",
|
||
"description": "入力フィールドのデフォルト値です。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"title": "Paragraph",
|
||
"type": "object",
|
||
"properties": {
|
||
"paragraph": {
|
||
"type": "object",
|
||
"properties": {
|
||
"label": {
|
||
"type": "string",
|
||
"description": "段落フィールドの表示ラベルです。"
|
||
},
|
||
"variable": {
|
||
"type": "string",
|
||
"description": "ワークフローで使用される変数名です。"
|
||
},
|
||
"required": {
|
||
"type": "boolean",
|
||
"description": "このフィールドが必須かどうかです。"
|
||
},
|
||
"default": {
|
||
"type": "string",
|
||
"description": "段落フィールドのデフォルト値です。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"title": "Select",
|
||
"type": "object",
|
||
"properties": {
|
||
"select": {
|
||
"type": "object",
|
||
"properties": {
|
||
"label": {
|
||
"type": "string",
|
||
"description": "セレクトフィールドの表示ラベルです。"
|
||
},
|
||
"variable": {
|
||
"type": "string",
|
||
"description": "ワークフローで使用される変数名です。"
|
||
},
|
||
"required": {
|
||
"type": "boolean",
|
||
"description": "このフィールドが必須かどうかです。"
|
||
},
|
||
"default": {
|
||
"type": "string",
|
||
"description": "デフォルトで選択される値。"
|
||
},
|
||
"options": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "このフォームコントロールの選択可能な値のリスト。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"description": "ユーザー入力フォームの設定です。"
|
||
},
|
||
"file_upload": {
|
||
"type": "object",
|
||
"description": "ファイルアップロードの設定。",
|
||
"properties": {
|
||
"image": {
|
||
"type": "object",
|
||
"properties": {
|
||
"enabled": {
|
||
"type": "boolean",
|
||
"description": "画像アップロードが有効かどうか。"
|
||
},
|
||
"number_limits": {
|
||
"type": "integer",
|
||
"description": "アップロード可能な画像の最大数です。"
|
||
},
|
||
"detail": {
|
||
"type": "string",
|
||
"description": "ビジョンモデルの画像詳細レベルです。"
|
||
},
|
||
"transfer_methods": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "画像アップロードで許可される転送方法です。`remote_url` はファイル URL 経由、`local_file` はアップロード済みファイルを示します。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"system_parameters": {
|
||
"type": "object",
|
||
"description": "システムレベルのパラメータ制限です。",
|
||
"properties": {
|
||
"file_size_limit": {
|
||
"type": "integer",
|
||
"description": "一般ファイルの最大サイズ(MB)です。"
|
||
},
|
||
"image_file_size_limit": {
|
||
"type": "integer",
|
||
"description": "最大画像ファイルサイズ(MB)。"
|
||
},
|
||
"audio_file_size_limit": {
|
||
"type": "integer",
|
||
"description": "最大音声ファイルサイズ(MB)。"
|
||
},
|
||
"video_file_size_limit": {
|
||
"type": "integer",
|
||
"description": "最大動画ファイルサイズ(MB)。"
|
||
},
|
||
"workflow_file_upload_limit": {
|
||
"type": "integer",
|
||
"description": "ワークフロー実行ごとの最大ファイル数です。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"ToolIconDetail": {
|
||
"type": "object",
|
||
"properties": {
|
||
"background": {
|
||
"type": "string",
|
||
"description": "ツールアイコンの背景色です。"
|
||
},
|
||
"content": {
|
||
"type": "string",
|
||
"description": "絵文字またはアイコンの内容です。"
|
||
}
|
||
}
|
||
},
|
||
"AppMetaResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"tool_icons": {
|
||
"type": "object",
|
||
"additionalProperties": {
|
||
"oneOf": [
|
||
{
|
||
"title": "Icon URL",
|
||
"type": "string",
|
||
"format": "url",
|
||
"description": "アイコンの URL。"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/ToolIconDetail"
|
||
}
|
||
]
|
||
},
|
||
"description": "ツールアイコン。キーはツール名です。"
|
||
}
|
||
}
|
||
},
|
||
"WebAppSettingsResponse": {
|
||
"type": "object",
|
||
"properties": {
|
||
"title": {
|
||
"type": "string",
|
||
"description": "WebApp タイトル。"
|
||
},
|
||
"chat_color_theme": {
|
||
"type": "string",
|
||
"description": "チャットカラーテーマ。"
|
||
},
|
||
"chat_color_theme_inverted": {
|
||
"type": "boolean",
|
||
"description": "チャットカラーテーマが反転しているかどうか。"
|
||
},
|
||
"icon_type": {
|
||
"type": "string",
|
||
"description": "使用されるアイコンのタイプ。`emoji` は絵文字アイコン、`image` はアップロードされた画像アイコンです。"
|
||
},
|
||
"icon": {
|
||
"type": "string",
|
||
"description": "アイコンのコンテンツ(絵文字または画像 ID)。"
|
||
},
|
||
"icon_background": {
|
||
"type": "string",
|
||
"description": "アイコンの背景色。"
|
||
},
|
||
"icon_url": {
|
||
"type": "string",
|
||
"format": "url",
|
||
"nullable": true,
|
||
"description": "アイコン画像の URL。"
|
||
},
|
||
"description": {
|
||
"type": "string",
|
||
"description": "WebApp の説明。"
|
||
},
|
||
"copyright": {
|
||
"type": "string",
|
||
"description": "著作権テキスト。"
|
||
},
|
||
"privacy_policy": {
|
||
"type": "string",
|
||
"description": "プライバシーポリシー URL。"
|
||
},
|
||
"custom_disclaimer": {
|
||
"type": "string",
|
||
"description": "カスタム免責事項テキスト。"
|
||
},
|
||
"default_language": {
|
||
"type": "string",
|
||
"description": "デフォルト言語コード。"
|
||
},
|
||
"show_workflow_steps": {
|
||
"type": "boolean",
|
||
"description": "ワークフローステップを表示するかどうか。"
|
||
},
|
||
"use_icon_as_answer_icon": {
|
||
"type": "boolean",
|
||
"description": "アプリアイコンを回答アイコンとして使用するかどうか。"
|
||
}
|
||
}
|
||
},
|
||
"StreamEventWorkflowPaused": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"workflow_run_id": {
|
||
"type": "string",
|
||
"format": "uuid",
|
||
"description": "このワークフロー実行記録の永続的な識別子です。[ワークフロー実行詳細を取得](/api-reference/ワークフロー/ワークフロー実行詳細を取得) と組み合わせて、実行後に結果を取得します。"
|
||
},
|
||
"paused_nodes": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "一時停止中のノード ID のリストです。"
|
||
},
|
||
"outputs": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"description": "一時停止時の部分的な出力です。"
|
||
},
|
||
"reasons": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"additionalProperties": true
|
||
},
|
||
"description": "一時停止の理由です。"
|
||
},
|
||
"status": {
|
||
"type": "string",
|
||
"description": "ワークフローの実行ステータスです。"
|
||
},
|
||
"created_at": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "作成タイムスタンプ。"
|
||
},
|
||
"elapsed_time": {
|
||
"type": "number",
|
||
"format": "float",
|
||
"description": "合計経過時間(秒)です。"
|
||
},
|
||
"total_tokens": {
|
||
"type": "integer",
|
||
"description": "消費された合計トークン数です。"
|
||
},
|
||
"total_steps": {
|
||
"type": "integer",
|
||
"description": "実行された合計ステップ数です。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventAgentLog": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"node_execution_id": {
|
||
"type": "string",
|
||
"description": "ノード実行 ID です。"
|
||
},
|
||
"id": {
|
||
"type": "string",
|
||
"description": "エージェントログエントリ ID です。"
|
||
},
|
||
"label": {
|
||
"type": "string",
|
||
"description": "Log label."
|
||
},
|
||
"parent_id": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "親ログエントリ ID です。"
|
||
},
|
||
"error": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "エージェントステップが失敗した場合のエラーメッセージです。"
|
||
},
|
||
"status": {
|
||
"type": "string",
|
||
"description": "エージェントステップのステータスです。"
|
||
},
|
||
"data": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"description": "エージェントステップのデータです。"
|
||
},
|
||
"metadata": {
|
||
"type": "object",
|
||
"additionalProperties": true,
|
||
"description": "エージェントステップのメタデータです。"
|
||
},
|
||
"node_id": {
|
||
"type": "string",
|
||
"description": "Node ID."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventHumanInputRequired": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"form_id": {
|
||
"type": "string",
|
||
"description": "フォームインスタンスの識別子。エラーメッセージやログに含まれます。Service API の呼び出しには `form_token` を使用してください。"
|
||
},
|
||
"node_id": {
|
||
"type": "string",
|
||
"description": "このフォームを生成した Human Input ノードの ID。"
|
||
},
|
||
"node_title": {
|
||
"type": "string",
|
||
"description": "Human Input ノードの表示タイトル。"
|
||
},
|
||
"form_content": {
|
||
"type": "string",
|
||
"description": "ワークフロー変数が置換された、事前レンダリング済みのフォーム本文。"
|
||
},
|
||
"inputs": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"description": "フォーム入力コントロールの種類。使用可能な値:`paragraph`(複数行テキスト)、`select`(リストからの単一選択)、`file`(単一ファイルのアップロード)、`file-list`(複数ファイルのアップロード)。"
|
||
},
|
||
"output_variable_name": {
|
||
"type": "string",
|
||
"description": "この入力の送信値をワークフロー内で参照する変数名。送信時の `inputs` オブジェクトのキーに対応します。"
|
||
},
|
||
"default": {
|
||
"type": "object",
|
||
"nullable": true,
|
||
"description": "ワークフローコンテキストから解決されるデフォルト値。デフォルトが設定されていない場合は `null`。",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"description": "デフォルト値のソース。`constant` は `value` をリテラル文字列として使用します。`variable` は `selector` がワークフロー変数を指します。"
|
||
},
|
||
"selector": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "`type` が `variable` の場合の変数参照パス(例:`[\"node_id\", \"var_name\"]`)。少なくとも 2 要素を含みます。"
|
||
},
|
||
"value": {
|
||
"type": "string",
|
||
"description": "`type` が `constant` の場合のリテラルデフォルト値。常に文字列です。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"description": "受信者が記入するフォーム入力フィールド。"
|
||
},
|
||
"actions": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"maxLength": 20,
|
||
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
|
||
"description": "アクションボタンの識別子。受信者がこのボタンを選択したら、`action` として [人間の入力フォームを送信](/api-reference/人間の入力/人間の入力フォームを送信) に渡します。"
|
||
},
|
||
"title": {
|
||
"type": "string",
|
||
"maxLength": 100,
|
||
"description": "受信者に表示されるボタンのラベル。"
|
||
},
|
||
"button_style": {
|
||
"type": "string",
|
||
"description": "ボタンの視覚スタイル。使用可能な値:`primary`、`default`、`accent`、`ghost`。"
|
||
}
|
||
}
|
||
},
|
||
"description": "送信時に受信者が選択できるアクション(ボタン)。"
|
||
},
|
||
"display_in_ui": {
|
||
"type": "boolean",
|
||
"description": "フォームが Dify コンソール UI にも表示されるかどうか。"
|
||
},
|
||
"form_token": {
|
||
"type": "string",
|
||
"nullable": true,
|
||
"description": "[人間の入力フォームを取得](/api-reference/人間の入力/人間の入力フォームを取得) と [人間の入力フォームを送信](/api-reference/人間の入力/人間の入力フォームを送信) のアクセストークン。人間の入力ノードがメール配信またはコンソール配信を使用する場合は `null` になります(Service API は WebApp 配信のフォームのみ操作できます)。"
|
||
},
|
||
"resolved_default_values": {
|
||
"type": "object",
|
||
"additionalProperties": {
|
||
"type": "string"
|
||
},
|
||
"description": "入力の `output_variable_name` をキーとする事前入力デフォルト値。すべての値は文字列化されます。"
|
||
},
|
||
"expiration_time": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Unix タイムスタンプ(秒)。これを過ぎるとフォームは送信できなくなります。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventHumanInputFormFilled": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"node_id": {
|
||
"type": "string",
|
||
"description": "フォームが記入された Human Input ノードの ID。"
|
||
},
|
||
"node_title": {
|
||
"type": "string",
|
||
"description": "Human Input ノードの表示タイトル。"
|
||
},
|
||
"rendered_content": {
|
||
"type": "string",
|
||
"description": "受信者の入力値で描画されたフォーム本文(`human_input_required` の `form_content` は未入力のテンプレートです)。"
|
||
},
|
||
"action_id": {
|
||
"type": "string",
|
||
"description": "受信者が選択したアクションの識別子([人間の入力フォームを送信](/api-reference/人間の入力/人間の入力フォームを送信) に渡された `action` の値と一致します)。"
|
||
},
|
||
"action_text": {
|
||
"type": "string",
|
||
"description": "選択されたアクションの表示テキスト。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"StreamEventHumanInputFormTimeout": {
|
||
"allOf": [
|
||
{
|
||
"$ref": "#/components/schemas/ChunkWorkflowEvent"
|
||
},
|
||
{
|
||
"$ref": "#/components/schemas/StreamEventBase"
|
||
},
|
||
{
|
||
"type": "object",
|
||
"properties": {
|
||
"data": {
|
||
"type": "object",
|
||
"properties": {
|
||
"node_id": {
|
||
"type": "string",
|
||
"description": "フォームが期限切れとなった Human Input ノードの ID。"
|
||
},
|
||
"node_title": {
|
||
"type": "string",
|
||
"description": "Human Input ノードの表示タイトル。"
|
||
},
|
||
"expiration_time": {
|
||
"type": "integer",
|
||
"format": "int64",
|
||
"description": "Unix タイムスタンプ(秒)。フォームが期限切れとなった時刻。"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"tags": [
|
||
{
|
||
"name": "ワークフロー",
|
||
"description": "ワークフローの実行と管理のための操作です。"
|
||
},
|
||
{
|
||
"name": "ファイル操作",
|
||
"description": "ファイルのアップロード操作です。"
|
||
},
|
||
{
|
||
"name": "エンドユーザー",
|
||
"description": "エンドユーザー情報に関連する操作です。"
|
||
},
|
||
{
|
||
"name": "音声・テキスト変換",
|
||
"description": "音声からテキストおよびテキストから音声への変換です。"
|
||
},
|
||
{
|
||
"name": "アプリケーション設定",
|
||
"description": "アプリケーションの設定、パラメータ、メタデータです。"
|
||
},
|
||
{
|
||
"name": "人間の入力",
|
||
"description": "人間の入力を要する一時停止中のワークフローの再開操作です。"
|
||
}
|
||
]
|
||
}
|