Я выполнил официальные инструкции ( Docs ) о том, как создать python эхо-бота с SDKv4, и как только добавлена описанная функция инициализации, мой бот перестает работать. Эхо-бот сам по себе, без подключения к Azure QnA Maker, отлично работает в эмуляторе Bot Framework.
Ошибка, отображаемая в эмуляторе Bot Framework: POST500directline / диалоги // действия. Кроме того, он больше не отображает приветственное сообщение, и когда я отправляю сообщение, бот, по-видимому, не получает это сообщение (сбой отправки, под сообщением отображается повтор).
Эта проблема возникает после добавления функции init из руководства к классу MyBot из файла bot.py. Функция читает:
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: нет имени 'DefaultConfig' в модуле 'config' - хотя config.py существует и, очевидно, используется, поскольку порты меняются, когда я меняю их в файле конфигурации.
В остальном я точно следовал руководству. Я был бы очень благодарен за любую помощь или рекомендации по ресурсам, за последние два дня я пробовал все, что мог найти в Интернете. Спасибо!