Я пытаюсь создать меню с множественным выбором для IBM Assistant в Unity. Чтобы сделать это, мне нужны текущие доступные намерения от данного узла. Как получить намерение триггера каждого дочернего узла от родительского узла?
Я использую Assistant v2. другая упомянутая документация помогла бы передать текущее состояние разговора (контекст) помощнику, но это не привело меня к дочерним узлам. Информация для потомков узла не доступна.
private void OnDisplayResponse(DetailedResponse<MessageResponse> response, IBMError error)
{
currentAssistantContext = response.Result.Context;
if (response.Result.Output.Generic.Count > 0)
{
Debug.Log("Response Type : " + response.Result.Output.Generic[0].ResponseType);
chat_response = response.Result.Output.Generic[0].Text;
switch (response.Result.Output.Generic[0].ResponseType)
{
case "text":
Debug.Log("URL: " + chat_response);
DisplayWatsonText(chat_response);
break;
case "image":
DisplayWatsonText(response.Result.Output.Generic[0].Title);
imageURL = response.Result.Output.Generic[0].Source;
StartCoroutine("DisplayWatsonImage");
break;
}
}
messageReturned = true;
}
private IEnumerator SendChatOut()
{
MessageInput mInput = new MessageInput()
{
Text = currentStringOut,
Options = new MessageInputOptions()
{
ReturnContext = true
}
};
service.Message(OnDisplayResponse, assistant_id, sessionId, input: mInput, currentAssistantContext);
while (!messageReturned)
{
yield return null;
}
currentStringOut = "";
}
В OnDisplayResponse должен быть доступ к дочерним элементам ответа. Это не тот случай, и дети кажутся недосягаемыми. Я что-то упустил?
UPDATE:
После дальнейших исследований сохранение и отправка контекста больше не требуются в V2. Текущее состояние диалога поддерживается через sessionID.
Для моей цели: получить дочерние узлы, узнать их намерения, а затем отобразить их как варианты с несколькими вариантами выбора, контекст - красная сельдь. Есть ли способ поиска дочерних диалоговых узлов по родительскому узлу в V2 Assistant?