検索アプリを作成する

このページでは、検索アプリを作成する方法について説明します。

アプリの作成

Console

Google Cloud コンソールを使用して検索アプリを作成する手順は次のとおりです。

  1. Google Cloud コンソールで、[Agent Builder] ページに移動します。

    Agent Builder

  2. [アプリ] ページで、[アプリを作成] をクリックします。

  3. [アプリを作成] ページの [ウェブサイトを検索] で、[作成] をクリックします。

  4. このアプリに Enterprise 機能を適用するかどうかを決定し、切り替えボタンをクリックしてオンまたはオフにします。

    ウェブサイト検索やアプリのリージョンの選択などの機能を利用するには、Enterprise エディションの機能をオンにする必要があります。Enterprise エディションの機能には追加料金がかかります。詳細については、Enterprise エディションの機能をご覧ください。

  5. このアプリに高度な LLM 機能を適用するかどうかを決定し、切り替えボタンをクリックしてオンまたはオフにします。

    検索の要約フォローアップ付き検索などの機能を利用するには、高度な LLM 機能を有効にする必要があります。詳細については、高度な LLM 機能をご覧ください。

  6. [アプリ名] フィールドに、アプリの名前を入力します。

  7. [会社または組織の表示名] フィールドに、会社または組織の一般名を入力します。Inc や LLC などの接尾辞を含める必要はありません。このフィールドは、アプリが代表する会社を LLM が識別するために役立ちます。

  8. アプリのロケーションを選択します。ロケーションを選択するには、Enterprise 機能をオンにする必要があります。特定の地域にデータを制限する理由がない限り、デフォルトの [global(グローバル)] を使用することをおすすめします。

  9. [続行] をクリックします。

  10. データストアに接続するには、[データストア] ページで、以前に作成したデータストアを選択するか、新しいデータストアを作成します。

    次のいずれかを行います。

    • 既存のデータストアを選択します。

      データストアを 1 つだけアタッチした場合、後でそのデータストアを削除したり、他のデータストアをこのアプリに追加したりすることはできません。複数のデータストアをアタッチする場合は、アタッチするデータストアを後で変更できますが、このアプリには常に 2 つ以上のデータストアをアタッチする必要があります。

    • 新しいデータストアを作成して、そこにデータを取り込みます。

      これを行うには、[データストアを作成] をクリックし、開いた [新しいデータストアを作成] ペインで手順に沿って操作します。次に、新しいデータストアを選択します。詳細については、検索データストアを作成するをご覧ください。

  11. 省略可: 使用できないデータストアのリストを表示するには、[理由を確認] をクリックします。

    データストアのリストと、使用できない理由が記載された表が表示されます。データストアが使用できない理由としては、次のようなものがあります。

    • データストア タイプで接続できるアプリが 1 つだけで、そのデータストアがすでに接続されています。
    • データストアとアプリが異なるリージョンにあります。
    • データストアとアプリのタイプが異なります。たとえば、医療検索データストアをウェブサイト検索アプリに接続することはできません。
    • データストアには基本的なウェブサイト検索が設定されていますが、ウェブサイト検索アプリには、ウェブサイトの高度なインデックス登録が設定されたデータストアが必要です。
  12. [作成] をクリックします。

REST

コマンドラインを使用してアプリを作成する前に、既存のデータストアが必要です。データストアがない場合は、Vertex AI Search 用のデータストアを作成してデータを取り込むの手順に沿って作成します。

engines.create メソッドを使用してコマンドラインから検索アプリを作成する手順は次のとおりです。

  1. データストア ID を確認します。データストア ID がすでにある場合は、次のステップに進みます。

    1. Google Cloud コンソールで [Agent Builder] ページに移動し、ナビゲーション メニューで [データストア] をクリックします。

      [データストア] ページに移動

    2. データストアの名前をクリックします。

    3. データストアの [データ] ページで、データストア ID を取得します。

  2. 検索アプリを作成してデータストアに接続します。データストアは 1 つのアプリにのみアタッチでき、後でアプリから削除することはできません。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines?engineId=APP_ID" \
    -d '{
      "displayName": "APP_DISPLAY_NAME",
      "dataStoreIds": ["DATA_STORE_ID"],
      "solutionType": "SOLUTION_TYPE_SEARCH",
      "searchEngineConfig": {
         "searchTier": "SEARCH_TIER",
         "searchAddOns": ["SEARCH_ADD_ON"]
       }
    }'
    

    以下を置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID。
    • APP_ID: 作成する Vertex AI Search アプリの ID。
    • APP_DISPLAY_NAME: 作成する Vertex AI Search アプリの表示名。
    • DATA_STORE_ID: Vertex AI Search アプリに追加する既存の Vertex AI Search データストアの ID。
    • SEARCH_TIER: 検索階層は SEARCH_TIER_STANDARD または SEARCH_TIER_ENTERPRISE です。 ウェブサイト検索やアプリのリージョンの選択などの機能を利用するには、SEARCH_TIER_ENTERPRISE が必要です。Enterprise エディションの機能には追加料金がかかります。詳細については、Enterprise エディションの機能をご覧ください。
    • SEARCH_ADD_ON: このアプリに高度な LLM 機能を使用する場合、SEARCH_ADD_ON_LLM を指定します。 高度な LLM 機能には、検索の要約フォローアップ付き検索が含まれます。

      高度な LLM 機能を使用しない場合は、SEARCH_ADD_ON_UNSPECIFIED を指定するか、searchAddOns フィールドを削除します。

      詳細については、高度な LLM 機能をご覧ください。

Python

詳細については、Vertex AI Agent Builder Python API のリファレンス ドキュメントをご覧ください。

Vertex AI Agent Builder に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。

from typing import List

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine_v1 as discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION" # Values: "global"
# engine_id = "YOUR_ENGINE_ID"
# data_store_ids = ["YOUR_DATA_STORE_ID"]


def create_engine_sample(
    project_id: str, location: str, engine_id: str, data_store_ids: List[str]
) -> str:
    #  For more information, refer to:
    # https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
    client_options = (
        ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
        if location != "global"
        else None
    )

    # Create a client
    client = discoveryengine.EngineServiceClient(client_options=client_options)

    # The full resource name of the collection
    # e.g. projects/{project}/locations/{location}/collections/default_collection
    parent = client.collection_path(
        project=project_id,
        location=location,
        collection="default_collection",
    )

    engine = discoveryengine.Engine(
        display_name="Test Engine",
        # Options: GENERIC, MEDIA, HEALTHCARE_FHIR
        industry_vertical=discoveryengine.IndustryVertical.GENERIC,
        # Options: SOLUTION_TYPE_RECOMMENDATION, SOLUTION_TYPE_SEARCH, SOLUTION_TYPE_CHAT, SOLUTION_TYPE_GENERATIVE_CHAT
        solution_type=discoveryengine.SolutionType.SOLUTION_TYPE_SEARCH,
        # For search apps only
        search_engine_config=discoveryengine.Engine.SearchEngineConfig(
            # Options: SEARCH_TIER_STANDARD, SEARCH_TIER_ENTERPRISE
            search_tier=discoveryengine.SearchTier.SEARCH_TIER_ENTERPRISE,
            # Options: SEARCH_ADD_ON_LLM, SEARCH_ADD_ON_UNSPECIFIED
            search_add_ons=[discoveryengine.SearchAddOn.SEARCH_ADD_ON_LLM],
        ),
        # For generic recommendation apps only
        # similar_documents_config=discoveryengine.Engine.SimilarDocumentsEngineConfig,
        data_store_ids=data_store_ids,
    )

    request = discoveryengine.CreateEngineRequest(
        parent=parent,
        engine=engine,
        engine_id=engine_id,
    )

    # Make the request
    operation = client.create_engine(request=request)

    print(f"Waiting for operation to complete: {operation.operation.name}")
    response = operation.result()

    # After the operation is complete,
    # get information from operation metadata
    metadata = discoveryengine.CreateEngineMetadata(operation.metadata)

    # Handle the response
    print(response)
    print(metadata)

    return operation.operation.name

Terraform

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。 詳細については、Terraform プロバイダのリファレンス ドキュメントをご覧ください。

Terraform を使用して検索アプリを作成する方法については、 discovery_engine_search_engine をご覧ください。

次のステップ