API 拡張

開発者はAPIエクステンションを通じてモジュールの機能を拡張できます。現在、以下のモジュールがサポートされています:

  • モデレーション 敏感内容の監査

  • 外部データツール 外部データツール

モジュールの機能を拡張する前に、APIと認証用のAPIキー(Difyが自動生成することも可能)を準備する必要があります。

対応するモジュール機能を開発するだけでなく、DifyがAPIを正しく呼び出せるよう、以下の仕様にも従う必要があります。

APIに基づくエクステンション

API仕様

Difyは以下の仕様に従ってインターフェースを呼び出します:

ヘッダー

Header
Value
Desc

Content-Type

application/json

リクエスト内容はJSON形式です。

Authorization

Bearer {api_key}

APIキーはトークン形式で送信されます。api_keyを解析し、提供されたAPIキーと一致するか確認してください。

リクエストボディ

APIレスポンス

検証

DifyがAPIベースのエクステンションを設定する際、DifyはAPIエンドポイントにリクエストを送り、APIの有効性を確認します。

APIエンドポイントがpoint=pingを受信した場合、インターフェースはresult=pongを返す必要があります。具体的には次の通りです:

ヘッダー

リクエストボディ

API期待レスポンス

ここでは外部データツールを例にとり、地域に基づいて外部の天気情報を取得するシナリオを示します。

API例

ヘッダー

リクエストボディ

APIレスポンス

コード例

コードはPython FastAPIフレームワークに基づいています。

  1. 依存関係をインストールする

  2. インターフェース仕様に従ってコードを書く

  3. APIサービスを起動する。デフォルトポートは8000で、APIの完全なアドレスは:http://127.0.0.1:8000/api/dify/receive、設定されたAPIキーは123456です。

  4. DifyにこのAPIを設定します。

APIの設定
  1. アプリでこのAPIエクステンションを選択します。

エクステンションの選択

アプリのデバッグ時、Difyは設定されたAPIにリクエストを送り、以下の内容(例)を送信します:

APIレスポンスは以下の通りです:

ローカルデバッグ

Difyクラウド版は内網APIサービスにアクセスできないため、ローカルでAPIサービスをデバッグするために、Ngrokを使用してAPIサービスのエンドポイントをパブリックに公開し、クラウドでローカルコードをデバッグすることができます。操作手順は次の通りです:

  1. https://ngrok.comの公式サイトにアクセスし、登録してNgrokファイルをダウンロードします。

    ダウンロード
  2. ダウンロードが完了したら、ダウンロードディレクトリに移動し、以下の説明に従って圧縮ファイルを解凍し、初期化スクリプトを実行します。

  3. ローカルAPIサービスのポートを確認します:

ポートの確認

次に以下のコマンドを実行して開始します:

  • 成功例は以下の通りです:

Ngrokの起動
  1. Forwardingで示されるように、上の図ではhttps://177e-159-223-41-52.ngrok-free.app(これは例のドメインです。自分のドメインに置き換えてください)がパブリックドメインとなります。

  • 上記の例に従って、ローカルで既に起動しているサービスエンドポイントを公開し、コード例のインターフェース:http://127.0.0.1:8000/api/dify/receivehttps://177e-159-223-41-52.ngrok-free.app/api/dify/receiveに置き換えます。

これで、このAPIエンドポイントはパブリックアクセス可能となります。これで、DifyでこのAPIエンドポイントを設定してローカルデバッグコードを実行できます。設定手順については、を参照してください。

Cloudflare Workersを使用したAPIエクステンションのデプロイ

Cloudflare Workersを使用してAPIエクステンションをデプロイすることをお勧めします。Cloudflare Workersは簡単にパブリックアドレスを提供でき、無料で使用できます。

Cloudflare Workers を使用した API ツールのデプロイ

Last updated