首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌AutoML Ruby Gem表:分配给子消息字段'‘的字符串无效

谷歌AutoML Ruby Gem表:分配给子消息字段'‘的字符串无效
EN

Stack Overflow用户
提问于 2019-11-07 06:54:23
回答 1查看 375关注 0票数 1

我尝试使用Ruby gem google-cloud-automl中的AutoML预测服务,但一直收到错误。我已经有了一个使用在线预测的部署模型。

下面是我当前的代码:

代码语言:javascript
复制
payload = {
  row: {
    column_spec_ids: %w(COLUMN_NUMBER_1 COLUMN_NUMBER_2 COLUMN_NUMBER_3 COLUMN_NUMBER_4),
    values: [
      DATA_1,
      DATA_2,
      DATA_3,
      DATA_4
    ]
  }
}

client = Google::Cloud::AutoML::Prediction.new(version: :v1beta1)
response = client.predict(formatted_model_path, payload)

我收到了这个错误:

代码语言:javascript
复制
Google::Protobuf::TypeError: Invalid type String to assign to submessage field ''.
from path/to/my/vendor/bundle/ruby/2.5.0/gems/google-gax-1.8.1/lib/google/gax/util.rb:65:in `initialize'

(在我的代码中,COLUMN_NUMBER_1到_4实际上是实数ID,DATA_1到_4是字符串) formatted_model_path是我的模型的路径。我可以使用下面的代码访问NLP模型(我只更新了有效负载格式)。

我已经尝试生成一个Google::Cloud::AutoML::V1beta1::行。我可以填充column_spec_ids,但每次我尝试此代码时

代码语言:javascript
复制
request = Google::Cloud::AutoML::V1beta1::Row.new
request.values = payload[:row][:values]

我得到了这个错误

代码语言:javascript
复制
Google::Protobuf::TypeError: Expected repeated field array
from (pry):4:in `method_missing'
EN

回答 1

Stack Overflow用户

发布于 2019-11-08 05:40:07

我真的找到了解决方案。

您需要提供要传递的数据类型。而不是

代码语言:javascript
复制
values: [
      DATA_1,
      DATA_2,
      DATA_3,
      DATA_4
    ]

我应该告诉你的

代码语言:javascript
复制
values: [
      {string_value: DATA_1},
      {string_value: DATA_2},
      {string_value: DATA_3},
      {string_value: DATA_4}
    ]

(你还可以选择string_value、number_value和其他类型的产品,我想完整的清单是here)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58739625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档