Google CloudでRAGが簡単に作れて驚いた話

## 目次
- 最初の雑談
- 今回やること
- やってみたことの記録
    - Cloud Storageでバケット作成
    - Vertex AI SearchでRAG作成
- さいごに

## 最初の雑談
OCI、AWSはある程度使っているけど、Google Cloud（GCP）にはちゃんと手を出していなかったので、いいタイミングだと思い無料トライアルを始めた。
で、何を作ろうかと思ったところで無難にRAGを選択したところ、メッチャ簡単で驚いたので記録しておくことにした。
ものの10分程度で出来た。
2回目以降は5分もあればできた。
OCIでこんなにアッサリ出来るサービスあったっけ？とちょっと考えたくらい。

## 今回やること
- 非構造データを取り込んで、データソースとする
    - Cloud Storageを使用
    - 元データとして使うのは自分の取り込んだファイルだけ
- Google CloudでRAGを作成
    - 今回は一番お手軽なVertex AI Searchを使用


## やってみたことの記録
- 手順は大きく分けて2つ
1. Cloud Storageでバケットを作成して、非構造のファイルをアップロード
2. Vertex AI Searchでバケット内のファイルを取り込み、自然言語で情報を取得

### Cloud Storageの作成
1.メニューから「Cloud Storage」-> 「バケット」を選択
![スクリーンショット 2025-06-07 205243.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/a9857715-ab4a-4706-8ee5-2596faaa05b6.png)

2.バケット名を入力
![スクリーンショット 2025-06-07 205345.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/1b0d52a6-3360-4aea-a75c-61f8b32b8bac.png)

:::note info
バケット名はグローバルで一意とする必要があるため、被らない名前を入れる。
個人や組織が特定されそうな命名は避ける必要がある。
:::

3.ロケーションタイプを選択
![スクリーンショット 2025-06-07 205436.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/2b4791b8-b3a4-48d8-abb7-4980dc2abf6d.png)
今回は単一リージョンとして東京を選択している

4.データの保存方法を選択
![スクリーンショット 2025-06-07 205534.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/a0f6bb67-6468-4c06-aba5-7afd926dba2b.png)
今回はデフォルトのStandardとしている

5.オブジェクトへのアクセス制御を選択
![スクリーンショット 2025-06-07 205602.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/65d29672-def9-4e2e-89d8-6791eb53a906.png)

6.オブジェクトデータの保護方法を選択
![スクリーンショット 2025-06-07 205640.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/128b212d-1a88-41da-b130-10a595ac6c02.png)
ここもデフォルト

7.作成を押すと下記のようなポップアップが出てくるので、「このバケットに対するパブリックアクセス禁止を適用する」にチェックを入れて確認を押す
![スクリーンショット 2025-06-07 205710.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/f20356cd-5a94-475f-9fb1-f276224e8b4b.png)
今回のバケットはVertex AI Searchからしか見に行かないので

8.バケットの出来上がり
![スクリーンショット 2025-06-07 205844.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/88506b29-a56a-469a-ae70-7ac2359acc23.png)

9.アップロードから「ファイルをアップロード」を選択し、ファイルをアップロードする
![スクリーンショット 2025-06-07 205902.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/c30ac06c-4c46-446d-a9c0-ab1442fac445.png)
今回は思いつきで作った「ソフトバンクホークス所属選手一覧.xlsx」をアップロードする

これでCloud Storageの作成は完了
![スクリーンショット 2025-06-07 205948.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/ebb0b343-1638-450b-9c0f-4ea32e79638e.png)

---

### Vertex AI Searchでアプリを作成

1.メニューから「Vertex AI」-> 「Vertex AI Search」を選択
![スクリーンショット 2025-06-07 210128.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/f6ba9009-8c31-47c8-9a0b-e005bfd3385e.png)
メニューから見つからない時は、検索窓に「Vertex AI Search」と入れれば出てくる
![スクリーンショット 2025-06-07 210059.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/0a3a5ade-ea00-422c-9976-16c6b99b1937.png)

2.新しい検索アプリの作成から、今回は「Custom search(general)を選択」
![スクリーンショット 2025-06-07 210128.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/277cd032-a998-4478-9486-22b444da8b41.png)

初回の場合は、以下のようなAPI有効化を問う画面が出てくるため、APIをActive化する
![スクリーンショット 2025-06-07 210201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/f24a1433-ab83-4359-9a53-bea909195fe3.png)

すぐに有効化される
![スクリーンショット 2025-06-07 210227.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/262d5568-ddd7-439d-a4f8-217eacac0e38.png)

3.作成するアプリの種類を選択する。今回は「Custom search(general)を選択」
![スクリーンショット 2025-06-07 210314.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/1f6cfe49-e6d3-4897-92ef-f3df29aa8908.png)

4.アプリ名、会社名、アプリのロケーションを選択する
![スクリーンショット 2025-06-07 210340.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/905edf71-99f3-45dd-8633-8be269d88a19.png)

- アプリ名
    - 任意に決定。自分で分かればOK。
- 会社名
    - モデルからの応答精度が向上するらしいが、今回は簡単なハンズオンなので何でもよい。
- アプリのロケーション
    - global（グローバル）を選択
入力終わったら「続行」を押す
![スクリーンショット 2025-06-07 210421.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/d7e56cca-ea6d-4bf5-96e0-61c11dfbb184.png)

ロケーションについては、自分に合ったものを選ぶとよい
![スクリーンショット 2025-06-07 210435.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/7cb793ca-e5b4-4fc5-b4e2-80730f3fc2cd.png)

5.データストアの作成を行うため、「データストアを作成」を押す
![スクリーンショット 2025-06-07 210459.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/72c86457-5926-4d46-8807-58b1dd4f10d0.png)

今回は事前に作成したCloud Storageのバケットをデータソースにするため、「Cloud Storage」を選択する
![スクリーンショット 2025-06-07 210535.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/7ba3d583-9201-4ef4-bd7c-0162a5f9c0cd.png)

ちなみに選べるソースは14種類
自分の目的に合ったソースを選ぶ。
![スクリーンショット 2025-06-07 210608.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/ba87cc0b-fd23-4033-b389-21fa93e9963d.png)

6.Cloud Storageのデータインポート設定を行う
- データの種類
    - 今回は非構造化ドキュメントがソースなので「非構造化ドキュメント（PDF、HTML、TXTなど）」を選択
- 同期の頻度
    - 今回は定期的を選択
    - 1日ごと、3日ごと、5日ごとから選べる
    - 今回は1日ごとを選択
- インポートするフォルダまたはふぁいるを選択します
    - 前述で作成したCloud Storageのフォルダを参照から選ぶ
![スクリーンショット 2025-06-07 210632.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/fdc45e0d-19d7-4633-918c-cad88f657eea.png)

参照ボタンから自分のバケットを選択
![スクリーンショット 2025-06-07 210715.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/1c37153d-86c0-41a1-b68b-172c2882ec2a.png)

正しく表示されていればOK
![スクリーンショット 2025-06-07 210742.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/622c1bcd-5cc9-42f2-85eb-7f28bf8e9baa.png)

7.データコネクタ名を入力する
こちらも自分で分かればよい
![スクリーンショット 2025-06-07 210856.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/6a84622b-8bcb-48e2-8ead-bc9e26767804.png)

データコネクタが作成される
![スクリーンショット 2025-06-07 210924.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/924cec7c-4541-4d4d-a3ba-5958c216e12a.png)

8.作成ボタンを押すと、アプリが作成される
これだけで検索アプリが出来上がり！簡単！
![スクリーンショット 2025-06-07 210948.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/1a83f776-3306-4c69-97df-14d4f88af5bb.png)

9.データストアのデータを手動で初回同期する
Cloud Storage上のファイルをすぐに自動で初回同期してくれないため、手動で同期しにいく必要がある
「接続されたデータストア」から、自分のデータストアを選択
![スクリーンショット 2025-06-07 211036.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/a03fa00a-a4a5-4bb9-9350-3189871fec0a.png)

コネクタの状態が「作成中」の場合は、完了するまで待機。
![スクリーンショット 2025-06-07 211056.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/7dd5c87b-6e18-464d-a318-12edaf3b5d3c.png)

完了するとステータスが有効となる。
右上の「手動同期」を押す
![スクリーンショット 2025-06-07 211835.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/9aedfe29-eeac-44b6-b809-f6e384e070a5.png)

ポップアップが出るので、今すぐ同期を押す
![スクリーンショット 2025-06-07 211903.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/4f52c9ba-a668-4d21-8460-d6dfe149379d.png)

「データの取り込みアクティビティ」から、同期処理のステータスが確認できる
![スクリーンショット 2025-06-07 211936.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/b536bf80-00bf-4b1b-92d1-08edaed0a05e.png)

ステータスが「成功」となっていれば、同期完了！
![スクリーンショット 2025-06-07 212152.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/70a3659a-46fe-4627-a18a-f2e5c910defa.png)

これで検索アプリの作成と、実行の準備が完了した。
お手軽！！

---
早速聞いてみる。
![スクリーンショット 2025-06-07 212224.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/d5fae0a8-554c-49f8-b462-87415ae2f2ea.png)

データソース内容から正しく結果を返してくれている。
大きなデータではないので、もちろんハレーションもなし！

構成メニューからLLMのモデル変更やカスタムチューニングの設定も可能。
細かいチューニングはこちらから実施できる。
![スクリーンショット 2025-06-08 154356.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4039678/572b54d3-8734-4191-9167-c60951e5190d.png)

## さいごに
今回はなんとなーくGCPでRAGを作ってみたけど、思ってた以上にお手軽簡単にできて驚きました。
次はデータベース作って、RAGと組み合わせてみようと思います。