创建搜索应用

本页介绍了如何创建搜索应用。

创建应用

控制台

如需使用 Google Cloud 控制台创建搜索应用,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Agent Builder 页面。

    Agent Builder

  2. 应用页面上,点击创建应用

  3. 创建应用页面上,点击“搜索您的网站”下方的创建

  4. 确定您是否要为此应用启用企业版功能,然后点击开启或关闭切换开关。

    您必须启用企业版功能,才能使用网站搜索和为应用选择区域等功能。企业版功能需要额外付费。如需了解详情,请参阅企业版功能

  5. 确定您是否要为此应用启用高级 LLM 功能,然后点击相应的开关以启用或停用该功能。

    您必须启用高级 LLM 功能,才能使用搜索摘要跟进搜索等功能。如需了解详情,请参阅高级 LLM 功能

  6. 您的应用名称字段中,输入应用的名称。

  7. 贵公司或组织的外部名称字段中,输入贵公司或组织的通用名称。您无需添加 Inc 或 LLC 等后缀。此字段对 LLM 来说非常有用,可用于识别应用所代表的公司。

  8. 为您的应用选择位置。您必须开启企业版功能才能选择位置。除非您有理由将数据限制在特定地理位置,否则 Google 建议您使用默认的全球(全球)

  9. 点击继续

  10. 如需连接到数据存储区,请在数据存储区页面上选择您之前创建的数据存储区,或创建新的数据存储区。

    执行以下至少一项操作:

    • 选择一个现有数据存储区。

      如果您仅附加一个数据存储区,则日后将无法将其移除,也无法向此应用添加其他数据存储区。如果您附加多个数据存储区,则可以稍后更改附加的数据存储区,但此应用始终必须附加至少两个数据存储区。

    • 创建新的数据存储区并将数据注入到其中。

      为此,请点击创建数据存储区,然后按照打开的创建新的数据存储区窗格中的步骤操作。然后,选择新的数据存储区。如需了解详情,请参阅创建搜索数据存储空间

  11. 可选:如需查看不可用的存储空间列表,请点击了解原因

    系统会显示一个表格,其中列出了数据存储区及其不可用的原因。以下是数据存储区可能不可用的一些原因:

    • 您的数据存储区类型仅允许与一个应用关联,并且该数据存储区已关联。
    • 您的数据存储区和应用位于不同的区域。
    • 您的数据存储区和应用的类型不同。例如,您无法将医疗保健搜索数据存储区连接到网站搜索应用。
    • 您的数据存储区支持基本网站搜索,而您的网站搜索应用需要具有高级网站索引编制功能的数据存储区。
  12. 点击创建

REST

在使用命令行创建应用之前,您必须已有现有的数据存储区。如果您没有数据存储区,请按照创建数据存储区并为 Vertex AI Search 注入数据中的步骤创建一个。

如需使用 engines.create 方法通过命令行创建搜索应用,请按以下步骤操作:

  1. 找到您的数据存储区 ID。如果您已拥有数据存储区 ID,请跳至下一步。

    1. 在 Google Cloud 控制台中,前往 Agent Builder 页面,然后在导航菜单中点击数据存储区

      前往“数据存储区”页面

    2. 点击您的数据存储区的名称。

    3. 在数据存储区的数据页面上,获取数据存储区 ID。

  2. 创建一个搜索应用并将其连接到数据存储区。一个数据存储区只能附加到一个应用,并且日后无法从该应用中移除。

    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_STANDARDSEARCH_TIER_ENTERPRISE。必须使用 SEARCH_TIER_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

后续步骤