watsonx OrchestrateでのRAG機能
watsonx Orchestrateにはベクトル・データベースのMilvusが組み込まれており、web画面からファイルをアップロードするだけで簡単にRAGの機能を使用することができます。ブラウザを用いて構成する場合には、デフォルトで使用されるembedding modelが多言語対応のものではないため、英語でしか動作しませんが、実はAgent Development Kit(以下ADK)を使用することで、embedding modelを指定し、日本語に対応させることが可能です。この記事では、ADKを用いて、日本語のPPTファイルをアップロードし、Agentから利用する手順について説明します。
Knowledge-baseの作成
yamlファイルの作成
まずは、yamlファイルを準備し、Knowledge-baseを作成します。
今回はドキュメントとして、以下のような内容のPPTファイルを使用しました。
yamlファイルの内容は以下の通りです。documentsとして、ファイルを指定し、embedding modelとしては、ibm/graite-embedding-107m-multilingualを指定してみました。利用可能なembedding modelの一覧を取得する方法が見つからずちゃんと確認できていないのですが、おそらくDallasのデータセンターで利用可能なembedding modelが使用可能なのではないかと思います。
spec_version: v1
kind: knowledge_base
name: handson_knowledge
description: >
A description of watsonx orchestrate handson.
documents:
- ./handson.pptx
vector_index:
embeddings_model_name: ibm/granite-embedding-107m-multilingual
knowledge-baseの作成
以下のコマンドでknowledge-baseを作成します。
orchestrate knowledge-bases import -f handson_knowledge.yaml
インデックス作成のステータスは以下のコマンドで確認することができます。
orchestrate knowledge-bases status -n handson_knowledge
Agentでのknowledge-baseの使用。
作成したAgentでknowledge-baseを使用するのもブラウザ側で指定できないため、ADK側で指定してあげる必要があります。Agentでknowledge-baseを使用するには以下のように指定します。
spec_version: v1
style: default
name: handson_agent
llm: watsonx/meta-llama/llama-3-2-90b-vision-instruct
description: >
you can answer about watsonx Orchestrate handson.
instructions: >
always answer in Japanese.
knowledge_base:
- handson_knowledge
Agentのインポートとテスト
以下のコマンドでAgentをインポートします。
orchestrate agents import -f handson_anget.yaml
Agent Builderより確認してみるとAgentが正しく作成され、以下のようにKnowledge sourceとしてPPTファイルが登録されているのが分かります。
プレビュー画面からテストしてみます。正しく動作しているようです。
まとめ
watsonx Orchestrateにはベクトル・データーベースが組み込まれており、あらかじめ与えておいた文書をベースに回答を生成することが可能です。現時点では日本語に対応したembedding modelを指定するにはADKを使用する必要がありますが、今後はブラウザ画面からも簡単に文書を登録できるようになることが期待されます。