我正在尝试使用嵌入式Google Assistant服务(https://developers.google.com/assistant/sdk/reference/rpc/google.assistant.embedded.v1alpha2)从我正在Rust中编写的应用程序中发送一些文本查询。由于没有正式的客户端库,而且我无法获得我尝试使用过的任何一个GRPC库,因此我将AssistRequest原型直接发布到https://embeddedassistant.googleapis.com/ $ rpc / google.assistant.embedded.v1alpha2 .EmbeddedAssistant / Assist。获取适当的OAuth令牌并注册设备ID后,我将发送如下原型:
config {
text_query: "what's the time"
audio_out_config {
encoding: MP3
sample_rate_hertz: 16000
}
screen_out_config {
screen_mode: PLAYING
}
dialog_state_in {
language_code: "en-US"
}
device_config {
device_id: "my_device_id"
device_model_id: "<my model id>"
}
}
(已填写有效的device_id和device_model_id)。但是,我总是得到400,但有错误
“无效的\'AssistConfig \':必须提供
audio_in_config
或text_query
。”
在清楚填写text_query
的情况下,为什么会出现此错误?如果尝试设置audio_in_config
,则会收到相同的错误。
答案 0 :(得分:0)
回答了我自己的问题,原来我需要将请求包装在StreamBody
proto中,并将序列化的AssistRequest
放在 message 字段中。虽然我看不到任何地方都没有记录!