自社サイトにAI検索を導入しようとした際、Google Cloudが提供する「検索ウィジェット」は非常に手軽で便利です。しかし、こだわりのある開発者やWeb担当者なら、一度はこう思うはず。

「デザインをサイトに完全に統合したい」 「ウィジェットの型に縛られず、独自のUIで要約を見せたい」

その願い、Discovery Engine API と最新の Gemini 3.0 (Gemini 3 Pro/Flash) API を組み合わせれば叶います。今回は、標準ウィジェットの制約を突破し、API連携だからこそ実現できる「理想のAI検索」の実装方法と検証結果をご紹介します。

Discovery Engine API での検索APIの実装はこちらです。
タイトル、URL、概要を取得してきています。

参考:検索ウィジェット

1. なぜ「ウィジェット」ではなく「API連携」なのか?

Google Cloudの検索ウィジェットは、GUIで設定が完結する反面、UIのカスタマイズ性には限界があります。APIベースで構築することで、以下のような自社専用の検索UXが手に入ります。

  • 完全なデザインの統合: サイトのトーン&マナーに合わせ、フォントやレイアウトを自由自在に設計。
  • 回答精度のコントロール: プロンプトを調整し、自社のブランドボイスに合わせた回答スタイル(箇条書き、丁寧語など)を指定可能。
  • 独自機能の追加: AIの思考プロセスを表示したり、回答の根拠となった記事へのリンクを独自のデザインで配置したりできます。

2. Gemini 3.0 を活用した要約の実装コード

最新の google-genai SDKを使用し、Gemini 3.0 の「Thinking(思考)」機能を有効化して高精度な要約を行う実装例です。

実装コード(Python)

# google-genaiのインストール
!pip install --upgrade google-genai
from google import genai
from google.genai import types
import base64
import os

def generate():
  client = genai.Client(
      vertexai=True,
      api_key=os.environ.get("GOOGLE_CLOUD_API_KEY"),
  )

  msg1_text1 = types.Part.from_text(text="""
  # 指示
以下の各URLの内容のみを参照し、それぞれの記事の「タイトル」と「概要」をまとめてください。

# 制約事項
- 提供されたURLのページ本文以外の情報(サイトの共通メニュー、フッター、関連記事のリンク先など)は一切含めないでください。
- 1つのURLにつき、1つのまとめを作成してください。
- 外部知識や推測は含めず、ページ内に記載されている事実のみを抽出してください。

# 対象URL←Discovery Engine APIで取得してきたURLを設定します
URL: https://www.iret.co.jp/news/20241218.html 
URL: https://www.iret.co.jp/news/20240912.html 
URL: https://www.iret.co.jp/news/20250306.html 
URL: https://www.iret.co.jp/works/184.html 
URL: https://www.iret.co.jp/works/172.html

# 出力形式
■ [タイトルをここに記載]
URL: [対象URL]
概要: [本文から抽出した要約をここに記載]
---""")

  model = "gemini-3-pro-preview"
  contents = [
    types.Content(
      role="user",
      parts=[
        msg1_text1
      ]
    ),
  ]
  tools = [
    types.Tool(google_search=types.GoogleSearch()),
  ]

  generate_content_config = types.GenerateContentConfig(
    temperature = 1,
    top_p = 0.95,
    max_output_tokens = 65535,
    safety_settings = [types.SafetySetting(
      category="HARM_CATEGORY_HATE_SPEECH",
      threshold="OFF"
    ),types.SafetySetting(
      category="HARM_CATEGORY_DANGEROUS_CONTENT",
      threshold="OFF"
    ),types.SafetySetting(
      category="HARM_CATEGORY_SEXUALLY_EXPLICIT",
      threshold="OFF"
    ),types.SafetySetting(
      category="HARM_CATEGORY_HARASSMENT",
      threshold="OFF"
    )],
    tools = tools,
    thinking_config=types.ThinkingConfig(
      thinking_level="HIGH",
    ),
  )

  for chunk in client.models.generate_content_stream(
    model = model,
    contents = contents,
    config = generate_content_config,
    ):
    if not chunk.candidates or not chunk.candidates[0].content or not chunk.candidates[0].content.parts:
        continue
    print(chunk.text, end="")

generate()

3. 【検証結果】AIによる驚きの要約クオリティ

上記のコードを実行した結果、自社サイト内の複雑な情報をAIが正確に読み解き、以下のフォーマットで出力されました。

実際の出力内容

■ アイレット株式会社における生成 AI 活用事例を公開しました
URL: https://www.iret.co.jp/news/20241218.html
概要: アイレットは、Google Cloud の生成 AI サービスを活用し、新卒採用ページに24時間対応可能なチャットボットを導入しました。開発期間2ヶ月で実用化し、ハルシネーション(もっともらしい嘘)を防ぐ仕組みを構築することで、問い合わせ対応の工数削減と DX を推進しています。

■ 生成 AI 活用の推進に向け KDDI、KDDIアジャイル開発センターと Amazon Bedrock を活用した実証実験を実施しました
URL: https://www.iret.co.jp/news/20240912.html
概要: アイレットは、KDDI および KDDIアジャイル開発センターと共に、Amazon Bedrock を活用した実証実験を行いました。社内問い合わせ対応では約7割の自動応答と約3割の業務削減が見込まれ、コールセンター業務では通話要約による負荷削減や感情分析による早期対応が可能となる成果を得ました。

■ アイレット株式会社における生成 AI 活用事例を公開しました
URL: https://www.iret.co.jp/news/20250306.html
概要: アイレットは、サポートデスク担当チーム向けに生成 AI を活用した「問い合わせ要約・検索機能(cloudpack サポートデータ検索システム)」を開発しました。また、社内エンジニアへの展開に向けて、プロンプトエンジニアリングを用いた精度改善を実施しました。

■ 社内の生成 AI 活用を促進!ユースケースサイトの設計・開発による生成 AI 内製化支援
URL: https://www.iret.co.jp/works/184.html
概要: 株式会社バンダイナムコアミューズメントに対し、AWS の「Generative AI Use Cases JP」を活用した社内向けユースケースサイトの設計・開発を支援しました。サーバーレス構成や Amazon Bedrock などの活用により、低コストかつスピーディな構築を実現し、社内の生成 AI ナレッジ蓄積と活用促進に貢献しました。

■ 検索結果なし
URL: https://www.iret.co.jp/works/172.html
概要: 指定されたURLのページ内容を検索結果から確認することができませんでした。

---
※注記: URL `https://www.iret.co.jp/works/184.html` については、検索結果上で関連性の高い事例(バンダイナムコアミューズメント様)の情報を元に作成しましたが、検索結果の状況により正確なIDとの紐付けが完全には確認できない可能性があります。URL `https://www.iret.co.jp/works/172.html` については、公開されている情報が見当たりませんでした。

https://www.iret.co.jp/works/172.html は正確に読み解くことができませんでしたが、検索結果がないものは何度か繰り返しGemini3.0に投げるなど工夫すれば要約は可能かと思います。

まとめ:自社サイトの検索を「体験」に変える

Google Cloud Discovery Engine の「正確な検索」と、Gemini 3.0 の「賢い要約」。この2つをAPIで繋ぐことで、ウィジェットの枠を超えた世界に一つだけのAI検索体験が完成します。

情報の海から答えを導き出す「コンシェルジュ」を、あなたのサイトにも実装してみませんか?

最後まで読んでいただきありがとうございました。 独自のUIで実装するためのフロントエンドの構成や、APIコストを抑えるためのチューニング方法について詳しく知りたい方は、ぜひお声がけください!