【Google Cloud】簡単！ ノーコード で RAG 構築

# はじめに

近年、急速に発展を遂げる AI 技術の中で、特に注目を集めているのが **RAG（Retrieval Augmented Generation）** です。   
RAG は、大規模言語モデルをカスタマイズすることで、特定の領域に特化した、より精度の高い回答を生成できるため、様々な分野での活用が期待されています。   

しかし、RAG を0から構築しようとすると、複雑なシステム設計や膨大なデータの設計など、多くのハードルが立ちはだかります。   
そこで、Google Cloud が提供する **Agent Builder** が注目を集めています。   
Agent Builder を利用すれば、**コーディング不要** でRAG 環境を簡単に構築可能です。   

# Agent Builder とは

Google Cloud の **Agent Builder** は、自然言語をベースに、AI を利用したアプリケーションを素早く構築できるサービスです。      
データの用意は必要ですが、実際にRAGを利用したアプリケーションが完成するまでざっくり**２STEP**です。   
今回はサンプルとして、Qiitaの記事をいくつかダウンロードし、学習させてみました。

# STEP1: データストアの作成
RAGの検索対象となるデータを一元管理するためのデータストアを作成します。 

## STEP1-1: データソースの選択
データソースの種類を選択します。   
データソースの種類は多岐にわたり、今後も増えていく見込みです。   
2025年1月現在は、以下の種類のデータソースが選択可能です。   
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1119315/dd441b1c-8512-76f9-98d0-379618a0fb0e.png)
今回はCloud Storageに配置したファイルをデータソースとして使用したいので、「Cloud Storage」を選択します。

## STEP1-2: インポートするデータの設定 (Cloud Storage の場合)
インポートするデータの形式を指定します。   
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1119315/26d8f29a-753a-637c-ed9e-d77cde4b3352.png)
今回はHTMLファイルを使用しましたので、HTMLを選択します。   
HTML以外にもJSONやPDFなど、様々な形式のデータに対応しています。

2025年1月現在はプレビュー機能ですが、データストアとの同期頻度をカスタマイズできるようになりました。   
これにより、データソースの更新頻度に合わせて、最適な同期タイミングを設定し、データの整合性を保つことが可能になります。

### 注意点
インポートするフォルダまたはファイルが指定できますが、フォルダを指定する場合は、その**フォルダの直下に検索対象のファイルを配置する**必要があります。   
フォルダ内に階層構造があり、その中のファイルを全てインポートする、という事は現在出来ませんのでご注意ください。

## STEP1-3: 構成の設定
データソースのリージョンを選択し、データストア名を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1119315/431933aa-f68a-39fa-ce9d-18b5918e8efd.png)
選択肢は現在 global（グローバル）, us（米国の複数のリージョン）, en（EUの複数のリージョン）のみです。  
コンプライアンスや規制上の理由が無い場合は、global（グローバル）を選択することが無難です。

# STEP2: アプリの作成
データストアを作成したら、そのデータソースを使用するアプリを作成します。   

## STEP2-1: アプリの種類
アプリの種類を選択します。   
2025年1月現在、以下の種類のアプリが作成可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1119315/8b942522-e772-990b-8613-21b314792731.png)
今回はRAGを構築したいため、「ドキュメント検索」を選択します。

## STEP2-2: 構成の設定（ドキュメント検索を指定する場合）
ドキュメント検索アプリの構成を設定します。   
Enterpriseエディションや、高度なLLM機能は「高度な機能」と呼ばれます。   
それぞれの設定については後述します。   
アプリのロケーションについてはデータストアと同様、コンプライアンスや規制上の理由が無ければglobal（グローバル）を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1119315/b23662bf-bb4f-dee1-2797-6ac25f2f3e00.png)

## STEP2-3: データストアの選択
データストアを選択します。   
STEP1で作成したデータストアを選択し、作成を押下するとアプリケーションが自動的に作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1119315/213e8d6c-0ff7-b236-af8d-09c2fba43555.png)

### 高度な設定を使用しない場合
検索にヒットしたドキュメントが表示されます。   
どの部分がヒットしたのかも、タイトルの下に表示されていますが、断片的な情報です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1119315/9d2ae1b0-13eb-a4d9-5864-0ecf49a1bafd.png)

### 高度なLLM機能 がONの場合
検索にヒットしたドキュメントとともに、その要約が生成AIの回答として表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1119315/e5cfb07c-7d25-5587-db42-52ce17bac00f.png)

### Enterprise Edition がONの場合
検索にヒットしたドキュメントのうち、関連性の高い文章がタイトルの下に表示されます。   
しかし、精度はあまり高くないような印象です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1119315/57e8d41d-a9f3-30db-8345-d6e8d7b26491.png)

## 出力結果
どちらの機能もONに設定すれば、検索結果の要約も、関連性が高い文章も取得可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1119315/f3f7ecc5-6f58-0b99-d2b8-8425210f124b.png)

ただし、高度な設定のON/OFFは利用料金に関わるため、自身の用途に合った設定をお勧めします。   
[料金 | Vertex AI Agent Builder | Google Cloud](https://cloud.google.com/generative-ai-app-builder/pricing?hl=ja)