Unity Watson SDK Получение дочернего узла - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь создать меню с множественным выбором для 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?

...