如何使用python在dialogflow CX中传递queryparams

问题描述

我正在使用 python 和 dialogflowcx v3beta1 库,我想传递一个查询参数来检测意图函数,但它显示一个错误

我已阅读文档:https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3beta1/QueryParameters 但我对格式对象 Struct 格式感到困惑。

应该如何传入代码

session_client = SessionsClient(client_options=client_options,credentials=credentials)
text_input = session.TextInput(text=message)
query_input = session.QueryInput(text=text_input,language_code=language_code)
query_params = {
        "parameters": {
            "param1": "value1"
        }
    }
request = session.DetectIntentRequest(
    session=session_path,query_input=query_input,query_params=query_params
)

提前致谢。

解决方法

解决了。我使用了下一个代码。

text_input = session.TextInput(text=message)
query_input = session.QueryInput(text=text_input,language_code=language_code)
params = {
    "session_id": session_id
}
query_params = session.QueryParameters(parameters=params)
request = session.DetectIntentRequest(
    session=session_path,query_input=query_input,query_params=query_params
)
,

我对 dialogflow nodejs api 有同样的担忧。您能否提供 queryParams 的 JSON 格式数据示例?由于在 nodejs v3 sdk 包中找不到 QueryParameters obj。

My realeated question here

var mapParameters = new Map([['Michael',95],['Bob',75],['Tracy',85]]);

 const request = {
    session: sessionPath,"queryInput": {
      
      "text": {
        "text": query,},languageCode,'queryParams': {
      'timeZone': 'America/Los_Angeles','parameters': {
        "fields":mapParameters
      }
    },};


const [response] = await client.detectIntent(request);

我也试过这些,但没有奏效。

 const request = {
    session: sessionPath,'parameters': {
       "p1":"p1 value"
      }
    },};