ruby-on-rails - Google AutoML Ruby Gem 表:分配给子消息字段的无效字符串“”
问题描述
我正在尝试使用 Ruby gem 中的 AutoML 预测服务,但google-cloud-automl
我不断收到错误消息。我已经部署了一个使用在线预测的模型。
这是我当前的代码:
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)
我收到这个错误:
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::Row 。我可以填写 column_spec_ids 但每次我尝试这段代码
request = Google::Cloud::AutoML::V1beta1::Row.new
request.values = payload[:row][:values]
我收到这个错误
Google::Protobuf::TypeError: Expected repeated field array
from (pry):4:in `method_missing'
解决方案
我实际上找到了解决方案...
您需要提供您传递的数据类型。代替
values: [
DATA_1,
DATA_2,
DATA_3,
DATA_4
]
我应该
values: [
{string_value: DATA_1},
{string_value: DATA_2},
{string_value: DATA_3},
{string_value: DATA_4}
]
(你可以有 string_value、number_value 和其他类型,我认为完整列表在这里)
推荐阅读
- vb.net - 使用自代码签名证书进行发布
- node.js - Mongoose 根据子文档参考值查找文档
- javascript - 无法使用 React Hooks 读取 Redux 中的状态,无法读取 null 的属性“_id”
- c - 过滤 NFS 请求的内核模块
- javascript - 交换计算对象键javascript的顺序
- c++ - 双击“Laser On” 双击“Laser Off” - Arduino
- c - 如何在多线程环境中处理共享内存?
- r - 使用 R 示例中的 Replace 函数
- java - 如何在 Spring Boot 中使用真实数据库测试代码?
- c++ - C++-17:将函数指针转换为具有不同参数指针类型的函数