自動運転AIチャレンジ2024専用AIアシスタントを作ってみよう！　～ クラウドサービス編 ～

# はじめに
[NotebookLM編](https://qiita.com/soyaoki/items/e9752ba307fa25ebd851) / [Dify編](https://qiita.com/soyaoki/items/407b83a36cf0a59d3e1f) に続く第三弾です。

これまでは低コスト(¥0)に重きを置いていましたが、コスト面はある程度目を瞑った場合どうなるだろう？…ということで大手クラウドベンダ (Google Cloud) のサービスを使ってAIアシスタントを作ってみました。なお当初の目的である、**AIアシスタントを簡単に構築すること** は見失わずに、なるべく容易なシステム構築手段を選びました。


# クラウドサービス選定
大手クラウドベンダからはたくさんのサービスが提供されていますが、今回は 初心者向け かつ コスト的にも優位な **Google Cloud** を使ってみます。

以下が非常に参考になりました。

>Vertex AI Agent Builder（Vertex AI Search - Summarization）
>ある程度の品質を Google に担保してもらいたい初級者および中級者向けのサービスです。

https://blog.g-gen.co.jp/entry/comparing-rag-architecture-across-cloud-vendors

Integrations(Pre-GA) を使えばSlack連携もできる点もGoodでした。
外部から呼び出せるカスタム版 NotebookLMになりそうな予感…

https://cloud.google.com/dialogflow/vertex/docs/concept/integration

## Google Cloud

Google Cloudには、以下のようなリファレンスアーキテクチャが用意されていますが、
なるべく簡単に構築したいのでこちらは使いません。

https://cloud.google.com/architecture/rag-capable-gen-ai-app-using-vertex-ai?hl=ja

https://cloud.google.com/architecture/rag-capable-gen-ai-app-using-gke?hl=ja

コードを1行も記述せずにエージェント作成可能な **Vertex AI Agent Builder** を使ってみます。

https://cloud.google.com/products/agent-builder?hl=ja

Agent Builderで作成できるアプリには、検索 / チャット / レコメンデーション / エージェントがありますが、今回は **エージェント** を作成してみます。

# 手順

基本的には以下を参考にして躓くことなく構築できました。
気になった点をメモ程度に残します。

https://cloud.google.com/dialogflow/vertex/docs?hl=ja

https://qiita.com/mrsd/items/5bb4f826eccabea7d643

https://qiita.com/ckw-1227/items/37a7c1f0c5e63d9b9e8f


### 1. アプリを作成する

エージェントを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/03aa4d7e-ced9-9ef4-93c3-c496f42b9b30.png)

:::note 
`検索`はデータストア内のファイル検索＋簡単な要約（インタラクティブな対話ではありません）、`チャット`はエージェントの前身であるDialogflow CXのようで細かな設定を自身で行えばRAGができそうでした。`レコメンデーション`は触っていません。
:::

https://qiita.com/niwa2308/items/2bae101ccc489f053323

Goal等はこのように設定してみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/67956865-edbb-9558-6ede-02e2351e5d85.png)

GenAI周りはモデルとトークン上限、温度が変更できるようです。モデルは`Gemini-1.0-Pro`, `Gemini-1.5-Flash`, `text-bison@002`がありました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/c1cbd84f-0bda-d419-be80-933bc980ca2c.png)


### 2. データストアを作成する

データソースは`Could Storage` を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/ce64bc98-a10c-d510-542b-d647f7fb8b59.png)

:::note warn
記事執筆時点では、PDF、HTML、TXT、CSV、DOCX、PPTX、JSONのみサポートです。マークダウンやソースコード・スクリプトは対象外なのでご注意ください。今回は無理やりTXTとして取り込んでいます。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/43533e1c-d209-15a4-4ed5-006377bde47a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/2a3aa3ee-4ae1-be88-b857-8adc84e21158.png)

ドキュメントチャンキングも設定できました。細かいパラメータはありませんでしたが…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/f2cdd3ed-778e-f052-6b33-a0ee7302e295.png)


作成を押して数分待つと格納したファイルが読み込まれたデータストアが作成されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/56782d6d-e782-139f-45b0-20355d34654b.png)

:::note warn
`ウェブサイトのコンテンツ`は、ドメインを所有しているサイトしか対象にできませんので、ご注意ください。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/d2d80bce-499b-d5f2-1180-5a2a1490e47d.png)

### 3. テスト

データストアを参照して答えていそうです。
Dify編で使用した`Gemma`と比べて回答が洗礼されている印象です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/eddd8126-dc98-bad2-3dd4-c586a6a714bd.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/91d7c1c6-74bc-8dcd-be93-17c6e324407e.png)

### 4. Slack連携

Integrations画面からSlackをConnectします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/6c609054-376b-13ff-7970-31c1396c182e.png)

Dialogflow CXと同じなので、以下が参考になりました。

https://zenn.dev/cloud_ace/articles/0667077d10d188

実際にSlackから呼ぶとこのような感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/53cc3ca1-d41d-2565-2232-418391195716.png)

とっとこちゅら太郎のAutowareモジュール…？

# コスト

システム構築〜30回ほどテストチャットで、¥42でした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628135/1aeadeae-6ee2-58f8-5cc8-a316a414b715.png)

※ 無料トライアルクレジットがあったので、¥9になっています。

https://cloud.google.com/generative-ai-app-builder/pricing?hl=ja


# おわりに

Difyに比べると、システム構築が圧倒的に楽でした。数時間でSlack連携までできます。
またNotebookLMに比べると、GenAIモデル変更、温度パラメータ調整、システムプロンプト設定が可能な点も良かったです。コストも想定よりも圧縮可能な感覚です。

一方で、他の細かい設定がラップされている印象で、上記の変更だけで性能が不足する場合に困ると感じました。PoCなどでサクっと試す分にはもってこいと思いますので、ノーコードのメリット・デメリットを認識した選定が重要と感じます。

ノーコードの限界も見えてきたので、次はゴリゴリにコードを書いてRAGシステム構築をやってみたいところです。

つづく？

この記事は、AI文章校正ツール「ちゅらいと」で校正されています。