Watson Conversation всегда возвращает первый текст варианта

Мы используем Watson Conversation из Python. В нашем диалоге есть ответы с вариантами текста, но мы всегда получаем первый вариант - это проблема. Диалог хорошо работает, когда вы запускаете его из Bluemix Converation Tooling.

def wd_conv_send_message(sTexto):
    # Replace with the context obtained from the initial request
    context = {}

    workspace_id = conv_workspaceid

    response = conversation.message(
        workspace_id=workspace_id,
        message_input={'text': sTexto},
        context=context
    )

    # print(json.dumps(response, indent=2))
    print(response['output']['text'][0])

введите здесь описание изображения


person peleitor    schedule 09.09.2017    source источник


Ответы (2)


Изменять:

response = conversation.message(
    workspace_id=workspace_id,
    message_input={'text': sTexto},
    context=context
)

to:

response = conversation.message(
    workspace_id=workspace_id,
    message_input={'text': sTexto},
    context=context
)
context = response['context']

Разговор без гражданства. Поэтому вам нужно отправить обратно полученный контекст, иначе он не будет знать, с чего продолжить.

person Simon O'Doherty    schedule 09.09.2017
comment
Это не меняет проблемы. В этом случае контекст не имеет отношения к Вариантам. И он должен работать как для последовательного, так и для случайного. - person peleitor; 09.09.2017

Оказалось, что это несколько неустойчивое поведение со стороны Watson Conversation в сочетании с отладкой: если вы запускаете / отлаживаете из Pycharm - либо устанавливая Sequential, либо Random - вы получаете только самую первую вариацию несколько раз (пять или больше). Но если вы запускаете из командной строки интерпретатора Python, похоже, все работает нормально. Итак, я предполагаю - просто предположительно - это связано с некоторой проблемой синхронизации при запуске из Pycharm.

person peleitor    schedule 09.09.2017