本页介绍了如何为媒体创建数据存储区并将数据导入其中。
准备工作
请确保您执行了以下操作:
查看与媒体数据和架构相关的概念:
如果您使用的是自己的架构,请确保您的架构包含与媒体键属性(
title
、url
、category
等)良好映射的字段。将媒体文档放入 JSON 架构中,然后将数据上传到 BigQuery 或 Cloud Storage。
查看用户事件简介,并准备要导入的用户事件。用户事件是媒体推荐的必需条件,也是媒体搜索的推荐条件。
根据数据源选择相应步骤
如需创建媒体数据存储区并导入文档,请前往您计划使用的来源对应的部分:
从 BigQuery 导入
控制台
如需使用 Google Cloud 控制台创建媒体数据存储区,并从 BigQuery 导入文档和用户事件,请按以下步骤操作:
在 Google Cloud 控制台中,前往 Agent Builder 页面。
前往数据存储区页面。
点击创建数据存储区。
在来源页面上,选择 BigQuery。
选择媒体 - 包含结构化媒体数据的 BigQuery 表作为要导入的数据类型。
在 BigQuery 路径字段中,点击浏览,选择您准备好提取的 BigQuery 数据,然后点击选择。或者,直接在 BigQuery 路径字段中输入位置。
如果您的数据采用预定义的 Google 架构,请选择 Google 预定义架构,点击继续,然后跳至第 11 步。
如果您的数据采用的是您自己的架构,请选择自定义架构,然后点击继续。
查看检测到的架构,然后使用关键属性菜单为架构字段分配属性。
点击继续。
只有在所需的键属性均已映射(以绿色对勾标记
而非橙色警告标记 表示)后,您才能继续操作。输入数据存储区的名称,然后点击创建。
从 Cloud Storage 导入
控制台
如需使用 Google Cloud 控制台创建媒体数据存储区并从 Cloud Storage 导入文档,请按以下步骤操作:
在 Google Cloud 控制台中,前往 Agent Builder 页面。
前往数据存储区页面。
点击创建数据存储区。
在来源页面上,选择 Cloud Storage。
选择结构化媒体数据(包含媒体文件的 JSONL)作为要导入的数据类型。
在选择要导入的文件夹或文件部分,选择文件夹或文件。
点击浏览,选择您准备好提取的数据,然后点击选择。或者,直接在
gs://
字段中输入位置。如果您的数据采用预定义的 Google 架构,请选择 Google 预定义架构,点击继续,然后跳至第 11 步。
如果您的数据采用的是您自己的架构,请选择自定义架构,然后点击继续。
查看检测到的架构,然后使用关键属性菜单为架构字段分配属性。
点击继续。
只有在所需的键属性均已映射(以绿色对勾标记
而非橙色警告标记 表示)后,您才能继续操作。输入数据存储区的名称,然后点击创建。
使用 API 导入文档
如果您使用的是 Google 预定义架构,则可以通过向 Documents:import
REST 方法发出 POST
请求,使用 InlineSource
对象指定数据,从而导入文档。
如需查看 JSON 文档格式的示例,请参阅 JSON 文档格式。
导入要求
以下是使用此 API 导入媒体文档的要求:
每个文档都必须独占一行。
一次导入的文档数量上限为 100 个。
过程
如需使用此 API 导入媒体文档,请执行以下操作:
创建数据存储区。
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 数据存储区的显示名称。
为您的文档创建 JSON 文件,并将其命名为
./data.json
:{ "inlineSource": { "documents": [ { DOCUMENT_1 }, { DOCUMENT_2 } ] } }
调用 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\"}" }
监控导入进度和查看数据
如需查看数据注入的状态,请前往数据存储区页面,然后点击数据存储区名称,在其数据页面上查看相关详细信息。
点击活动标签页。
当活动标签页上的状态列从进行中更改为导入已完成时,提取操作即告完成。
提取过程可能需要几分钟到几小时才能完成,具体取决于数据的大小。
点击文档以查看您导入的数据。
导入用户事件
如果您想将数据存储区与媒体推荐应用搭配使用,则必须使用用户事件。
虽然媒体搜索应用不需要用户事件,但添加用户事件有助于获得更优质的搜索结果。
如需将用户事件导入媒体数据存储区,请执行以下操作:
- 请按照导入历史用户事件中的说明操作。
后续步骤
保持文档数据的新鲜度。
理想情况下,您应每天通过导入新数据来更新数据存储区。安排定期导入可防止模型质量逐渐降低。您可以使用 Google Cloud Scheduler 自动执行导入。
您可以只更新新文档或发生更改的文档,也可以导入整个数据存储区。如果您导入数据存储区中已有的文档,系统不会再次添加这些文档。系统会更新所有发生更改的文档。
保持用户事件数据的新鲜度。
请务必及时更新用户事件,这一点尤为重要。如果没有足够的新用户事件来满足数据要求,推荐应用将停止运行。
如需了解如何实时导入用户事件数据,请参阅记录实时用户事件。
如需了解如何监控用户事件要求,请参阅检查媒体推荐的数据质量。