DifyとAzure AI Searchでもっと簡単にRAG検索してみた

先日、「Difyを使用してAzure AI Searchに接続してRAG検索できるのか」について試した内容について記事を掲載しました。

blog.jbs.co.jp

上記の記事より簡単にAzure AI Searchに接続する方法がわかったため、こちらに掲載します。

DifyとAzure AI Searchの接続

OpenAIのGPTsの時とは異なり、DifyからAzure AI Searchへの接続には中継サーバーは不要です。

そのため、以下の図のように接続できます。

DifyとAzure AI Searchの接続方法

今回は以下のブログで紹介したAzure AI Searchのインデックスのみを使用します。

blog.jbs.co.jp

Difyのカスタムツールを作成し、Azure AI Searchに接続する為のOpenAPI定義を設定します。

※OpenAPI定義の作成方法は、この記事内の”OpenAPI定義の作成方法”の項目に記載しています。

※Difyのカスタムツールの作成方法は下記のブログを参照して下さい。

DifyとAzure AI SearchでRAG検索してみた - JBS Tech Blog

{
  "openapi": "3.0.0",
  "info": {
    "title": "Azure Cognitive Search Integration",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://****************.search.windows.net"
    }
  ],
  "paths": {
    "/indexes/******-index/docs": {
      "get": {
        "operationId": "getSearchResults",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "2021-04-30-Preview"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "@odata.context": { "type": "string" },
                    "value": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "@search.score": { "type": "number" },
                          "ID": { "type": "string" },
                          "Sample": { "type": "string" },
                          "Question": { "type": "string" },
                          "Answer": { "type": "string" },
                          "Category1": { "type": "string" },
                          "Category2": { "type": "string" },
                          "UM": { "type": "string" },
                          "ServiceMenu": { "type": "string" },
                          "AzureSearch_DocumentKey": { "type": "string" },
                          "metadata_storage_name": { "type": "string" },
                          "metadata_storage_path": { "type": "string" }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

認証方法にapi-keyを設定します。

api-keyの値は、Azure AI Searchのキー情報を設定して下さい。

テスト結果が取得できれば、設定完了です。

OpenAPI定義の作成方法

下記の画像のように、Azure AI Searchのインデックス画像をキャプチャして、GPT-4oなどに相談すれば作成できます。
※社外秘情報などを含む場合は、モデル学習に使用されない環境であるか確認してから作成してください。

まとめ

今回の記事では、DifyとAzure AI Searchを活用した簡単なRAG検索の方法を紹介しました。

従来のOpenAIのGPTsとの接続と異なり、DifyからAzure AI Searchへの接続は中継サーバーを必要としません。

これにより、接続がスムーズかつ効率的に行えるようになりました。

今回の方法を実践することで、より迅速かつ簡単にAzure AI Searchを利用したRAG検索が可能となり、ビジネスの効率化やデータ検索の精度向上に役立つでしょう。

最後に、社外秘情報を含む場合は、適切な環境で作業を行うことを忘れずにしてください。

今後も、この方法を参考にしながら、さらに効率的なデータ検索の方法を追求していただければ幸いです。

執筆担当者プロフィール
株木 誠

株木 誠

先端技術部の株木です。 Azure OpenAI Service を活用するアプリ開発を担当しています。

担当記事一覧