找回密码
 立即注册
首页 业界区 业界 【Azure Bot Service】在中国区Azure上部署机器人的 Pyt ...

【Azure Bot Service】在中国区Azure上部署机器人的 Python 版配置

勺缓曜 昨天 18:18
问题描述

在中国区Azure上使用Azure Bot Service服务,入门教程中创建机器人由四种语言的SDK可以选择(C#, Java, JavaScript 和 Python , 并且Java SDK也已经停用),所以可选的只有三种。 
1.png

当选择使用Python SDK后,根据入门文档(使用 Bot Framework SDK 创建机器人:https://docs.azure.cn/zh-cn/bot-service/bot-service-quickstart-create-bot?view=azure-bot-service-4.0&tabs=python%2Cvs)本地测试通过,当需要把配置到中国区的Azure时候,却发现没有Python的配置介绍。
2.png

 不用怕,本文就是来弥补Python SDK需要设置的参数!
 
问题解答

根据配置Azure Bot Service的文档步骤,也是需要配置云适配器来构建 Adapter对象
 
第一部分:使用 CloudAdapter 并加载配置文件config.py
  1. from botbuilder.core import (
  2.     TurnContext,
  3. )
  4. from botbuilder.core.integration import aiohttp_error_middleware
  5. from botbuilder.integration.aiohttp import CloudAdapter, ConfigurationBotFrameworkAuthentication
  6. from botbuilder.schema import Activity, ActivityTypes
  7. from config import DefaultConfig<br>
  8. ....<br>
  9. CONFIG = DefaultConfig()
  10. ADAPTER = CloudAdapter(ConfigurationBotFrameworkAuthentication(CONFIG))
复制代码
 
第二部分:在 config.py 中添加如下配置项
  1. import os
  2. """ Bot Configuration """
  3. class DefaultConfig:
  4.     """ Bot Configuration """
  5.     PORT = 3978
  6.    
  7.     APP_ID = os.environ.get("MicrosoftAppId", "your application id")   
  8.     APP_PASSWORD = os.environ.get("MicrosoftAppPassword", "application secret value")
  9.     APP_TYPE = os.environ.get("MicrosoftAppType", "MultiTenant")
  10.     # APP_TYPE = os.environ.get("MicrosoftAppType", "SingleTenant")
  11.     APP_TENANTID = os.environ.get("MicrosoftAppTenantId", "")
  12.     OAUTH_URL = os.environ.get("OAuthUrl", "https://token.botframework.azure.cn/")
  13.     TO_BOT_FROM_CHANNEL_TOKEN_ISSUER = os.environ.get("ToBotFromChannelTokenIssuer", "https://api.botframework.azure.cn")
  14.     TO_BOT_FROM_CHANNEL_OPENID_METADATA_URL = os.environ.get("ToBotFromChannelOpenIdMetadataUrl", "https://login.botframework.azure.cn/v1/.well-known/openidconfiguration")
  15.     TO_BOT_FROM_EMULATOR_OPENID_METADATA_URL = os.environ.get("ToBotFromEmulatorOpenIdMetadataUrl", "https://login.partner.microsoftonline.cn/<your tenant id>/v2.0/.well-known/openid-configuration")
  16.     TO_CHANNEL_FROM_BOT_LOGIN_URL = os.environ.get("ToChannelFromBotLoginUrl","https://login.partner.microsoftonline.cn/<your tenant id>")
  17.     #TO_CHANNEL_FROM_BOT_LOGIN_URL = os.environ.get("ToChannelFromBotLoginUrl","https://login.partner.microsoftonline.cn/microsoftservices.partner.onmschina.cn") #For Multi Tenant
  18.     TO_CHANNEL_FROM_BOT_OAUTH_SCOPE = os.environ.get("ToChannelFromBotOAuthScope", "https://api.botframework.azure.cn")
  19.    
  20.     VALIDATE_AUTHORITY = os.environ.get("ValidateAuthority", "true")
复制代码
以上参数的值与C#和JavaScript一样,主要的问题是需要找到正确的参数名称  (上面的参数名称均是根据SDK的源码和参考文档中寻找)
 
参考资料

使用 Bot Framework SDK 创建机器人:https://docs.azure.cn/zh-cn/bot-service/bot-service-quickstart-create-bot?view=azure-bot-service-4.0&tabs=python%2Cvs
在由世纪互联运营的 Microsoft Azure 中配置机器人:https://learn.microsoft.com/zh-cn/azure/bot-service/how-to-deploy-china-cloud?view=azure-bot-service-4.0&tabs=javascript#configure-multitenant-bot
BotFrameworkAuthenticationFactory 类:https://learn.microsoft.com/zh-cn/python/api/botframework-connector/botframework.connector.auth.bot_framework_authentication_factory.botframeworkauthenticationfactory?view=botbuilder-py-latest
  
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册