创建媒体数据存储区

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

准备工作

请确保您执行以下操作:

  • 查看与媒体数据和架构相关的概念:

  • 决定是否为媒体使用预定义的 Google 架构 数据或您自己的架构

  • 如果您使用的是自己的架构,请确保您的架构具有映射的字段 以及媒体键属性titleurlcategory,依此类推。

  • 将媒体文档放入 JSON 架构中,然后将数据上传到 BigQuery 或 Cloud Storage。

  • 查看用户事件简介并准备用户事件 以进行导入。媒体推荐需要使用用户事件, 建议用于媒体搜索

根据数据源选择相应步骤

如需创建媒体数据存储区并导入文档,请前往 计划使用的资源:

从 BigQuery 导入

控制台

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

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

    Agent Builder

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

  3. 点击创建数据存储区

  4. 来源页面上,选择 BigQuery

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

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

  7. 如果您的数据采用预定义的 Google 架构,请选择 Google 预定义 schema 中,点击 Continue,然后跳到第 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 的显示名 搜索要创建的数据存储区。
  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 自动执行 导入。

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

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

    确保用户事件保持最新状态尤为重要。通过 如果没有足够的新用户事件 数据要求。

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

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