API拡張
開発者はAPI拡張モジュールの機能を強化することができます。現在サポートされているモジュール拡張は以下の通りです:
moderation
コンテンツの審査external_data_tool
外部データの利用
モジュールの拡張機能を有効にするには、APIと認証用のAPIキー(Difyによって自動生成されることも可能、オプション)を準備する必要があります。
モジュールの機能を開発するだけではなく、DifyがAPIを正しく呼び出すためには以下の仕様に従う必要があります。
API仕様
Difyは以下の仕様に従ってあなたのAPIを呼び出します:
Header
ヘッダー | 値 | 説明 |
---|---|---|
Content-Type | application/json | リクエストの内容はJSON形式であることを示します。 |
Authorization | Bearer | APIキーはトークン形式で送信され、api_key を検証して提供されたAPIキーと一致するかを確認し、インターフェースのセキュリティを確保します。 |
Request Body
API Response
検証
DifyがAPIベースの拡張機能を設定する際、DifyはAPIエンドポイントにリクエストを送信してAPIの利用可能性を確認します。
APIエンドポイントがpoint=ping
を受け取った場合、インターフェースはresult=pong
を返す必要があります。具体的には以下の通りです:
Header
Request Body
API 期待返答
例
ここでは外部データツールを例に、特定地域の外部天気情報を取得するシナリオを示します。
API例
Header
Request Body
API 返答
コード例
このコードはPythonのFastAPIフレームワークに基づいています。
-
必要な依存関係をインストールします。
-
インターフェース仕様に従ってコードを作成します。
-
APIサービスを起動します。デフォルトポートは8000で、APIの完全なアドレスは
http://127.0.0.1:8000/api/dify/receive
です。設定したAPIキーは123456
です。 -
Dify にこの API を設定します。
-
アプリケーション内でこの API 拡張を選択します。
アプリケーションのデバッグ中に、Dify は設定された API を呼び出し、以下の内容を送信します(例):
API は以下のように返答します:
ローカルデバッグ
APIサービスをローカルでデバッグするためには、Ngrok を使用してAPIサービスのエンドポイントをパブリックネットワークに公開し、クラウドでローカルコードをデバッグすることができます。操作手順は以下の通りです。
- https://ngrok.com の公式ウェブサイトにアクセスし、Ngrokファイルを登録してダウンロードします。
ダウンロード
- ダウンロードが完了したら、ダウンロードディレクトリに移動し、以下の手順に従って圧縮ファイルを解凍し、指示に従って初期化スクリプトを実行します。
-
- ローカルAPIサービスのポートを確認してください:
ポート確認
次に、以下のコマンドを実行して起動します:
-
起動成功の例は以下の通りです:
Ngrok 起動
- Forwardingのセクションで、上記の画像のように、
https://177e-159-223-41-52.ngrok-free.app
(これは例です。ご自身のものに置き換えてください)が公開されたドメインになります。
- 上記の例に従って、ローカルで起動したサービスエンドポイントを公開し、コード例のエンドポイント:
http://127.0.0.1:8000/api/dify/receive
をhttps://177e-159-223-41-52.ngrok-free.app/api/dify/receive
に置き換えます。
このAPIエンドポイントはパブリックネットワークからアクセス可能です。これにより、DifyでこのAPIエンドポイントを設定してローカルコードをデバッグすることができます。構成手順については、外部データツール をご参照ください。
Cloudflare Workersを使用したAPI拡張のデプロイメント
API拡張をデプロイする際には、Cloudflare Workersを使用することをお勧めします。Cloudflare Workersを利用することで、簡単にパブリックアドレスを提供でき、しかも無料で使用することができます。
詳細については、Cloudflare Workersを使用したAPI Toolsのデプロイ をご参照ください。