🛠️

Vertex AI Agent Builderでノーコードの対話型AIエージェントを構築しRAGを実現する

2024/07/20に公開

TL;DR

Google Cloud製品のひとつである Vertex AI Agent Builder を使ってノーコードでの対話型AIエージェントでRAGもどきを実現した話です。

背景

少し前に世間で言うところのDevRelの取り組みを行う部署に異動しました。ずっとプロダクト開発畑にいた私としては、こういったビジネスサイドの経験はそこまで豊富ではありません。
前任者は非常にしっかりしていて膨大な量の業務に対し完璧にGoogle Slide, SpreadSheet, Form, Docs, Drive, Canvaを中心にまとめてくれていました。権限委譲してもらった資料の数は30前後。
探し当てるスキルが低いわたし、慣れない業務に右も左もわからない中、資料の中のどこに記載があるのかあたりをつけるだけでも一苦労。そんなことよりも辛いのは、絶対に資料の中のどこかに書いてあるんだけど、キーワードが悪いのか見つけられない。検索にかなりの時間を費やした挙げ句、

私「あのぅ資料ちゃんと見たんだけど見つからなくてー、〜〜」
前「あ、XXの資料の◯◯ページに書いてあるんですけど、〜〜」
私「あ、そっちかーごめんね書いてあるのに〜〜」

というやり取りが発生する。(前任者は「探すより聞くほうが早いので何でも聞いて下さい!」と言ってくれてたので割とお言葉に甘えてたものの、エンジニアにありがち(?)な「聞く」という行為がけっこうハードルが高いのですw)

「複数サービスに跨ってうまいこと検索できないかな〜何ならこの生成AI時代にLLM使ってうまいこと解決策提示するとかできないんかな〜〜」と、面倒くさがりな私はそんなことを日々考えていたのでした。

解決策

ちょうどその頃、前の部署でちょろっと触っていたGoogle CloudのVertex AI Studioにて、Geminiをはじめとした生成AIをGUIで利用していました。その中のAdcancedな設定に グラウンディング という項目があるんですね。

グラウンディングとは。

生成 AI において、グラウンディングとは、モデルの出力を検証可能な情報源に紐付ける仕組みを指します。特定のデータソースにアクセスできるモデルを用意することで、グラウンディングによってその出力を特定のデータに紐づけ、コンテンツの創作の余地を減らすことができます。

だそうです。
項目の下の「カスタマイズ」を押すと 根拠づけのカスタマイズ を設定するよう求められます。
「グラウンディング」とは、「根拠づけ」ということなんですね。(それでもわかりづらいですが、要はLLMのレスポンスの中にこちらが指定した根拠のあるソースを紐づけられるよという話)

ここの設定に、「引き継がれた資料である社内ドキュメントの数々を紐づけることで、いわゆる社内RAG的な仕組みを実現できるんじゃね?」とひらめいたことがきっかけです。

結論から言うと、こちらはうまくいきませんでした。何がうまくいかなかったかというと、グラウンディングを有効にした上で、例えば「◯◯事業部のミッションを教えて」といった社内特有のプロンプトを投げても社内ドキュメントの内容はかすりもせず、一般的な回答しか返してくれませんでした。

社内ドキュメントを見ていなさそうな一般的な回答しか得られなかった例

これは根拠である「データストアのパス」の設定がうまくいっていないのか、プレビュー版で動作不安定なのか、モデルとの組み合わせなのか、何が問題だったのか未だによくわかっていません。

Agent Builder

上記グラウンディングの根拠づけを設定する上で必要なデータストアの設定をしていたところ、何やら同じ場所に「アプリ」という項目を見つけました。

これは一体・・!

軽い気持ちでこのアプリというのを試してみたところ、、これですよ、これ!(社内情報すぎてほぼほぼモザイクなんですがw)


これを活用し、先日行った合宿では、アジェンダ作りのためにこんなことも行いました。

今期のXX事業部の戦略を練るため合宿を行います。アジェンダを準備するにあたり下記を洗い出してください。
・これまでのミッション
・活動内容
・課題
・目標設定案

実現方法

それでは早速、Howの部分を紹介していきましょう。

データストアの設定

まずは根拠となるデータソースの設定を行います。

  1. Agent Builder > データストア を選択し、 データストアを作成
  2. Cloud Storage を選択
  3. 社内ドキュメントをアップロードしたGoogle Storageのパスを指定(※ここでは割愛しますが予めpdfにした資料をStorageにアップロードしておいてください)し、続行
  4. 任意のデータストア名を入力し、作成

以上でデータストアの設定は完了です。

アプリの設定

次に、上記で設定したデータストアを指定したアプリを構築します。

  1. Agent Builder > アプリ を選択し、 アプリを作成する
  2. アプリの種類は 検索 を選択
  3. アプリ名会社または組織名 に任意の名前を入れる。ほかすべてデフォルトでOK。

  4. ここで先程作ったデータソースをチェック!

以上でアプリの設定は完了です。

使ってみる

アプリトップページに戻ると作ったアプリが一覧に表示されるので、アプリを選択するとこちらの検索画面に遷移します。

今後の展望

動的データソースの統合

今は静的ドキュメントであるpdfをアップロードして検索の根拠に使っていますが、検索したいソースの中には日々積み上がるフォームの回答内容のスプシも入れて、 X月Y日のZZZの準備で足りてないものを洗い出して とかもできそうじゃないですか。
データソースにはStorage以外にもデータベースなど複数接続先があったのでたぶん組み合わせられるんじゃないかな。

他アプリの検証

アプリの作成時、検索以外にも「チャット」「レコメンデーション」「エージェント」という項目もあったので別の用途としても使えそう。

まとめ

Google Cloudコンソール上から使うものであってプロダクト導入となると違ってきますが、本件のようにちょっとした部署内に散在するドキュメントを統合しつつ生成AIとしても使うといった用途には向いていると思いました。ノーコードなので非エンジニアでもGUIポチポチでできるのでとっつきやすいのではないでしょうか。

Discussion