从 Python v4 botframework 连接 LUIS 平台时出现问题
Issue in connecting with LUIS platform from Python v4 botframework
我正在尝试 运行 下面的 github 项目 :-
在 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 应用程序 ID、密钥和主机名
当我 运行 python 应用程序时 :-
pythonapp.py
并启动聊天机器人模拟器,它无法识别 LUIS 意图,我也遇到错误。
更多错误描述,我在下面提供了link:
Chatbot v4 issue raised github
Steps 重现:
使用 Luis 应用程序 ID、密钥和主机配置 config.py。
运行 应用使用 python app.py
启动聊天机器人模拟器并使用 http://localhost:3978/api/messages url 打开机器人。
根据屏幕截图输入您的消息。
案例 1. Luis 主机 ID 配置为以 https:// 开头的值,即 config.py
中的 https://XXXX.XXXX.XXX
发生吹气错误:
请求中发生错误,ConnectionError: HTTPSConnectionPool(host='https', port=443): Max retries exceeded with url: /southcXXX.api.XXXXX.microsoft.com/luis/v2.0/ap
ps/?log=true (Caused by NewConnectionError(': Failed to establish a
新连接:[Errno 11001] getaddrinfo 失败'))
情况 2. 当 luis host 配置没有 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)
请帮忙。
提前致谢。
此问题现已解决。
在 config.py 文件中添加了 Luis 主机格式,该文件具有导致问题的 https://。
我刚刚从 url 中删除了它,对我来说效果很好。
https://xxx.xxx.xxx - 此 Python 项目的格式错误。
xxxx.xxxx.xxx - 格式正确。
我正在尝试 运行 下面的 github 项目 :-
在 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 应用程序 ID、密钥和主机名
当我 运行 python 应用程序时 :- pythonapp.py
并启动聊天机器人模拟器,它无法识别 LUIS 意图,我也遇到错误。
更多错误描述,我在下面提供了link:
Chatbot v4 issue raised github
Steps 重现: 使用 Luis 应用程序 ID、密钥和主机配置 config.py。 运行 应用使用 python app.py 启动聊天机器人模拟器并使用 http://localhost:3978/api/messages url 打开机器人。 根据屏幕截图输入您的消息。
案例 1. Luis 主机 ID 配置为以 https:// 开头的值,即 config.py
中的 https://XXXX.XXXX.XXX发生吹气错误: 请求中发生错误,ConnectionError: HTTPSConnectionPool(host='https', port=443): Max retries exceeded with url: /southcXXX.api.XXXXX.microsoft.com/luis/v2.0/ap ps/?log=true (Caused by NewConnectionError(': Failed to establish a 新连接:[Errno 11001] getaddrinfo 失败'))
情况 2. 当 luis host 配置没有 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)
请帮忙。 提前致谢。
此问题现已解决。 在 config.py 文件中添加了 Luis 主机格式,该文件具有导致问题的 https://。 我刚刚从 url 中删除了它,对我来说效果很好。
https://xxx.xxx.xxx - 此 Python 项目的格式错误。 xxxx.xxxx.xxx - 格式正确。