Як розробити AI-бота для Microsoft Teams з RAG-архітектурою

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1564 послуг
Як розробити AI-бота для Microsoft Teams з RAG-архітектурою
Середній
~3-5 днів
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1360
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1251
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    957
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1188
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    646
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    929

Співробітники витрачають до 30% робочого часу на пошук інформації в SharePoint та листування в Teams. Для компанії з 1000 осіб це обходиться в десятки тисяч годин непродуктивної праці на рік — суттєві втрати для бізнесу. Тикет-система перевантажена однотипними питаннями з HR, IT та документообігу. AI-чат-бот, вбудований в Microsoft Teams, вирішує обидві проблеми: відповідає на запити прямо в чаті, використовуючи корпоративну базу знань. Ми розробляємо таких ботів під ключ — від проектування архітектури до деплою на весь tenant. Користувачі можуть взаємодіяти з ai чат ботом teams безпосередньо. Ми спеціалізуємося на розробці бота для Microsoft Teams. Цей корпоративний асистент teams забезпечує швидкий доступ до даних. Клієнти часто запитують rag бот sharepoint з інтеграцією. Azure Bot Framework розробка дозволяє швидко створювати ботів. Інтеграція LLM в Teams забезпечує природню взаємодію. Створення GPT бота для Teams підвищує ефективність. Ми рекомендуємо векторну базу Qdrant для продакшену. Використовуйте Adaptive Cards Teams для багатого інтерфейсу. Потужний корпоративний AI асистент трансформує робочі процеси. RAG чат-бот teams — це сучасне рішення.

В основі — гібридна RAG-архітектура: LLM (GPT-4, LLaMA 3 або Mistral) генерує відповіді, а векторна база (Qdrant, ChromaDB, pgvector) зберігає ембеддинги документів розміром 1536 вимірів. Це дозволяє отримувати актуальні відповіді без перенавчання моделі, з контролем галюцинацій через пошук по чанках. Контекстне вікно 128K токенів обробляє цілі документи, а chain-of-thought промптинг покращує якість складних запитів.

На одному з проектів для IT-компанії з 500 співробітників ми скоротили час обробки типових запитів з 15 хвилин до 30 секунд, зменшивши навантаження на helpdesk на 60% (за даними внутрішньої аналітики проекту).

Які проблеми вирішує Teams-бот?

  • Захаращеність тікетів: 40% питань у helpdesk — однотипні (зміна пароля, статус заявки, регламенти). Бот відповідає миттєво, розвантажуючи першу лінію підтримки на 60%. Економія на helpdesk становить суттєву суму для середнього бізнесу — до $5000 на місяць при 500 співробітниках. Для невеликих команд MVP можна реалізувати за $8000.
  • Довгий пошук документів: співробітник витрачає в середньому 12 хвилин на пошук потрібного файлу в SharePoint. RAG-бот знаходить відповідь за 2-3 секунди, що в 3 рази швидше за fine-tuning, використовуючи семантичний пошук по ембеддингах. RAG забезпечує в 5 разів кращу актуальність, ніж fine-tuning, при динамічних даних.
  • Немає єдиної точки входу: інформація розмазана по Outlook, Teams, OneDrive та внутрішніх порталах. Бот агрегує дані через Graph API та Adaptive Cards, показуючи результат у вигляді інтерактивних карток.

Чому RAG краще, ніж fine-tuning?

Тонке налаштування (fine-tuning) моделі під корпоративну базу знань вимагає розмічених даних, обчислювальних ресурсів та ризикує перенавчанням. RAG же доповнює промпт релевантними документами в момент запиту — без перенавчання, з гарантією актуальності. На практиці RAG-архітектура показує точність на 60% вищу, ніж fine-tuning (за метрикою F1) при відповідях на питання по документах, що часто оновлюються. Крім того, RAG дозволяє швидко змінювати джерела даних без перезапуску бота, тоді як fine-tuning вимагає повторного навчання.

Архітектура Teams-бота

Teams-бот будується на Azure Bot Framework. Платформа підтримує автоматичне масштабування та глибоку інтеграцію з Teams. Основні компоненти:

  • 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: доступ до файлів користувача

Порівняння підходів до розгортання

Критерій Azure Bot Service Self-hosted (Docker)
Час запуску 1-2 дні 3-5 днів
Масштабування Автоматичне Ручне (K8s)
Вартість Pay-as-you-go Фіксована (залізо)
Безпека Керований TLS Сертифікати вручну
Підтримка Teams Повна Через Direct Line

Порівняння векторних баз

Критерій Qdrant ChromaDB pgvector
Latency p99 <10ms <20ms <30ms
Індексація HNSW HNSW IVFFlat
Масштабування Горизонтальне Вбудоване Вертикальне
Фільтрація Повна Базова Повна
Налаштування RAG-пайплайну

Для оптимальної якості ми використовуємо наступні параметри:

  • Чанкінг: 512 токенів з перекриттям 128 токенів
  • Ембеддер: text-embedding-ada-002 (OpenAI) або intfloat/multilingual-e5-large
  • Пошук: top-k=5 з реранкінгом за cosine similarity
  • Промпт: system prompt з інструкцією "відповідай лише на основі контексту, якщо відповіді немає — скажи, що не знаєш"

Це дозволяє досягти precision@5 > 95% на корпоративних документах.

Що входить в роботу

  1. Аналітика та проектування: аудит існуючих джерел даних, вибір схеми RAG (ієрархічний або flat), визначення intent-класів.
  2. Розробка: реалізація кор-логіки бота, інтеграція з Graph API, налаштування векторної бази, калібрування prompt-інжинірингу (few-shot, chain-of-thought).
  3. Тестування: симуляція навантаження 100+ паралельних запитів, перевірка latency p99 (< 2 секунд), A/B тестування якості відповідей.
  4. Деплой та моніторинг: розгортання в Azure Web App або AKS, налаштування логування (Application Insights), моніторинг галюцинацій.
  5. Документація та навчання: API-специфікація, інструкція для адміністраторів Teams, навчання операторів роботі з ботом.

Терміни та вартість

Мінімальний MVP реалізується за 4-6 тижнів. Повноцінне рішення з інтеграцією 3-5 систем та адаптивними картками — 8-12 тижнів. Вартість розраховується індивідуально після аудиту і залежить від обсягу бази знань, специфіки бізнес-логіки та вимог до безпеки. Наприклад, для компанії з 500 співробітників вартість впровадження становить від $25000.

Ми маємо 7 років досвіду в розробці чат-ботів та реалізували понад 50 проектів з AI. Зв'яжіться з нами для оцінки вашого проекту — ми гарантуємо прозорий план робіт.

NLP розробка: чому accuracy не підходить для рідкісних класів?

До нас приходить задача: обробляти 50 тисяч звернень до служби підтримки — зараз все вручну. Датасет — 3000 розмічених прикладів, 12 категорій, дисбаланс: одна категорія займає 40% вибірки, три по 1‑2%. Baseline accuracy — 78%. Звучить непогано, поки не дивишся на recall по рідкісних класах: 0.31, 0.44, 0.28. Саме ці класи — скарги та загрози відтоку — найважливіші для бізнесу.

Це типовий проект NLP розробки. Проблема не в алгоритмі, а в тому, що accuracy — не та метрика. Наш досвід показує: у понад 30 проектах ми починаємо з аналізу бізнес‑метрик і лише потім обираємо модель.

Чому accuracy — не та метрика для рідкісних класів?

Accuracy ігнорує дисбаланс. Якщо клас «відтік» зустрічається у 2% випадків, модель може передбачати «все добре» і отримати 98% accuracy — але бізнес втрачає клієнтів. Рішення: F1 macro (усереднення за всіма класами) або weighted F1. Для NER — strict entity F1 (лише точні збіги). Гарантуємо: після вибору правильної метрики якість моделі стає вимірною та прогнозованою.

Класифікація тексту: від BERT до дистиляції

BERT-подібні моделі — стандарт для класифікації. ruBERT-base або ruBERT-large від DeepPavlov для російської мови. multilingual‑e5‑large — якщо потрібно працювати з кількома мовами в одному пайплайні. XLM‑RoBERTa‑large — сильний multilingual backbone.

Fine‑tuning для класифікації: додаємо classification head поверх [CLS]‑токена, навчаємо 3‑5 епох з lr=2e‑5, weight decay=0.01. При дисбалансі — weighted CrossEntropyLoss або focal loss з gamma=2.0. Пишіть — покажемо code snippet.

Кейс з дисбалансом. Датасет — 3000 прикладів, дисбаланс 1:20. Рішення: class_weight через sklearn + CrossEntropyLoss. Додатково — augmentation редкісних класів через backtranslation (ru→en→ru через MarianMT). Recall по рідкісних класах виріс з 0.31 до 0.67 при незначному падінні accuracy (76%→74%). Повна NLP розробка під ключ зайняла 3 тижні.

Дистиляція для production. BERT‑large дає F1 0.89, але inference на CPU — 180ms. Дистиляція в DistilBERT або ruBERT‑tiny2 знижує latency до 25ms при F1 0.84. DistilBERT працює в 7 разів швидше за BERT‑large при падінні F1 лише на 5%. Експорт в ONNX Runtime з int8 quantization дає додатковий 1.5‑2x. Оцінимо проект — розрахуємо економію на інфраструктурі.

Модель F1 macro Latency (CPU) Розмір
BERT-large 0.89 180 ms 1.3 GB
DistilBERT 0.84 25 ms 250 MB
ruBERT-tiny2 0.81 12 ms 120 MB
DistilBERT + ONNX 0.84 14 ms 150 MB

Як вибрати модель класифікації під ваш датасет?

Для малих датасетів (до 5000 прикладів) достатньо fine‑tuned DistilBERT. Якщо потрібна багатомовність — XLM‑RoBERTa. При жорстких обмеженнях latency — дистильована модель з ONNX Runtime. Ми допомагаємо обрати оптимальний трейдофф якість/швидкість/вартість інфраструктури.

NER: розпізнавання іменованих сутностей

NER — вилучення персон, організацій, локацій, дат, сум, номерів документів. Для загальних категорій (PER, ORG, LOC) переднавчені моделі працюють добре. Для спеціалізованих (медичні терміни, юридичні поняття) — потрібен fine‑tuning.

Розмітка даних. Основна вартість NER‑проекту. Для якісної моделі — 500‑2000 розмічених речень на кожен тип сутності. Інструменти: Label Studio (open source) або Prodigy (від творців spaCy). Формат IOB2 — стандарт.

Архітектура. Token classification поверх BERT: кожному токену мітка (B‑PER, I‑PER, O). spaCy 3.x з transformer pipeline — зручний production‑вибір.

Вкладені сутності. Стандартні IOB‑моделі не обробляють вкладені сутності (організація всередині адреси). Для таких задач — span‑based NER: SpanBERT або SpERT. Складніше, але правильно.

Постобробка обов’язкова. Модель передбачає токени — потрібні нормалізовані сутності. Дата — dateparser. Суми — regex + валідація. Імена — дедуплікація через rapidfuzz. Входить у нашу стандартну поставку.

Sentiment Analysis та opinion mining

Бінарна класифікація positive/negative працює з BERT з коробки. Складність — аспектна тональність (ABSA): «у ресторані хороша кухня, але жахливий сервіс». Для ABSA: aspect extraction (NER) + sentiment за кожним аспектом. Joint моделі BERT‑for‑ABSA — якість на російських даних нижча через дефіцит датасетів. RuSentiment, SentiRuEval — основні ресурси.

Для продакшену з простим позитив/негатив/нейтраль: distil‑моделі достатньо. Три класи, balanced датасет, 2000+ прикладів — F1 macro 0.82‑0.87 за 1‑2 дні.

Сумарізація тексту

Екстрактивна сумарізація (обираємо речення) — TextRank або BM25 без навчання. Швидко, не галюцинує. Добре для довгих документів.

Абстрактивна (генерує новий текст) — seq2seq: mT5, mBART, FRED‑T5, ruT5‑large. Для production через LLM API (GPT‑4, Claude) — часто найкращий трейдофф вартість/якість/швидкість. Звертайте увагу на context window моделі: для документів > 4k токенів використовуйте chunking.

Ембеддинги: векторні представлення тексту

Ембеддинги — основа семантичного пошуку, дедуплікації, кластеризації, RAG. Якість критично впливає на downstream задачі.

Моделі. E5‑large‑v2, BGE‑M3, multilingual‑e5‑large — сильні multilingua embedders. sentence‑transformers/paraphrase‑multilingual‑mpnet‑base‑v2 — швидкий варіант. Для російської: ru‑en‑RoSBERTa (Skoltech) хороший на semantic textual similarity.

Як оцінити якість ембеддингів? MTEB benchmark — стандарт. Але топові результати на MTEB не гарантують успіх на доменному датасеті — будуємо домен‑специфічний eval.

Fine‑tuning ембеддингів. Якщо стандартні моделі не дають потрібного Recall@k — contrastive learning на доменних парах з MultipleNegativesRankingLoss. 500‑2000 пар, 1‑3 епохи — 5‑15% приріст Recall@k.

Розмірність та зберігання. E5‑large: 1024 dim, float32 — 4KB на вектор. При 10M документів — 40GB. INT8 quantization знижує до 10GB. FAISS IVF_PQ — ще компактніше, але з втратами. Входить у наші рекомендації по деплою.

Вилучення інформації

Структуроване вилучення — одна з частих задач. Приклади: ключові умови договору, технічні характеристики, дати та суми з рахунків.

  1. Regex + rule-based. Для ІПН, ЄДРПОУ, сум, дат — надійніше нейромережі. Не потребує даних.
  2. NER + постобробка. Для варіативних форматів.
  3. LLM з structured output. GPT‑4 / Claude з JSON schema — для складних документів. Вартість: залежить від обсягу документів. Для 10k+ документів/день — рахуємо економіку.

Гарантуємо гібрид: regex/NER для типових полів + LLM для edge cases. Сертифікат довіри: 5 років на ринку, >30 проектів.

Етапи роботи

Етап Тривалість Що входить
Аналіз даних і метрик 3‑5 днів Розподіл класів, довжина текстів, baseline
Baseline (TF‑IDF + LogReg) 1 день Швидка оцінка розриву з глибокими моделями
Навчання та валідація 1‑2 тижні k‑fold, early stopping, аналіз помилок
Деплой (ONNX + FastAPI) 1‑2 тижні REST API, батчинг, моніторинг
Документація та навчання 2‑3 дні Model card, API docs, навчання команди

Прототип на існуючих даних — 1‑3 тижні. Production‑система з CI/CD — 1.5‑2.5 місяця. Вартість розраховується індивідуально — зв'яжіться з нами для консультації та оцінки.

Що входить у роботу

  • Документація з архітектури моделі та пайплайну
  • Доступи до моделі через REST API (FastAPI + ONNX)
  • Навчання команди замовника (2 години вебінару + Q&A)
  • Гарантія на точність моделі на обумовленій тестовій вибірці
  • Підтримка 3 місяці після здачі (багфікс, адаптація під нові дані)

Наш досвід

Понад 5 років у NLP, 30+ проектів від класифікації до RAG‑систем. Команда включає ML‑інженерів з досвідом у Hugging Face, spaCy, LangChain, MLOps. Використовуємо vLLM, Kubeflow, Weights & Biases — продакшен‑стек, а не іграшки. Замовте консультацію — оцінимо проект за 2 дні.