首页 > 解决方案 > 链接到 Azure QnA Maker 后,基本 Python Echo Bot 无法通过 Bot Framework Emulator(Post 500)寻址

问题描述

我已按照官方说明 ( Docs ) 关于如何使用 SDKv4 创建 python echo bot,并且一旦添加了所描述的 init 函数,我的机器人就会停止工作。回声机器人本身,无需连接到 Azure QnA Maker,就可以在 Bot Framework Emulator 中完美运行。

Bot Framework Emulator 中显示的错误:POST500directline/conversations//activities。此外,它不再显示欢迎消息,当我发送消息时,机器人显然没有收到该消息(发送失败,重试显示在消息下方)。

将指南中的 init 函数添加到 bot.py 文件中的 MyBot 类后会出现此问题。函数内容如下:

def __init__(self, config: Config):
   self.qna_maker = QnAMaker(
      QnAMakerEndpoint(
         knowledge_base_id=config["QNA_KNOWLEDGEBASE_ID"],
         endpoint_key=config["QNA_ENDPOINT_KEY"],
         host=config["QNA_ENDPOINT_HOST"],
   )
)

遵循指南时,我必须将机器人实例创建移到 app.py 文件的最底部,如下所示:

APP = web.Application(middlewares=[aiohttp_error_middleware])
APP.router.add_post("/api/messages", messages)
if __name__ == "__main__": (...)` 

否则代码不会运行:BOT = MyBot(APP.config)原因:NameError:未定义名称'APP'

我在 app.py 文件中也遇到了问题:模块 'config' 中没有名称 'DefaultConfig' - 即使 config.py 存在并且当我在配置文件中更改端口时,它显然被用作端口更改。

除此之外,我完全按照指南进行操作。我会非常感谢任何帮助或资源建议,在过去的两天里,我尝试了我在网上可以找到的一切。谢谢!

标签: pythonazurebotframeworkqnamakerbotframeworkemulator

解决方案


推荐阅读