创建搜索应用

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

创建应用

控制台

如需使用 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. 如需连接到数据存储区,请在数据存储区页面上选择您之前创建的数据存储区,或创建一个新的数据存储区。

    选择以下一个选项:

    • 选择现有数据存储区:如果您仅附加一个数据存储区,则无法将其移除,也无法在日后向应用添加其他数据存储区。通过附加多个数据存储区,您可以稍后更新已附加的数据存储区,但应用始终需要至少两个数据存储区。
    • 创建一个新的数据存储区并将数据提取到其中:
      1. 点击 创建数据存储区,然后按照创建新的数据存储区页面中的步骤操作。
      2. 选择新的数据存储区,然后点击选择。如需了解详情,请参阅创建搜索数据存储空间

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",
      "industryVertical": "INDUSTRY_VERTICAL",
      "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。
    • INDUSTRY_VERTICAL:应用所属的行业。此字段可以采用 IndustryVertical 中指定的值。对于具有多个数据存储区的搜索应用(也称为混合搜索应用),您必须将此字段指定为 GENERIC
    • 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

后续步骤