ホーム > AIエージェント > dify > 検証 > 自社用API・自作APIをDifyに連携の検証(カスタムツール版)

自社用API・自作APIをDifyに連携の検証(カスタムツール版)

自社用API・自作APIをDifyと連携を行いたい場合、
主に
1.検索機能を「カスタムツール」として登録し、ノードとして使用する
2.ノードの「HTTPリクエスト」を使用する
の方法が考えられると思います。
「カスタムツール」を使う方法について、下記の簡易検証を行ってみました。

自社用API・自作APIを用意

  • WordPressで商品情報の管理機能を用意
    下図のようにカスタム投稿、カスタムフィールド、アイキャッチ画像等を活用してWordPressで商品情報の管理機能を用意してみました。

    図. WordPressで商品情報の管理機能
  • 自社用API・自作APIを用意
    この商品情報をAPIで外部からアクセスできるようにしました。
    自作プラグイン等での実装も可能と思います。
    例えば

    https://《ドメイン》/wp-json/simple-shop/v1/products?《検索条件のクエリストリング》

    で検索した場合、下記のような結果が返ってくるようにします。

    図. 自社用API・自作APIを用意

Difyのカスタムツールに登録

  • OpenAPIスキーマを用意
    OpenAPIスキーマは、下図のようなDifyとの連携を ツール → カスタム → カスタムツールを作成する で行う場合に必要になる定義です。
    OpenAPI-Swagger仕様
    この定義はChatGPT等のAIチャットサービスに作ってもらうのも手と思います。(現状のAPIでできることを伝える必要はあります。)

    図. OpenAPIスキーマを用意

    OpenAPIスキーマがエラーなく反映されると、下図のように「利用可能なツール」の枠が表示されます。

    図. OpenAPIスキーマの反映
  • 「利用可能なツール」枠内のテストで、実際の検索のテストが可能になっています。
    図. OpenAPIスキーマのテスト

Difiのチャットフローへの反映

  • 実装の目的を設定
    Difiのチャットフローで、下記のような画面をユーザーに提供し、
    商品名や価格で検索をしてもらって、個別の商品へのリンクへの誘導を目的としてみます。
    その際に、商品の情報は上記で用意をしていた商品情報をAPIで引っ張ってくることとします。

    図. チャットフローの目標イメージ
  • Difiのチャットフローへの反映
    チャットフローへの反映は、概略としましては下記のように反映してみました。

    • パラメタ抽出」のノードで「ツールからインポート」をクリックして、カスタムツールを選択して読み込む → 定義していたパラメータが自動で表示される
    • 実際の検索を行う「カスタムツール」をノードとして反映
    • 「パラメタ抽出」の「タイトル」「価格の下限」「価格の上限」を「カスタムツール」と紐付ける
    • 「パラメタ抽出」の指示枠で、LLMに対する指示出しを反映
    • 「カスタムツール」の検索結果を「コード実行」でレスポンスデータを分解し、ユーザーに検索結果として回答
    図. チャットフローのイメージ
  • アプリを実行
    Difyの画面右上の「公開する」をクリック後に、「更新を公開」をクリックします。
    その後に「アプリを実行」をクリックします。

    図. アプリを実行
  • アプリの動作確認
    実行されたアプリを確認します。
    この簡易検証での課題は、同じ検索語でも結果が変わる場合があります。
    要因としては「パラメタ抽出」で検索機能に渡すパラメタを作る処理にLLMの力を借りている部分が影響しており、改善箇所がある認識です。

    図. アプリの動作確認
Categorys : 検証 | dify