Basi c Python Echo Bot не может быть адресован через Bot Framework Emulator (Post 500) после ссылки на Azure QnA Maker - PullRequest
1 голос
/ 07 мая 2020

Я выполнил официальные инструкции ( 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 существует и, очевидно, используется, поскольку порты меняются, когда я меняю их в файле конфигурации.

В остальном я точно следовал руководству. Я был бы очень благодарен за любую помощь или рекомендации по ресурсам, за последние два дня я пробовал все, что мог найти в Интернете. Спасибо!

...