このドキュメントはまもなく非推奨になります
ドキュメント再編の一環として、このページは段階的に廃止されます。
このカードをクリックして、最新情報が含まれる更新版にリダイレクトしてください。
新しいドキュメントに不一致や改善が必要な箇所を見つけた場合は、ページ下部の「問題を報告」ボタンを使用してください。
リバース呼び出しとは、プラグインがDify内のAppデータにアクセスできることを意味します。このモジュールは、ストリーミングと非ストリーミングの両方のAppコールをサポートしています。
エンドポイントタイプ:
Chatbot/Agent/Chatflow
タイプのアプリケーションは、すべてチャットタイプのアプリケーションであり、同じ入力パラメータと出力パラメータを持つため、統一的にチャットインターフェースとして扱うことができます。
- Workflowアプリケーションは、独立したワークフローインターフェースを占有します。
- Completion(テキスト生成)アプリケーションは、独立したCompletionエンドポイントを占有します。
注意:プラグインは、プラグインと同じWorkspace内のAppにのみアクセスできます。
チャットインターフェースのリクエスト エントリーポイント
エントリーポイント
エンドポイント仕様
def invoke(
self,
app_id: str,
inputs: dict,
response_mode: Literal["streaming", "blocking"],
conversation_id: str,
files: list,
) -> Generator[dict, None, None] | dict:
pass
response_mode
がstreaming
の場合、インターフェースはGenerator[dict]
を返し、それ以外の場合はdict
を返します。具体的なインターフェースフィールドについては、ServiceApi
の戻り値を参照してください。
Endpoint
内でチャットタイプのAppをリクエストし、結果を直接返すことができます:
import json
from typing import Mapping
from werkzeug import Request, Response
from dify_plugin import Endpoint
class Duck(Endpoint):
def _invoke(self, r: Request, values: Mapping, settings: Mapping) -> Response:
"""
与えられたリクエストでエンドポイントを呼び出します。
"""
app_id = values["app_id"]
def generator():
response = self.session.app.workflow.invoke(
app_id=app_id, inputs={}, response_mode="streaming", files=[]
)
for data in response:
yield f"{json.dumps(data)} <br>"
return Response(generator(), status=200, content_type="text/html")
ワークフローエンドポイント エントリーポイント
エントリー
self.session.app.workflow
エンドポイント仕様
def invoke(
self,
app_id: str,
inputs: dict,
response_mode: Literal["streaming", "blocking"],
files: list,
) -> Generator[dict, None, None] | dict:
pass
Completionエンドポイントのリクエスト
エントリー
self.session.app.completion
エンドポイント仕様
def invoke(
self,
app_id: str,
inputs: dict,
response_mode: Literal["streaming", "blocking"],
files: list,
) -> Generator[dict, None, None] | dict:
pass
このページを編集する | 問題を報告する