【问题标题】:GCP recommendation data format for catalog目录的 GCP 推荐数据格式
【发布时间】:2021-07-14 07:34:52
【问题描述】:

我目前正在研究推荐 AI。因为我是 GCP 推荐的新手,所以我一直在为目录的数据格式而苦苦挣扎。我阅读了文档,它说每个产品项 JSON 格式都应该在一行中。

我完全理解这一点,但如果我能得到 JSON 格式的真实外观,那就太好了,因为他们文档中的格式对我来说非常模棱两可。我正在尝试使用控制台导入数据

我尝试导入如下所示的数据,但错误提示 JSON 格式无效 100 次。它有很多原因,例如意外的令牌和应该存在的东西等等。

 [
    {
     "id": "1",
     "title": "Toy Story (1995)",
     "categories": [
      "Animation",
      "Children's",
      "Comedy"
     ]
    },
    {
     "id": "2",
     "title": "Jumanji (1995)",
     "categories": [
      "Adventure",
      "Children's",
      "Fantasy"
     ]
    },
...
]

也许是因为每个项目不在一行,但我也想知道以上是否足以导入。我不确定这些数据是否应该包含在另一个属性中,例如

{
 "inputConfig": {
  "productInlineSource": {
   "products": [
    {
     "id": "1",
     "title": "Toy Story (1995)",
     "categories": [
      "Animation",
      "Children's",
      "Comedy"
     ]
    },
    {
     "id": "2",
     "title": "Jumanji (1995)",
     "categories": [
      "Adventure",
      "Children's",
      "Fantasy"
     ]
    },
}

我可以在文档中看到上述内容,但它说它是用于导入使用 POST 请求的内联。它没有提及有关使用控制台导入的任何内容。我只是猜测该格式也用于控制台,但我不确定 100%。这就是我问的原因

有没有人可以告诉我使用控制台导入数据的整个数据格式?

问题已解决

对于那些可能有同样问题的人,您应该使用 gcp 控制台导入的确切数据格式如下所示

{"id":"1","title":"Toy Story (1995)","categories":["Animation","Children's","Comedy"]}
{"id":"2","title":"Jumanji (1995)","categories":["Adventure","Children's","Fantasy"]}

  1. 没有方括号包裹所有项目。
  2. 项目之间没有逗号。
  3. 只有每一项在一行。

【问题讨论】:

  • 请详细说明您的问题。你到底想达到什么。你引用了this doc?您要从什么产品导入目录?您在尝试时是否遇到任何错误?
  • @PjoterS,我编辑了我的问题。我只想使用控制台导入数据。所以我只想看看当你使用控制台导入数据时数据到底应该是什么样子。就是这样。
  • 很高兴您找到了解决方案。请发布您的解决方案作为答案。它会更加明显,并且可能会帮助其他有类似问题的用户。

标签: google-cloud-platform recommendation-engine


【解决方案1】:

发布此Community Wiki 以获得更好的可见性。

OP 编辑​​问题并添加解决方案:

您应该使用 gcp 控制台导入的确切数据格式如下所示

{"id":"1","title":"Toy Story (1995)","categories":["Animation","Children's","Comedy"]}
{"id":"2","title":"Jumanji (1995)","categories":["Adventure","Children's","Fantasy"]}
  • 没有方括号包裹所有项目。
  • 项目之间没有逗号。
  • 只有每一项在一行。

不过,我想详细说明一下。 导入Importing catalog information有几种方法:

我猜这就是 OP 使用的,因为我能够使用 UI 和 GCS 导入目录,并使用下面的 JSON 文件。

{
"inputConfig": {
"catalogInlineSource": {
  "catalogItems": [
    {"id":"111","title":"Toy Story (1995)","categories":["Animation","Children's","Comedy"]}
    {"id":"222","title":"Jumanji (1995)","categories":["Adventure","Children's","Fantasy"]}
    {"id":"333","title":"Test Movie (2020)","categories":["Adventure","Children's","Fantasy"]}
  ]
}
}
}

Importing catalog information 文档的底部,您可以找到信息:

换行是为了便于阅读;您应该在一行中提供整个目录项。每个目录项都应该在自己的行中。

这意味着您应该使用类似于NDJSON 的格式 - 一种方便的格式,用于存储或流式传输结构化数据,一次只能处理一条记录。

如果您想尝试inline method,您应该使用这种格式,但它是单行的,但为了便于阅读,需要打断。

data.json 文件

{
"inputConfig": {
"catalogInlineSource": {
  "catalogItems": [
    {
      "id": "1212",
      "category_hierarchies": [ { "categories": [ "Animation", "Children's" ]  } ],
      "title": "Toy Story (1995)"
    },
    {
      "id": "5858",
      "category_hierarchies": [ { "categories": [ "Adventure", "Fantasy" ]  } ],
      "title": "Jumanji (1995)"
    },
    {
      "id": "321123",
      "category_hierarchies": [ { "categories": [ "Comedy", "Adventure" ]  } ],
      "title": "The Lord of the Rings: The Fellowship of the Ring (2001)"
    },
  ]
}
}
}

命令

curl -X POST \
 -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
 -H "Content-Type: application/json; charset=utf-8" \
 --data @./data.json \
"https://recommendationengine.googleapis.com/v1beta1/projects/[your-project]/locations/global/catalogs/default_catalog/catalogItems:import"
{
  "name": "import-catalog-default_catalog-1179023525XX37366024",
  "done": true
}

请记住,上述方法需要Service Account认证,否则会出现PERMISSION DENIED错误。

  "message" : "Your application has authenticated using end user credentials from the Google Cloud SDK or Google Cloud Shell which are not supported by the translate.googleapis.com. We recommend that most server applications use service accounts instead. For more information about service accounts and how to use them in your application, see https://cloud.google.com/docs/authentication/.",
  "status" : "PERMISSION_DENIED"

【讨论】:

    猜你喜欢
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    相关资源
    最近更新 更多