创建媒体数据存储区

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

准备工作

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

根据数据源选择相应程序

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

从 BigQuery 导入

控制台

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

  1. 在 Google Cloud 控制台中,前往 AI Applications 页面。

    AI 应用

  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 控制台中,前往 AI Applications 页面。

    AI 应用

  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 自动执行导入。

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

  • 确保用户事件数据始终是最新的。

    请务必及时更新用户事件。如果没有足够的新鲜用户事件来满足数据要求,推荐应用就会停止工作。

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

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