我已按照官方说明 ( 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 存在并且当我在配置文件中更改端口时,它显然被用作端口更改。
除此之外,我完全按照指南进行操作。我会非常感谢任何帮助或资源建议,在过去的两天里,我尝试了我在网上可以找到的一切。谢谢!