azure-mgmt-botservice-py

安装量: 40
排名: #17977

安装

npx skills add https://github.com/sickn33/antigravity-awesome-skills --skill azure-mgmt-botservice-py

Azure Bot Service Management SDK for Python Manage Azure Bot Service resources including bots, channels, and connections. Installation pip install azure-mgmt-botservice pip install azure-identity Environment Variables AZURE_SUBSCRIPTION_ID = < your-subscription-id

AZURE_RESOURCE_GROUP

< your-resource-group

Authentication from azure . identity import DefaultAzureCredential from azure . mgmt . botservice import AzureBotService import os credential = DefaultAzureCredential ( ) client = AzureBotService ( credential = credential , subscription_id = os . environ [ "AZURE_SUBSCRIPTION_ID" ] ) Create a Bot from azure . mgmt . botservice import AzureBotService from azure . mgmt . botservice . models import Bot , BotProperties , Sku from azure . identity import DefaultAzureCredential import os credential = DefaultAzureCredential ( ) client = AzureBotService ( credential = credential , subscription_id = os . environ [ "AZURE_SUBSCRIPTION_ID" ] ) resource_group = os . environ [ "AZURE_RESOURCE_GROUP" ] bot_name = "my-chat-bot" bot = client . bots . create ( resource_group_name = resource_group , resource_name = bot_name , parameters = Bot ( location = "global" , sku = Sku ( name = "F0" ) ,

Free tier

kind

"azurebot" , properties = BotProperties ( display_name = "My Chat Bot" , description = "A conversational AI bot" , endpoint = "https://my-bot-app.azurewebsites.net/api/messages" , msa_app_id = "" , msa_app_type = "MultiTenant" ) ) ) print ( f"Bot created: { bot . name } " ) Get Bot Details bot = client . bots . get ( resource_group_name = resource_group , resource_name = bot_name ) print ( f"Bot: { bot . properties . display_name } " ) print ( f"Endpoint: { bot . properties . endpoint } " ) print ( f"SKU: { bot . sku . name } " ) List Bots in Resource Group bots = client . bots . list_by_resource_group ( resource_group_name = resource_group ) for bot in bots : print ( f"Bot: { bot . name } - { bot . properties . display_name } " ) List All Bots in Subscription all_bots = client . bots . list ( ) for bot in all_bots : print ( f"Bot: { bot . name } in { bot . id . split ( '/' ) [ 4 ] } " ) Update Bot bot = client . bots . update ( resource_group_name = resource_group , resource_name = bot_name , properties = BotProperties ( display_name = "Updated Bot Name" , description = "Updated description" ) ) Delete Bot client . bots . delete ( resource_group_name = resource_group , resource_name = bot_name ) Configure Channels Add Teams Channel from azure . mgmt . botservice . models import ( BotChannel , MsTeamsChannel , MsTeamsChannelProperties ) channel = client . channels . create ( resource_group_name = resource_group , resource_name = bot_name , channel_name = "MsTeamsChannel" , parameters = BotChannel ( location = "global" , properties = MsTeamsChannel ( properties = MsTeamsChannelProperties ( is_enabled = True ) ) ) ) Add Direct Line Channel from azure . mgmt . botservice . models import ( BotChannel , DirectLineChannel , DirectLineChannelProperties , DirectLineSite ) channel = client . channels . create ( resource_group_name = resource_group , resource_name = bot_name , channel_name = "DirectLineChannel" , parameters = BotChannel ( location = "global" , properties = DirectLineChannel ( properties = DirectLineChannelProperties ( sites = [ DirectLineSite ( site_name = "Default Site" , is_enabled = True , is_v1_enabled = False , is_v3_enabled = True ) ] ) ) ) ) Add Web Chat Channel from azure . mgmt . botservice . models import ( BotChannel , WebChatChannel , WebChatChannelProperties , WebChatSite ) channel = client . channels . create ( resource_group_name = resource_group , resource_name = bot_name , channel_name = "WebChatChannel" , parameters = BotChannel ( location = "global" , properties = WebChatChannel ( properties = WebChatChannelProperties ( sites = [ WebChatSite ( site_name = "Default Site" , is_enabled = True ) ] ) ) ) ) Get Channel Details channel = client . channels . get ( resource_group_name = resource_group , resource_name = bot_name , channel_name = "DirectLineChannel" ) List Channel Keys keys = client . channels . list_with_keys ( resource_group_name = resource_group , resource_name = bot_name , channel_name = "DirectLineChannel" )

Access Direct Line keys

if hasattr ( keys . properties , 'properties' ) : for site in keys . properties . properties . sites : print ( f"Site: { site . site_name } " ) print ( f"Key: { site . key } " ) Bot Connections (OAuth) Create Connection Setting from azure . mgmt . botservice . models import ( ConnectionSetting , ConnectionSettingProperties ) connection = client . bot_connection . create ( resource_group_name = resource_group , resource_name = bot_name , connection_name = "graph-connection" , parameters = ConnectionSetting ( location = "global" , properties = ConnectionSettingProperties ( client_id = "" , client_secret = "" , scopes = "User.Read" , service_provider_id = "" ) ) ) List Connections connections = client . bot_connection . list_by_bot_service ( resource_group_name = resource_group , resource_name = bot_name ) for conn in connections : print ( f"Connection: { conn . name } " ) Client Operations Operation Method client.bots Bot CRUD operations client.channels Channel configuration client.bot_connection OAuth connection settings client.direct_line Direct Line channel operations client.email Email channel operations client.operations Available operations client.host_settings Host settings operations SKU Options SKU Description F0 Free tier (limited messages) S1 Standard tier (unlimited messages) Channel Types Channel Class Purpose MsTeamsChannel Microsoft Teams Teams integration DirectLineChannel Direct Line Custom client integration WebChatChannel Web Chat Embeddable web widget SlackChannel Slack Slack workspace integration FacebookChannel Facebook Messenger integration EmailChannel Email Email communication Best Practices Use DefaultAzureCredential for authentication Start with F0 SKU for development, upgrade to S1 for production Store MSA App ID/Secret securely — use Key Vault Enable only needed channels — reduces attack surface Rotate Direct Line keys periodically Use managed identity when possible for bot connections Configure proper CORS for Web Chat channel When to Use This skill is applicable to execute the workflow or actions described in the overview.

返回排行榜