Разработка AI-чат-бота с интеграцией в Microsoft Teams
Microsoft Teams Bot — корпоративный инструмент для организаций на стеке Microsoft 365. Teams имеет 320M+ пользователей в enterprise-сегменте. Тесная интеграция с SharePoint, Outlook, Azure AD делает его идеальным для корпоративных AI-ассистентов.
Архитектура Teams-бота
Teams-бот строится на Azure Bot Framework:
- Bot Framework SDK (Python/C#/Node.js) — логика бота
- Azure Bot Service — регистрация и routing
- Bot Framework Connector — интеграция с Teams
from botbuilder.core import ActivityHandler, TurnContext
from botbuilder.schema import ChannelAccount, Activity
class MyBot(ActivityHandler):
async def on_message_activity(self, turn_context: TurnContext):
user_input = turn_context.activity.text
response = await ai_handler.process(
user_input,
user_id=turn_context.activity.from_property.id
)
await turn_context.send_activity(Activity(type="message", text=response))
async def on_members_added_activity(
self, members_added: list[ChannelAccount], turn_context: TurnContext
):
for member in members_added:
if member.id != turn_context.activity.recipient.id:
await turn_context.send_activity("Привет! Чем могу помочь?")
Adaptive Cards
Teams Adaptive Cards — JSON-описание UI-компонентов. Значительно богаче текстовых сообщений:
{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.5",
"body": [
{"type": "TextBlock", "text": "Результат анализа", "weight": "bolder"},
{"type": "TextBlock", "text": "{{analysis_text}}", "wrap": true}
],
"actions": [
{"type": "Action.Submit", "title": "Принять", "data": {"action": "accept"}},
{"type": "Action.OpenUrl", "title": "Подробнее", "url": "{{details_url}}"}
]
}
Интеграция с Microsoft 365
Teams-бот может обращаться к Graph API с контекстом пользователя:
- SharePoint: поиск по документам, получение файлов
- Outlook Calendar: создание встреч, проверка свободного времени
- Azure AD: оргструктура, поиск коллег, группы
- OneDrive: доступ к файлам пользователя
Встраивание в Teams-каналы
Бот может работать: в личных сообщениях (1:1), в каналах команды (при упоминании @), в групповых чатах. Для корпоративного ассистента — настройка на весь tenant через Teams Admin Center.
Развёртывание: Azure Web App + Azure Bot Service, или Docker-контейнер на AKS. Для on-premise: Bot Framework без Azure (self-hosted Direct Line).







