フォーム読み込み中
Google Cloud の Vertex AI Agent Builder の検索機能(以下、Vertex AI Search)を活用することで、カスタマイズされた検索エンジンをローコードで作ることができます。
一般的に検索エンジンの構築には高度な専門知識を必要としますが、 Google Cloud(特に Vertex AI Search) を活用することで、データ連携の手間を削減し、特に検索ロジックの部分を AI に任せて簡単に構築することができます。
今回の記事では Google Cloud のサービスコンポーネントを使って、ローコードな手順で RSS フィード検索エンジンを作ってみたので紹介します。
まずはじめに完成形を見てもらいます。以下が本記事で作成した検索エンジンです。
記事のネタや内容に関する質問をすると、データベースで連携済みの RSS フィード から質問の内容に関連した記事を表示して、それらの検索結果の概要を短文で回答してくれます。
画像1.検索エンジンプレビュー画面
RSS(Rich Site Summary)は、ウェブサイトの更新状況を配信する XLM 形式のデータフォーマットです。主にニュース記事やブログ投稿など、頻繁に更新される情報を効率よく配信するために使われます。RSS の形式によって配信される情報のことを一般的に RSSフィードと呼びます。RSS リーダーと呼ばれる、任意の RSS フィードを登録収集するツールを使うことで、Web サイトの新規ページや記事が追加された際に、自動的にタイトル・日付・ページの概要を取得できるようになります。
主要なRSS
現在は以下の2種の RSS が主流規格として使われています。
RSS 2.0 :
最も広く使用されているRSS 規格です(シェア:60%〜80%)。シンプルな構造で、多数のブラウザやAPI プラットフォームがこの規格をサポートしています
ATOM:
RSS 2.0よりも新しい規格です。より拡張性と標準化を重視した設計になっており、豊富なメタデータを扱うことができます。
それぞれの規格は使われている XML タグや構造に違いがあり、データ取得の際にはそれらを考慮したデータ整形が必要となります。
今回作成した検索エンジンの全体構成は以下のようになっています。
① Cloud Scheduler で定期実行 Job を作成し、 Pub/Sub のトピックにメッセージを発行
② Pub/Sub がメッセージをサブスクリプションに転送
③ サブスクリプショントリガーで Cloud Run Function を起動。
⇒ RSS フィードを取得、BigQuery へのデータ転送
④ RSS フィードのデータを構造化して BigQuery テーブルに保管
⑤ BigQuery からVerex AI Search の検索アプリに接続したデータストアにデータ連携
画像2.検索エンジン全体構成
まずは RSS フィードから取得するデータ構造を確認して、それらを BigQuery テーブル設計に落とし込みます。前項で紹介した RSS2.0 と ATOM の XML 要素は以下のようになっています。
RSS 2.0
<channel>: フィードの基本情報
<title>: フィードのタイトル
<link>: フィードのURL
<description>: フィードの説明
<item>: 各記事を表す要素
<title>: 記事のタイトル
<link>: 記事のURL
<description>: 記事の要約
<pubDate>:記事の発行日
<content:encoded>: 記事の本文
Atom
<feed>: フィードの基本情報
<title>: フィードのタイトル
<link>: フィードのURL
<updated>: フィードの最終更新日時
<id>: フィードの一意なID
<entry>: 各記事を表す要素
<title>: 記事のタイトル
<link>: 記事のURL
<id>: 記事の一意なID
<published>:記事の発行日
<updated>: 記事の最終更新日時
<summary>: 記事の要約
<content>: 記事の本文
両要素の共通の情報を考慮して、BigQuery のテーブルスキーマを以下のように設定しました。
フィールド名 | 種類 | モード | 説明 |
|---|---|---|---|
rssfeed | STRING | REQUIRED | フィードのタイトル |
title | STRING | REQUIRED | 記事のタイトル |
link | STRING | REQUIRED | 記事のURL |
published | TIMESTAMP | REQUIRED | 記事の発行日 |
summary | STRING | NULLABLE | 記事の要約 |
content | STRING | NULLABLE | 記事の本文 |
次に Cloud Run Function の駆動トリガーを作成するため、Pub/Sub トピックと Cloud Scheduler Job をそれぞれ作成します。Job はターゲットタイプを Pub/Sub にして、送信先に作成した Topic を設定します。
画像3.Pub/Sub トピックとCloud Scheduler Job の作成
RSS フィードから記事の更新情報を取得して BigQuery のテーブルに転送する処理は、Cloud Run Function によって実現します。今回は以下の内容で Function を作成しました。
トリガー基本設定
トリガータイプ:Cloud Pub/Sub
トピック:前項で作成した Pub/Sub トピック
※ Pub/Sub トピックを指定することで自動的にサブスクリプションが作成されます
Runtime環境変数
PROJECT_ID:GoogleProject のID
DATASET_ID:BigQuery のデータセットID
TABLE_ID:BigQuery のテーブルID
RSS_FEED_URL:取得対象の RSS フィード URL
使用ライブラリ
RSSフィードの取得:feed parser (RSSフィードを取り扱うpythonライブラリ) を使用
BigQueryへの転送:google.cloud の bigquery ライブラリを使用
スクリプト処理の流れ
① feedparser で指定のRSS フィードを取得
② 各プロパティを BigQuery のテーブルスキーマに対応した オブジェクトデータとしてパッキング
③ bigquery クライアントに保管先テーブルと、パッキングしたデータを指定して転送処理
BigQuery の RSS フィードのテーブルからデータを収集して、RSS フィードの記事を検索する AI アプリを作成します。Agent Builder を使って以下の設定で データストアと Vertex AI Search アプリを作成しました。
Vertex AI Search アプリ
作成アプリの種類:ウェブサイト検索
構成:Enterprise エディションの機能、高度なLLM機能をオン
接続データストア
ネイティブソース:BigQuery
データ種別:Structured - BigQuery table with your own schema
同期頻度:定期的(1日1回)※即席で動かしたい場合は 「1回のみ」を指定
インポートするデータセット:作成した BigQuery テーブルを指定
作成した検索エンジンの動作確認を行います
①Cloud Scheduler Job の実行
データ連携の最初のトリガーである Cloud Scheduler Job を実行します。
作成したジョブを指定して実行してください。
※スケジュールによる自動実行、あるいは強制実行します
②BigQuery テーブルのデータ確認
Cloud Run Function が実行されて BigQuery のテーブルにデータが保管されたことを確認します。
SELECT * FROM `<テーブルID>` でクエリを実行すると、以下のように取得したデータがテーブルに保管されていることを確認できます。
画像4.BigQuery テーブルのデータ確認
③BigQueryとデータストアの同期
BigQuery のテーブルデータをデータストア側に転送します。
作成したデータストアにアクセスしてデータインポートを実行してください。
※データストア作成時に定期実行を選択した場合は手動インポートが出来ません。自動実行されるのを待ってください
④検索アプリへの質問の投稿
最後に作成した検索アプリのプレビュー画面にアクセスして、質問文を投稿します。
検索結果と回答が返ってくるのを確認できるはずです。
※データストアにデータをインポートしてから、検索アプリに反映されるまで多少の時間を要します
画像5.検索エンジン動作確認画面
今回の記事では Google Cloud のサービスコンポーネントを使って、ローコードな手順で RSS フィード検索エンジンを作ってみました。一般的に検索エンジンの構築には高度な専門知識を必要としますが、 Google Cloud(特に Vertex AI Search) を活用することで、データ連携の手間を削減し、特に検索ロジックの部分を AI に任せて簡単に構築することができます。
皆さんも興味がありましたら、ぜひチャレンジしてみてください。
Vertex AI Search を使って社内文書を検索する生成 AI を構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。
Vertex AI DIY プランでは、以下の3つのことをご体験いただけます。
詳細は、関連サービスにある「Vertex AI DIYプラン」をご確認ください。
Vertex AI Search を使って社内文書を検索する生成AIを構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。
Google の生成AIの導入を考えている方はもちろん、どのようなものか確認したいという方でもご活用いただけます。
Looker は定義から集計、可視化の一連のデータ分析プロセスをカバーする BI ツールを超えるデータプラットフォームです。ソフトバンクは、顧客のニーズに合わせて柔軟なサポートを提供し、Looker を活用したデータドリブンな企業変革を支援しています。
Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。
MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。
条件に該当するページがございません