Nutanix Enterprise AI(NAI)2.6 の推論サービス エンドポイントを利用して、Dify でチャットボットを作成してみます。今回は、Embedding モデルのエンドポイントを利用して PDF ファイルのテキストをベクトル化し、Dify に登録します。そして、チャットボットからコンテキストとして参照させてみます。
前回はこちら。
今回の内容です。
- 1. NAI での エンドポイント情報と API キーの取得
- 2. モデル(Embedding 推論サービス エンドポイント)の追加
- 3. Dify でのナレッジベース追加
- 4. チャットボットへのナレッジベース(コンテキスト)追加
- 5. チャットボットの動作確認
1. NAI での エンドポイント情報と API キーの取得
まず、NAI UI で、エンドポイントの URL を確認して、API キーをエンドポイントに割り当てておきます。
今回は、下記の投稿で作成した Embedding モデルの推論サービス エンドポイントを利用します。
- Nutanix Enterprise AI 2.6 をデプロイしてみる。Part-08:NAI の動作確認
- エンドポイント名:granite-embed-ep
1-1. エンドポイント URL の確認
NAI UI で、「推論」→「ローカル エンドポイント」→ Embedding モデルのエンドポイントの名前を開きます。
- エンドポイント名:granite-embed-ep

エンドポイントの名前と URL を記録しておきます。
- エンドポイント名:granite-embed-ep
- エンドポイント URL:https://10.1.7.122/enterpriseai/v1/embeddings

1-2. API キーでのエンドポイント追加
API キーも、以前の投稿 で作成したものを利用します。
「API キー」→ API キー(demo-key-dify-01)を選択して、「アクション」→「更新」をクリックします。

エンドポイントに、Embedding エンドポイントを追加して、「更新」をクリックします。
- エンドポイント:llama32-ep、granite-embed-ep(追加)

これで、API キーにエンドポイントが追加されました。

「+1 詳細」をクリックすると、granite-embed-ep が追加されたことが確認できます。

2. モデル(Embedding 推論サービス エンドポイント)の追加
Dify のモデル プロバイダーに、Embedding エンドポイントを追加します。
Dify の画面右上のユーザー アイコン →「設定」を開きます。

「モデル プロバイダー」を開きます。OpenAI-API-compatible のバージョンが v0.0.50 より前の場合は、「更新」をクリックしてアップデートしておきます。(アップデートした場合は、Dify を再起動しておきます)

「モデルを追加」をクリックします。

すでに Embedding モデルを追加してあり設定変更する場合は、「認証情報を管理する」→ Embedding モデルの「編集」をクリックします。

モデルの情報を入力して、「追加」または「保存」クリックします。
- Model Name:nai-embed
- Model Type:Text Embedding
- 認証名:demo-key-dify-01
- Model display name:NAI Embedding
- API Key:API キーを入力
- API Endpoint URL:https://10.1.7.122/enterpriseai/v1(/embeddings は省略)
- Model max chunkks per batch:1
- Model context size:512
- Embedding encoding format:float

モデル(Embedding モデルのエンドポイント)が追加されたことを確認します。
- 表示名:NAI Embedding

3. Dify でのナレッジベース追加
Dify のナレッジベースとして、PDF を追加します。今回は、Nutanix CE 2.1 のドキュメントの PDF ファイルを追加してみます。
3-1. PDF のダウンロード
Nutanix-Community-Edition-Getting-Started-v2_1.pdf ファイルを、Dify にアクセスしているマシンにダウンロードしておきます。
- PDF ファイル:https://download.nutanix.com/documentation/ce_v21/Nutanix-Community-Edition-Getting-Started-v2_1.pdf
3-2. Dify への PDF ファイル アップロード
Dify で、「ナレッジ」を開き、「ナレッジベースを作成」をクリックします。

「テキスト ファイルからインポート」を選択して、「参照」をクリックして、PDF ファイルをアップロードします。
- ファイル:Nutanix-Community-Edition-Getting-Started-v2_1.pdf

PDF ファイルがアップロードされたことを確認して、「次へ」をクリックします。

チャンク設定の値を変更して、「チャンクをプレビュー」をクリックします。
- 最大チャンク長:400

右側のプレビュー画面に、PDF ファイルの内容がチャンク化されて表示されたことを確認します。

埋め込みモデルと、検索設定を確認して、「保存して処理」をクリックします。

埋め込み(Embedding)処理が完了するまで待ちます。

埋め込み処理が完了して、アイコンが緑になったことを確認したら、「ドキュメントに移動」をクリックします。

3-2. ナレッジベース名とドキュメント名の変更
この後の検証で動作確認しやすいように、PDF ファイルに対応するナレッジベースとドキュメントの名前を変更しておきます。
「ナレッジ」→「ドキュメント」画面が開いているので、登録した PDF ファイル名の末尾にマウスオーバーすると表示される「名前を変更」をクリックします。

名前を変更して、「保存」をクリックします。
- ファイル名(ドキュメントの名前):nutanix-ce21-pdf

ファイル名が変更されたことを確認します。

「ナレッジ」を開き、PDF ファイルに対応するナレッジベースのパネル右上にあるボタン →「編集」をクリックします。

ナレッジベース名を変更して、「保存」をクリックします。
- ナレッジベース名:nutanix-ce-knowledge

これで、ナレッジベースの名前も変更されました。

4. チャットボットへのナレッジベース(コンテキスト)追加
「スタジオ」→「NAI チャット」を開きます。

「コンテキスト」にある、「追加」をクリックします。

ナレッジベースを選択して、「追加」をクリックします。
- 参照する知識:nutanix-ce-knowledge

コンテキストとしてナレッジベースが追加されました。

チャットボットがナレッジベースを参照することを確認しておきます。
LLM として「NAI Llama32」が登録されていることを確認したうえで、何かプロンプトを入力して、送信ボタンをクリックします。

登録した PDF ファイルをもとに回答されることを確認します。

引用として表示されているドキュメント名をクリックすると、引用した PDF の内容が表示されます。

チャットボットの設定を保存しておきます。
「公開する」→「更新を公開」をクリックします。

これで、チャットボットの設定が更新されました。

「スタジオ」をクリックすると、NAI チャットボットの「更新日時」が直近のタイムスタンプになっているはずです。

5. チャットボットの動作確認
「探索」→「WEB アプリ」にある、「NAI チャット」を開きます。

さきほどと同様に、なにかプロンプトを入力して送信ボタンをクリックします。

PDF ファイルをもとにした回答があるはずです。

「引用」にあるドキュメント名をクリックすると、引用元の PDF ファイルの内容が表示されるはずです。

つづく。
