Проблема при подключении к платформе LUIS с Python v4 botframework - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь запустить следующий проект github: -

Python Core Bot

в main_dialog.py ниже строки (70-73) актуальны :

# Call LUIS and gather any potential booking details. (Note the TurnContext has the response to the prompt.)
        intent, luis_result = await LuisHelper.execute_luis_query(
            self._luis_recognizer, step_context.context
        )

Настроил config.py с идентификатором приложения Luis, ключом и именем хоста

Когда я запускаю приложение python: - python app.py

и запустите эмулятор chatbot, он не распознает намерение LUIS, и я также получаю сообщение об ошибке.

Более подробное описание ошибки приведено в ссылке ниже:

Проблема Chatbot v4 поднял github

Шаги для воспроизведения: Сконфигурируйте config.py с идентификатором приложения Luis, ключом и хостом. Запустите приложение, используя python app.py Запустите эмулятор чатбота и откройте бот с http://localhost: 3978 / api / messages url. Введите ваше сообщение, как на скриншоте.

enter image description here

Случай 1. Идентификатор хоста Luis настроен со значением, начинающимся с https: // т.е. https://XXXX.XXXX.XXX в config. XXXXX.microsoft.com/luis/v2.0/ap ps /? Log = true (вызвано NewConnectionError (': не удалось установить sh новое соединение: [Errno 11001] сбой getaddrinfo'))

Случай 2. Когда хост luis настроен без https: // то есть XXXX.XXXX.XXXX

Тогда намерения luis не распознаются в main_dialog.py. Это, наконец, переходит к части didnt_understand_message, т.е. Извините, я этого не понял. Пожалуйста, попробуйте по-другому спросить в чате (прикреплено на скриншоте)

# Call LUIS and gather any potential booking details. (Note the TurnContext has the response to the prompt.)
intent, luis_result = await LuisHelper.execute_luis_query(
    self._luis_recognizer, step_context.context
)

if intent == Intent.BOOK_FLIGHT.value and luis_result:
    # Show a warning for Origin and Destination if we can't resolve them.
    await MainDialog._show_warning_for_unsupported_cities(
        step_context.context, luis_result
    )

    # Run the BookingDialog giving it whatever details we have from the LUIS call.
    return await step_context.begin_dialog(self._booking_dialog_id, luis_result)

if intent == Intent.GET_WEATHER.value:
    get_weather_text = "TODO: get weather flow here"
    get_weather_message = MessageFactory.text(
        get_weather_text, get_weather_text, InputHints.ignoring_input
    )
    await step_context.context.send_activity(get_weather_message)

else:
    didnt_understand_text = (
        "Sorry, I didn't get that. Please try asking in a different way"
    )
    didnt_understand_message = MessageFactory.text(
        didnt_understand_text, didnt_understand_text, InputHints.ignoring_input
    )
    await step_context.context.send_activity(didnt_understand_message)

return await step_context.next(None)

Пожалуйста, помогите. Заранее спасибо.

1 Ответ

0 голосов
/ 15 февраля 2020

Эта проблема решена сейчас. Формат хоста Luis был добавлен в файл config.py с https: //, что вызывало проблему. Я просто удалил это из URL, и он работал нормально для меня.

https://xxx.xxx.xxx - Неправильный формат для этого Python проекта. xxxx.xxxx.xxx - правильный формат.

...