PythonでGoogle検索するアプリを作成する手順です。
こちら↓のGoogle公式サイトの手順に従って作成します。
https://cloud.google.com/generative-ai-app-builder/docs/migrate-from-cse?hl=ja
これまでGoogle検索は、カスタム検索サイト制限付き JSON APIを使っていましたが、今後は Vertex AI Agent Builder へ移行する必要があります。
注: カスタム検索サイト制限付き JSON API エンドポイントは、2025 年 1 月 8 日にトラフィックの配信を停止します。
カスタム検索サイト制限付き JSON API をご利用のすべてのお客様は、Google Cloud の Vertex AI Search への移行を開始していただく必要があります。
Vertex AI Agent Builderの利用には料金がかかります。詳細は、こちら↓のGoogle公式サイトで確認できます。
https://cloud.google.com/generative-ai-app-builder/pricing?hl=ja
1年間は \$1000 分無料で利用できますが、それ以降は「1000リクエストあたり $4.00 の料金が発生」するようです。
環境
Python 3.9.21
pip 25.0.1
google-cloud-discoveryengine 0.13.6
google-auth 2.37.0
検索アプリの作成
プロジェクトの作成
Google Cloud コンソール Agent Builder ページを開く
https://console.cloud.google.com/gen-app-builder/engines?hl=ja
プロジェクト名に「vertex-sample」を入力し「作成」をクリックする
課金が有効になっていない場合、「請求先アカウントの作成」をクリックしてカード情報を登録する
「Vertex AI Agent Builer ...」をチェックして「CONTINUE AND ACTIVE THE API」をクリックすると、アプリの作成へ移動します
アプリの作成
Enterprise エディションの機能のチェックを「オン」、高度な LLM 機能のチェックを「オフ」、アプリ名「vertex-sample」を入力、会社名「sample」を入力して「続行」をクリックする
ウェブサイトの高度なインデックス登録のチェックを「オフ」、追加するサイトに「www.amazon.co.jp/*」を入力して「続行」をクリックする ※検索したいサイトに合わせて適時変更してください
データストア名に「amazon」を入力して「作成」をクリックする
サービスアカウントの作成
サービスアカウントの作成
サービスアカウント名に「vertex-sample」を入力して「作成して続行」をクリックする
ロールに「ディスカバリ エンジン サービス エージェント」を選択して「続行」をクリックする
キーの作成
「キーを追加」をクリックして、「新しい鍵を作成」をクリックする
JSONファイル「vertex-sample-452107-ba0856f4f13a.json」がダウンロードされる
パッケージインストール
「google-cloud-discoveryengine」パッケージをインストールする
$ pip install google-cloud-discoveryengine
プログラム作成
Google Cloud コンソール Agent Builder ページを開く
https://console.cloud.google.com/gen-app-builder/engines?hl=ja
プロジェクトIDの確認
トップページ左上のプロジェクト「vertex-sample」をクリックする
プロジェクトを選択に表示されている「vertex-sample」のIDがプロジェクトIDになります
エンジンID(アプリID)の確認
アプリのリストにある「vertex-sample」のIDがエンジンID(アプリID)になります
ソースコード
Google検索でAmazonから恐竜図鑑を検索するプログラム(vertex_sample.py)を作成する
from google.cloud import discoveryengine_v1 as discoveryengine
from google.oauth2 import service_account
# サービスアカウントキーのパス ※適時変更してください
SERVICE_ACCOUNT_FILE = 'vertex-sample-452107-ba0856f4f13a.json'
# プロジェクトIDとエンジンID ※適時変更してください
PROJECT_ID = 'vertex-sample-452107'
ENGINE_ID = 'vertex-sample_1740556175969'
# 認証情報の設定
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE)
# Discovery Engineクライアントの作成
client = discoveryengine.SearchServiceClient(credentials=credentials)
# 検索リクエストの作成
request = discoveryengine.SearchRequest(
serving_config=f'projects/{PROJECT_ID}/locations/global/collections/default_collection/engines/{ENGINE_ID}/servingConfigs/default_config',
query='恐竜図鑑',
page_size=5
)
# 検索の実行
response = client.search(request=request)
# 検索結果の表示
for result in response.results:
print('-----')
for key, value in result.document.derived_struct_data.items():
if key == 'link':
print(f'Link: {value}')
if key == 'title':
print(f'Title: {value}')
プログラム実行
ダウンロードしたJSONファイル「vertex-sample-452107-ba0856f4f13a.json」をソースコードと同じフォルダに入れて実行する
$ python vertex_sample.py
実行結果が表示されたら完成です
-----
Link: https://www.amazon.co.jp/%E6%81%90%E7%AB%9C-%E5%9B%B3%E9%91%91/s?k=%E6%81%90%E7%AB%9C+%E5%9B%B3%E9%91%91
Title: 恐竜 図鑑 - Amazon.co.jp
-----
Link: https://www.amazon.co.jp/%E3%82%BB%E3%82%AC%E3%83%88%E3%82%A4%E3%82%BA-SEGA-TOYS-%E3%83%9E%E3%82%A6%E3%82%B9%E3%81%A7%E3%83%90%E3%83%88%E3%83%AB-%E6%81%90%E7%AB%9C%E5%9B%B3%E9%91%91%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3/dp/B08DYTJY1R
Title: Amazon.co.jp: マウスでバトル!! 恐竜図鑑パソコン : おもちゃ
-----
Link: https://www.amazon.co.jp/%E3%83%8A%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB-%E3%82%B8%E3%82%AA%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF-%E4%B8%96%E7%95%8C%E4%B8%80%E7%BE%8E%E3%81%97%E3%81%84%E6%81%90%E7%AB%9C%E5%9B%B3%E9%91%91-%E3%83%A9%E3%82%A4%E3%83%AA%E3%83%BC%E3%83%BB%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF/dp/4863135556
Title: ナショナル ジオグラフィック 世界一美しい恐竜図鑑 | ライリー ...
-----
Link: https://www.amazon.co.jp/%E3%82%86%E3%82%8B%E3%82%86%E3%82%8B%E6%81%90%E7%AB%9C%E5%9B%B3%E9%91%91-%E5%8A%A0%E8%97%A4%E5%A4%AA%E4%B8%80/dp/4052049225
Title: Amazon.co.jp: ゆるゆる恐竜図鑑 : 加藤太一, かげ: 本
-----
Link: https://www.amazon.co.jp/%E3%82%84%E3%82%8A%E3%81%99%E3%81%8E%E6%81%90%E7%AB%9C%E5%9B%B3%E9%91%91-%E3%81%AA%E3%82%93%E3%81%A7%E3%81%93%E3%81%93%E3%81%BE%E3%81%A7%E9%80%B2%E5%8C%96%E3%81%97%E3%81%9F-%E5%B0%8F%E6%9E%97-%E5%BF%AB%E6%AC%A1/dp/480028483X
Title: Amazon.co.jp: やりすぎ恐竜図鑑 なんでここまで進化した!? : 小林 快 ...