Развернутый код Python с Bot Framework в веб-приложении Azure — не удалось найти атрибут «приложение» ⇐ Python
Развернутый код Python с Bot Framework в веб-приложении Azure — не удалось найти атрибут «приложение»
Я развернул базу кода Python с помощью Bot Framework в веб-приложении Azure и столкнулся с ошибкой: «Не удалось найти атрибут «приложение» в «приложение». Код для запуска приложения соответствует стандартному примеру Microsoft Code.
Вот фрагмент кода:
импортировать систему импортировать обратную трассировку из даты и времени импорта даты и времени из http импорта HTTPStatus из веб-сайта импорта aiohttp из aiohttp.web Запрос импорта, Ответ, json_response из импорта botbuilder.core ( Настройки адаптера BotFrameworkAdapter, TurnContext, Адаптер BotFramework, ) из botbuilder.core.integration import aiohttp_error_middleware из botbuilder.schema импортировать Activity, ActivityTypes из бота импортировать MyBot из конфигурации импорта DefaultConfig из openaibot.openaibot импортировать OpenAIBot КОНФИГ = Конфигурация по умолчанию() # Создать адаптер. # См. https://aka.ms/about-bot-adapter, чтобы узнать больше о том, как работают боты. НАСТРОЙКИ = Настройки адаптера BotFramework(CONFIG.APP_ID, CONFIG.APP_PASSWORD) АДАПТЕР = BotFrameworkAdapter(НАСТРОЙКИ) # Сбор всех ошибок. async def on_error (контекст: TurnContext, ошибка: исключение): # Эта проверка записывает ошибки в журнал консоли .vs. информация о приложении. # ПРИМЕЧАНИЕ. В производственной среде вам следует рассмотреть возможность регистрации этого в Azure. # информация о приложении. print(f"\n [on_turn_error] необработанная ошибка: {error}", file=sys.stderr) трассировка.print_exc() # Отправляем сообщение пользователю await context.send_activity("Бот обнаружил ошибку или ошибку.") ожидайте context.send_activity( «Чтобы продолжить работу с этим ботом, исправьте исходный код бота». ) # Отправляем действие трассировки, если мы говорим с эмулятором Bot Framework если context.activity.channel_id == "эмулятор": # Создайте действие трассировки, содержащее объект ошибки трассировка_активность = Активность( метка="Ошибка поворота", name="Трассировка on_turn_error", временная метка = datetime.utcnow (), тип=ActivityTypes.trace, value=f"{ошибка}", value_type="https://www.botframework.com/schemas/error", ) # Отправьте действие трассировки, которое будет отображаться в эмуляторе Bot Framework. ждут context.send_activity(trace_activity) ADAPTER.on_turn_error = on_error # Создаем бота #БОТ = МойБот() ОАИБОТ = OpenAIBot(CONFIG) БОТ = МойБот(OAIBOT) # Прослушиваем входящие запросы в /api/messages асинхронные сообщения определения (требуется: запрос) -> Ответ: # Обработчик сообщений основного бота. если "application/json" в req.headers["Content-Type"]: тело = ожидание req.json() еще: вернуть ответ (статус = 415) активность = Активность().десериализация(тело) auth_header = req.headers["Авторизация"] if "Авторизация" в req.headers else "" ответ = ожидание ADAPTER.process_activity(activity, auth_header, BOT.on_turn) если ответ: return json_response(data=response.body, status=response.status) вернуть ответ (статус = 201) ##### APP = web.Application(middlewares=[aiohttp_error_middleware]) APP.router.add_post("/api/messages", messages) если __name__ == "__main__": пытаться: web.run_app(APP, хост="localhost", порт=CONFIG.PORT) кроме исключения как ошибки: вызвать ошибку По всей видимости, ошибка связана с разделом web.run_app. Я не понимаю, почему атрибут app не найден.
Есть какие-либо идеи или предложения относительно того, что может быть причиной этой проблемы? Есть ли что-то особенное, что мне нужно настроить по-другому при развертывании в веб-приложении Azure? Буду признателен за любую помощь или рекомендации по решению этой проблемы.
Спасибо!
Я развернул базу кода Python с помощью Bot Framework в веб-приложении Azure и столкнулся с ошибкой: «Не удалось найти атрибут «приложение» в «приложение». Код для запуска приложения соответствует стандартному примеру Microsoft Code.
Вот фрагмент кода:
импортировать систему импортировать обратную трассировку из даты и времени импорта даты и времени из http импорта HTTPStatus из веб-сайта импорта aiohttp из aiohttp.web Запрос импорта, Ответ, json_response из импорта botbuilder.core ( Настройки адаптера BotFrameworkAdapter, TurnContext, Адаптер BotFramework, ) из botbuilder.core.integration import aiohttp_error_middleware из botbuilder.schema импортировать Activity, ActivityTypes из бота импортировать MyBot из конфигурации импорта DefaultConfig из openaibot.openaibot импортировать OpenAIBot КОНФИГ = Конфигурация по умолчанию() # Создать адаптер. # См. https://aka.ms/about-bot-adapter, чтобы узнать больше о том, как работают боты. НАСТРОЙКИ = Настройки адаптера BotFramework(CONFIG.APP_ID, CONFIG.APP_PASSWORD) АДАПТЕР = BotFrameworkAdapter(НАСТРОЙКИ) # Сбор всех ошибок. async def on_error (контекст: TurnContext, ошибка: исключение): # Эта проверка записывает ошибки в журнал консоли .vs. информация о приложении. # ПРИМЕЧАНИЕ. В производственной среде вам следует рассмотреть возможность регистрации этого в Azure. # информация о приложении. print(f"\n [on_turn_error] необработанная ошибка: {error}", file=sys.stderr) трассировка.print_exc() # Отправляем сообщение пользователю await context.send_activity("Бот обнаружил ошибку или ошибку.") ожидайте context.send_activity( «Чтобы продолжить работу с этим ботом, исправьте исходный код бота». ) # Отправляем действие трассировки, если мы говорим с эмулятором Bot Framework если context.activity.channel_id == "эмулятор": # Создайте действие трассировки, содержащее объект ошибки трассировка_активность = Активность( метка="Ошибка поворота", name="Трассировка on_turn_error", временная метка = datetime.utcnow (), тип=ActivityTypes.trace, value=f"{ошибка}", value_type="https://www.botframework.com/schemas/error", ) # Отправьте действие трассировки, которое будет отображаться в эмуляторе Bot Framework. ждут context.send_activity(trace_activity) ADAPTER.on_turn_error = on_error # Создаем бота #БОТ = МойБот() ОАИБОТ = OpenAIBot(CONFIG) БОТ = МойБот(OAIBOT) # Прослушиваем входящие запросы в /api/messages асинхронные сообщения определения (требуется: запрос) -> Ответ: # Обработчик сообщений основного бота. если "application/json" в req.headers["Content-Type"]: тело = ожидание req.json() еще: вернуть ответ (статус = 415) активность = Активность().десериализация(тело) auth_header = req.headers["Авторизация"] if "Авторизация" в req.headers else "" ответ = ожидание ADAPTER.process_activity(activity, auth_header, BOT.on_turn) если ответ: return json_response(data=response.body, status=response.status) вернуть ответ (статус = 201) ##### APP = web.Application(middlewares=[aiohttp_error_middleware]) APP.router.add_post("/api/messages", messages) если __name__ == "__main__": пытаться: web.run_app(APP, хост="localhost", порт=CONFIG.PORT) кроме исключения как ошибки: вызвать ошибку По всей видимости, ошибка связана с разделом web.run_app. Я не понимаю, почему атрибут app не найден.
Есть какие-либо идеи или предложения относительно того, что может быть причиной этой проблемы? Есть ли что-то особенное, что мне нужно настроить по-другому при развертывании в веб-приложении Azure? Буду признателен за любую помощь или рекомендации по решению этой проблемы.
Спасибо!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Быстрый API, развернутый в веб-приложении Azure: получение переменных среды
Anonymous » » в форуме Python - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-