Мне нужно показать неизвестное количество кнопок в диалоговом узле Watson Assistant. Данные для кнопок поступают из IBM Cloud Function.
Если я вручную настрою ответ типа «опция» в своем узле, JSON-объект будет выглядеть так:
{
"output": {
"generic": [
{
"title": "Välj mötestyp",
"options": [
{
"label": "Rådgivning familjerätt 30 min",
"value": {
"input": {
"text": "447472"
}
}
},
{
"label": "Rådgivning familjerätt 60 min",
"value": {
"input": {
"text": "448032"
}
}
}
],
"description": "Välj typ av möte du vill boka",
"response_type": "option",
"preference": "dropdown"
}
]
}
}
Моя облачная функция может создать этот JSON с x без вариантов. Но как я могу использовать эти данные в Ассистент?
Проще всего было бы позволить облачной функции сгенерировать полный JSON, а затем просто вывести возвращенный JSON следующим образом:
{
$context.output"
}
..но это не разрешено.
Сгенерированный объект вывода из моей функции:
[{"serviceId":447472,"serviceName":"Rådgivning Familjerätt 30 min"},{"serviceId":448032,"serviceName":"Rådgivning Familjerätt 60 min"}]
Любые советы о том, как это сделать?





Я не вижу простого способа генерировать весь вывод и параметры. Что вы можете сделать, так это:
Я протестировал следующее:
{
"context": {"my": [ {
"label": "First option",
"value": "one"
},
{
"label": "Second",
"value": "two" }]},
"output": {
"generic": [
{
"title": "This is a test",
"options": [{"label": "<? $my[0].label ?>",
"value": {
"input": {
"text": "my[0].value"
}
}
},{"label": "<? $my[1].label ?>", "value": {
"input": {
"text": "<? $my[1].value ?>"
}
}
}],
"response_type": "option"
}
]
}
}
Он определил переменную контекста с параметрами, аналогично структуре параметров. В выходных данных получите доступ к меткам и значениям, позже изменив их, чтобы убедиться, что они используются и могут быть изменены.
У вас будет один ответ для 2 кнопок, один для 3 кнопок и так далее (при условии, что вы придерживаетесь разумных вариантов). Для каждого ответа вам нужно будет проверить (если размер массива == 2/размер массива == 3/...)
Хм.. Так что план множественного ответа попробовать. Интересно. Работает для нескольких разных размеров. Определенно обходной путь, но я бы хотел какую-то петлю. Я лучше попробую это. :)
Привет! Это я уже сделал, и это сработало просто отлично. Но что, если вы не знаете количество входов? Я могу получить размер массива, но как его использовать, чтобы сделать x без кнопок?