创建媒体数据存储区

本页介绍了如何为媒体创建数据存储区并将数据导入其中。

准备工作

请确保您执行了以下操作:

根据数据源选择相应步骤

如需创建媒体数据存储区并导入文档,请前往您计划使用的来源对应的部分:

从 BigQuery 导入

控制台

如需使用 Google Cloud 控制台创建媒体数据存储区,并从 BigQuery 导入文档和用户事件,请按以下步骤操作:

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

    Agent Builder

  2. 前往数据存储区页面。

  3. 点击创建数据存储区

  4. 来源页面上,选择 BigQuery

  5. 选择媒体 - 包含结构化媒体数据的 BigQuery 表作为要导入的数据类型。

  6. BigQuery 路径字段中,点击浏览,选择您准备好提取的 BigQuery 数据,然后点击选择。或者,直接在 BigQuery 路径字段中输入位置。

  7. 如果您的数据采用预定义的 Google 架构,请选择 Google 预定义架构,点击继续,然后跳至第 11 步。

  8. 如果您的数据采用的是您自己的架构,请选择自定义架构,然后点击继续

  9. 查看检测到的架构,然后使用关键属性菜单为架构字段分配属性。

  10. 点击继续

    只有在所需的键属性均已映射(以绿色对勾标记 而非橙色警告标记 表示)后,您才能继续操作。

  11. 输入数据存储区的名称,然后点击创建

从 Cloud Storage 导入

控制台

如需使用 Google Cloud 控制台创建媒体数据存储区并从 Cloud Storage 导入文档,请按以下步骤操作:

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

    Agent Builder

  2. 前往数据存储区页面。

  3. 点击创建数据存储区

  4. 来源页面上,选择 Cloud Storage

  5. 选择结构化媒体数据(包含媒体文件的 JSONL)作为要导入的数据类型。

  6. 选择要导入的文件夹或文件部分,选择文件夹文件

  7. 点击浏览,选择您准备好提取的数据,然后点击选择。或者,直接在 gs:// 字段中输入位置。

  8. 如果您的数据采用预定义的 Google 架构,请选择 Google 预定义架构,点击继续,然后跳至第 11 步。

  9. 如果您的数据采用的是您自己的架构,请选择自定义架构,然后点击继续

  10. 查看检测到的架构,然后使用关键属性菜单为架构字段分配属性。

  11. 点击继续

    只有在所需的键属性均已映射(以绿色对勾标记 而非橙色警告标记 表示)后,您才能继续操作。

  12. 输入数据存储区的名称,然后点击创建

使用 API 导入文档

如果您使用的是 Google 预定义架构,则可以通过向 Documents:import REST 方法发出 POST 请求,使用 InlineSource 对象指定数据,从而导入文档。

如需查看 JSON 文档格式的示例,请参阅 JSON 文档格式

导入要求

以下是使用此 API 导入媒体文档的要求:

  • 每个文档都必须独占一行。

  • 一次导入的文档数量上限为 100 个。

过程

如需使用此 API 导入媒体文档,请执行以下操作:

  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/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DATA_STORE_DISPLAY_NAME",
      "industryVertical": "MEDIA"
    }'
    

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID。
    • DATA_STORE_ID:您要创建的 Vertex AI Search 数据存储区的 ID。此 ID 只能包含小写字母、数字、下划线和连字符。
    • DATA_STORE_DISPLAY_NAME:您要创建的 Vertex AI Search 数据存储区的显示名称。
  2. 为您的文档创建 JSON 文件,并将其命名为 ./data.json

    {
    "inlineSource": {
    "documents": [
      { DOCUMENT_1 },
      { DOCUMENT_2 }
    ]
    }
    }
    
  3. 调用 POST 方法:

    curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     --data @./data.json \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dataStores/DATA_STORE_ID/branches/0/documents:import"
    • PROJECT_ID:您的项目的 ID。
    • DATA_STORE_ID:数据存储区的 ID。

JSON 文档格式

以下示例展示了 JSON 格式的 Document 条目。

请在一行中提供完整文档。每个文档都应单独占一行。

至少填充以下必填字段:

{
   "id": "sample-01",
   "schemaId": "default_schema",
   "jsonData": "{\"title\":\"Test document title\",\"categories\":[\"sports > clip\",\"sports > highlight\"],\"uri\":\"http://www.example.com\",\"media_type\":\"sports-game\",\"available_time\":\"2022-08-26T23:00:17Z\"}"
}

完成对象:

{
   "id": "child-sample-0",
   "schemaId": "default_schema",
   "jsonData": "{\"title\":\"Test document title\",\"description\":\"Test document description\",\"language_code\":\"en-US\",\"categories\":[\"sports > clip\",\"sports > highlight\"],\"uri\":\"http://www.example.com\",\"images\":[{\"uri\":\"http://example.com/img1\",\"name\":\"image_1\"}],\"media_type\":\"sports-game\",\"in_languages\":[\"en-US\"],\"country_of_origin\":\"US\",\"content_index\":0,\"persons\":[{\"name\":\"sports person\",\"role\":\"player\",\"rank\":0,\"uri\":\"http://example.com/person\"},],\"organizations \":[{\"name\":\"sports team\",\"role\":\"team\",\"rank\":0,\"uri\":\"http://example.com/team\"},],\"hash_tags\":[\"tag1\"],\"filter_tags\":[\"filter_tag\"],\"production_year\":1900,\"duration\":\"100s\",\"content_rating\":[\"PG-13\"],\"aggregate_ratings\":[{\"rating_source\":\"imdb\",\"rating_score\":4.5,\"rating_count\":1250}],\"available_time\":\"2022-08-26T23:00:17Z\"}"
}

监控导入进度和查看数据

  1. 如需查看数据注入的状态,请前往数据存储区页面,然后点击数据存储区名称,在其数据页面上查看相关详细信息。

  2. 点击活动标签页。

    活动标签页上的状态列从进行中更改为导入已完成时,提取操作即告完成。

    提取过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。

  3. 点击文档以查看您导入的数据。

导入用户事件

如果您想将数据存储区与媒体推荐应用搭配使用,则必须使用用户事件。

虽然媒体搜索应用不需要用户事件,但添加用户事件有助于获得更优质的搜索结果。

如需将用户事件导入媒体数据存储区,请执行以下操作:

后续步骤

  • 创建媒体推荐应用或媒体搜索应用

  • 保持文档数据的新鲜度。

    理想情况下,您应每天通过导入新数据来更新数据存储区。安排定期导入可防止模型质量逐渐降低。您可以使用 Google Cloud Scheduler 自动执行导入。

    您可以只更新新文档或发生更改的文档,也可以导入整个数据存储区。如果您导入数据存储区中已有的文档,系统不会再次添加这些文档。系统会更新所有发生更改的文档。

  • 保持用户事件数据的新鲜度。

    请务必及时更新用户事件,这一点尤为重要。如果没有足够的新用户事件来满足数据要求,推荐应用将停止运行。

    如需了解如何实时导入用户事件数据,请参阅记录实时用户事件

    如需了解如何监控用户事件要求,请参阅检查媒体推荐的数据质量