python - 链接到 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 存在并且当我在配置文件中更改端口时,它显然被用作端口更改。
除此之外,我完全按照指南进行操作。我会非常感谢任何帮助或资源建议,在过去的两天里,我尝试了我在网上可以找到的一切。谢谢!
解决方案
推荐阅读
- java - 如何将属性的值传播到属于我的类的其他类型的属性?
- bash - 如何创建包含文件夹中所有文件名称的数组?
- android - 如何使工具栏透明谁的父母是Appbarlayout?
- c# - 在 Foreach 循环 C# 中使用 Orderby 的困难
- sql-server - SQL中int的len大于17时如何转换in日期
- css - 禁用 Scrapeazon iFrame [Wordpress 插件:Scrapeazon ]
- excel - 替换公式时出现运行时错误 1004
- javascript - 一种重置 Chrome DevTools 控制台上下文的方法
- powershell - 如果在确认消息框中按否,如何在 powershell 中停止事件
- php - 在php laravel中将html转换为json