Skip to main content
開発者は API 拡張モジュール機能を使用してモジュール機能を拡張できます。現在、以下のモジュール拡張がサポートされています:
  • moderation センシティブコンテンツ審査
  • external_data_tool 外部データツール
モジュール機能を拡張する前に、API と認証用の API Key を準備する必要があります。 対応するモジュール機能を開発する必要があるだけでなく、Dify が API を正しく呼び出せるように、以下の仕様に従う必要があります。

API 仕様

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

Request Body

API レスポンス

検証

Dify で API-based Extension を設定する際、Dify は API の可用性を確認するために API Endpoint にリクエストを送信します。 API Endpoint が point=ping を受信したとき、インターフェースは result=pong を返す必要があります。具体的には以下の通りです:

Header

Request Body

API 期待レスポンス

サンプル

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

API サンプル

Header
Request Body
API レスポンス

コードサンプル

コードは Python FastAPI フレームワークに基づいています。
  1. 依存関係をインストール
  2. インターフェース仕様に従ってコードを記述
  3. API サービスを起動します。デフォルトポートは 8000 で、完全な API アドレスは http://127.0.0.1:8000/api/dify/receive、設定された API Key は 123456 です。
  4. Dify でこの API を設定します。
  5. App でこの API 拡張を選択します。
App のデバッグ時、Dify は設定された API にリクエストを送信し、以下の内容を送信します(サンプル):
API レスポンスは:

ローカルデバッグ

Dify クラウド版では内部ネットワークの API サービスにアクセスできないため、ローカルで API サービスをデバッグするために、Ngrok を使用して API サービスのエンドポイントを公開ネットワークに公開し、クラウドでローカルコードをデバッグできるようにします。操作手順:
  1. https://ngrok.com の公式サイトにアクセスし、登録して Ngrok ファイルをダウンロードします。 Download
  2. ダウンロード完了後、ダウンロードディレクトリに移動し、以下の説明に従って圧縮ファイルを解凍し、説明の初期化スクリプトを実行します。
  3. ローカル API サービスのポートを確認します: ポート確認 そして、以下のコマンドを実行して起動します:
    起動成功のサンプルは以下の通りです: Ngrok 起動
  4. 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 拡張のデプロイ

API 拡張をデプロイするには Cloudflare Workers の使用をお勧めします。Cloudflare Workers は簡単に公開ネットワークアドレスを提供でき、無料で使用できます。 詳細な説明については、Cloudflare Workers を使用した API 拡張のデプロイ を参照してください。