Endpoint(エンドポイント)

この記事では、プラグイン内のエンドポイントの構造を説明するために、クイックスタート:レインボーキャットプロジェクトを例として取り上げます。完全なプラグインコードは、Githubで確認できます。

グループの定義

Endpointグループは、複数のEndpointをまとめたものです。Difyプラグインで新しいEndpointを作成する際には、以下の設定項目を入力する必要があります。

「Endpoint Name」の他に、グループ構成情報を記述することで、新しいフォーム項目を追加できます。保存すると、同じ構成情報を使用する複数のインターフェースが表示されるようになります。

構造

  • settings (map[string] ProviderConfig): エンドポイントの設定定義

  • endpoints (list[string], required): 特定のendpointインターフェース定義を指定します。

インターフェース定義

  • path (string): werkzeugのインターフェース標準に従います。

  • method (string): インターフェースのメソッド。HEAD GET POST PUT DELETE OPTIONSのみをサポートします。

  • extra (object): 基本情報以外の設定情報

    • python (object)

      • source (string): このインターフェースを実装するソースコード

エンドポイントの実装

dify_plugin.Endpointを継承したサブクラスを実装し、_invokeメソッドを実装する必要があります。

  • 入力パラメータ

    • r (Request): werkzeugからのリクエストオブジェクト

    • values (Mapping): パスから解析されたパスパラメータ

    • settings (Mapping): このエンドポイントの設定情報

  • 戻り値

    • werkzeugからのレスポンスオブジェクト。ストリーミングでの応答をサポートします。

    • 直接的な文字列の戻り値はサポートしません。

コード例:

Last updated