1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでGoogle検索(Vertex AI Search)

Posted at

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

「プロジェクトの作成」をクリックする
プロジェクトの作成.png

プロジェクト名に「vertex-sample」を入力し「作成」をクリックする
新しいプロジェクト.png

課金が有効になっていない場合、「請求先アカウントの作成」をクリックしてカード情報を登録する
課金.png

「Vertex AI Agent Builer ...」をチェックして「CONTINUE AND ACTIVE THE API」をクリックすると、アプリの作成へ移動します
ようこそ.png

アプリの作成

ウェブサイト検索の「作成」をクリックする
アプリを作成する.png

Enterprise エディションの機能のチェックを「オン」、高度な LLM 機能のチェックを「オフ」、アプリ名「vertex-sample」を入力、会社名「sample」を入力して「続行」をクリックする
ウェブサイト検索アプリの構成.png

「データストアを作成」をクリックする
データストア.png

ウェブサイトのコンテンツの「SELECT」をクリックする
データソースを選択.png

ウェブサイトの高度なインデックス登録のチェックを「オフ」、追加するサイトに「www.amazon.co.jp/*」を入力して「続行」をクリックする ※検索したいサイトに合わせて適時変更してください
データストアのウェブサイトの指定.png

データストア名に「amazon」を入力して「作成」をクリックする
データストアの構成.png

「作成」をクリックするとアプリが作成されます
アプリを作成する(完成).png

サービスアカウントの作成

サービスアカウントの作成

IAMと管理から「サービスアカウント」を選択する
IAMと管理.png

「サービスアカウントを作成」をクリックする
サービスアカウント.png

サービスアカウント名に「vertex-sample」を入力して「作成して続行」をクリックする
サービスアカウントの作成.png

ロールに「ディスカバリ エンジン サービス エージェント」を選択して「続行」をクリックする
アクセスを許可する.png

「完了」をクリックする
サービスアカウントの作成(完了).png

キーの作成

作成したサービスアカウントの操作から「鍵の管理」を選択する
鍵の管理.png

「キーを追加」をクリックして、「新しい鍵を作成」をクリックする
新しい鍵を作成.png

「JSON」を選択して「作成」をクリックする
秘密鍵の作成.png

JSONファイル「vertex-sample-452107-ba0856f4f13a.json」がダウンロードされる
秘密鍵の保存.png

パッケージインストール

「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」をクリックする
トップページ左上.png

プロジェクトを選択に表示されている「vertex-sample」のIDがプロジェクトIDになります
プロジェクトを選択.png

エンジンID(アプリID)の確認

アプリのリストにある「vertex-sample」のIDがエンジンID(アプリID)になります
アプリID.png

ソースコード

Google検索でAmazonから恐竜図鑑を検索するプログラム(vertex_sample.py)を作成する

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: やりすぎ恐竜図鑑 なんでここまで進化した!? : 小林 快 ...
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?