🏨 OREA Hotels - AI Asistent
Technická architektura s MCP, Azure AI Search a postupnou implementací
PoC - Proof of Concept
4-6 týdnů | Interní použití
Entra ID auth | Embedded do webu
Orchestrace dotazů
Samostatný kontejner pro Events
Vektorové + Fulltextové vyhledávání
Relevantní kolekce pro události
Finální skládání odpovědí
📝 Příklad dotazu:
"Jaké máte vánoční programy?"
→ Azure AI Search najde relevantní články → MCP zkombinuje data → GPT-4.1sestaví odpověď
MVP - Plná KB orchestrace
8-10 týdnů | Interní použití
Web + Widget + API
Inteligentní orchestrace více MCP
~10ms | FAQ, Otevírací doby
~100ms | Sémantické vyhledávání
Všechny oblasti + Vector DB
📝 Příklad dotazu:
"Můžu jít po brunchi do wellness?"
→ Langchain orchestruje Events MCP + Wellness MCP → Cache/AI Search → GPT-4.1vytvoří inteligentní odpověď
Enterprise - Externí integrace
Dle dohody | Externí nasazení
Hosté + Zaměstnanci
Langchain + Business logic
📝 Příklad dotazu:
"Máte volný pokoj na vánoce s wellness?"
→ KB (programy) + Booking (dostupnost) + Pricing (cena) = Nabídka s možností rezervace
🔍 PoC Fáze - Technický Detail
🎯 Klíčové principy PoC fáze
- Správná infrastruktura od začátku (CI/CD, Azure deployment)
- Azure AI Search místo přímého dotazování do Knowledge Base
- Každý MCP = samostatný Azure Container
- Použití GPT-4.1-mini pro orchestraci, GPT-4.1/GPT-5 pro finální odpovědi
📊 Architektura Flow
Uživatel zadá dotaz přes Web App (Entra ID auth) nebo Widget na webu
Router analyzuje dotaz, identifikuje potřebu dotazu na Events MCP
Samostatný kontejner zpracovává dotaz a volá Azure AI Search
Vektorové + Fulltextové vyhledávání v indexovaných datech z KB
Rychlejší a levnější než přímé dotazování do Knowledge Base
Relevantní kolekce pro události hotelů (programy, akce, wellness, atd.)
Složení finální odpovědi z nalezených dat v kontextu konverzace
Uživatel dostane odpověď s odkazy přímo do Knowledge Base pro verifikaci zdrojů
🛠️ Technologie Stack
🔵 Azure AI Search
Role: Vektorové + Fulltextové vyhledávání
Důvod: 10-50x rychlejší než přímé API dotazy do Knowledge Base
Latence: ~100ms
🤖 Azure OpenAI
GPT-4.1-mini: Orchestrace, routing
GPT-4.1 / GPT-5: Finální skládání odpovědí
Embedding models: Vektorizace (pokud potřeba)
📦 MCP Protocol
Anthropic MCP: Listopad 2024
Deployment: Azure Container Apps
Izolace: Každý MCP = samostatný kontejner
🔐 Entra ID
Auth: Azure AD / Entra ID
SSO: Integrace s firemním účtem
Permissions: Role-based access
🚀 CI/CD Pipeline
Azure DevOps: Automatický deployment
Containers: Docker + Azure Container Apps
Infrastruktura: Správně od začátku
💾 Knowledge Base
CMS: Strapi
Events kolekce: Relevantní kolekce s vazbami na hotel
Synchronizace: Real-time přes API
📚 Knowledge Base - Events Structure
PoC pracuje s relevantními kolekcemi pro Events oblast hotelů:
⚠️ Důležitá úloha: Čištění duplicit a překrývajících se článků ve spolupráci s AAG
🎯 MVP Fáze - Technický Detail
🎯 Klíčové rozšíření v MVP
- Langchain/LangGraph pro orchestraci více MCP serverů
- Redis Cache pro často používaná data (~10ms latence)
- 6 samostatných MCP serverů (každý = Azure Container)
- Multi-channel přístup (Web + Widget + API)
📊 Orchestrace Flow s Langchain
"Můžu jít po brunchi do wellness?"
Analyzuje dotaz → Identifikuje potřebu volat Events MCP + Wellness MCP
Events MCP: Najde čas konce brunche (např. 14:00)
Wellness MCP: Najde otevírací dobu wellness (např. 10:00-20:00)
Kontrola, zda jsou data v cache (~10ms)
Pokud ne → Azure AI Search (~100ms)
Langchain agreguje výsledky z obou MCP serverů
"Ano, brunch končí ve 14:00 a wellness je otevřené do 20:00, takže máte dostatek času."
🛠️ MCP Servery v MVP
📅 Events MCP
Hotelové akce, programy, události
Kolekce: Relevantní kolekce pro události hotelů
❓ FAQ MCP
Často kladené otázky
Cache: 100% v Redis (statická data)
💆 Wellness MCP
Wellness služby, otevírací doby, programy
Cache: Částečně (otevírací doby, statické info)
🍽️ F&B MCP
Restaurace, bary, room service, jídelní lístky
Update: Denně (menu změny)
🗺️ Discovery MCP
Okolí hotelu, atrakce, doporučení
Cache: Většina dat (statické)
➕ Extras MCP
Doplňkové služby, aktivity
Mix: Cache + Real-time
⚡ Data Strategy v MVP
⚡ Redis Cache (~10ms)
Co: FAQ, otevírací doby, statické články
Update: Každou hodinu
Hit rate: Očekáváno ~60-70%
🔍 Azure AI Search (~100ms)
Co: Sémantické vyhledávání, komplexní dotazy
Update: 1x denně (indexace)
Použití: Cache miss nebo složité dotazy
🔄 Real-time KB (~200ms)
Co: Aktuální změny, které nejsou v cache/search
Update: Okamžitě
Použití: Fallback, critical updates
🚀 Enterprise Fáze - Technický Detail
🎯 Enterprise Rozšíření
- Integrace externích systémů (Booking, CRM/Fabric, PMS, Pricing)
- Veřejný přístup pro hosty (ne jen zaměstnanci)
- Real-time dostupnost pokojů a ceny
- Business intelligence (finanční výsledky, analýzy)
- Kompletní rezervační proces
📊 Komplexní Use Case Flow
"Máte volný pokoj na vánoce s wellness programem?"
Langchain identifikuje potřebu:
- Vánoční program (Events MCP + KB)
- Dostupnost pokojů (Booking MCP)
- Cena (Pricing MCP)
- Wellness info (Wellness MCP)
Events MCP: Vánoční programy s datumy
Booking MCP: Real-time dostupnost pokojů (API booking systému)
Pricing MCP: Aktuální ceny + speciální nabídky
Wellness MCP: Wellness vybavení a služby v hotelu
Pokud host přihlášen → načtení z CRM/Fabric:
- Historie návštěv
- Preference
- Loyalty status → personalizované nabídky
"Ano, máme dostupné pokoje 24.-26.12. Hotel nabízí vánoční gala večeři 24.12. a wellness balíček. Cena od 8.500 Kč/noc včetně snídaně. [Tlačítko: Rezervovat]"
Host klikne na "Rezervovat" →
PMS MCP vytvoří rezervaci →
Confirmation email + CRM update
🔗 Externí MCP Servery
🏨 Booking MCP
Integrace: API booking systému (TBD)
Funkce: Real-time dostupnost pokojů, rezervace
Latence: ~300-500ms (externí API)
👤 CRM MCP (Fabric)
Integrace: Microsoft Fabric nebo CRM API
Funkce: Historie hostů, preference, loyalty, personalizace
Data: Finanční výsledky, analýzy (pro zaměstnance)
🔑 PMS MCP
Integrace: Property Management System API
Funkce: Správa rezervací, check-in/out, room management
Auth: Secure API tokens
💰 Pricing MCP
Integrace: Revenue management system
Funkce: Dynamické ceny, speciální nabídky, packages
Update: Real-time (ceny se mění)
💡 Business Intelligence Use Case
Dotaz manažera: "Jaké byly finanční výsledky Q4 2024 a co je ovlivnilo?"
Proces:
1. CRM/Fabric MCP → Finanční data z Q4
2. Events MCP → Jaké akce proběhly v Q4
3. Booking MCP → Occupancy rate v Q4
4. GPT-4.1 / GPT-5 → Analýza korelací a doporučení
Odpověď: "Q4 2024: tržby 12.5M Kč (+8% YoY). Hlavní růst z vánočních programů (Events) a vysoké obsazenosti 85%. Doporučení: rozšířit vánoční nabídku pro Q4 2025."
💰 Enterprise Considerations
❓ Otázky pro indikativní odhad Enterprise fáze
Pro přesnější odhad nákladů a časového plánu potřebujeme následující informace:
💡 Naše standardní předpoklady:
• AI asistent bude pouze číst data z externích systémů (Booking, PMS, CRM, atd.)
• Write operace (úpravy dat, vytváření rezervací) výrazně zvyšují složitost a cenu
• Oprávnění lze řešit buď na úrovni MCP serverů (jednodušší), nebo respektovat oprávnění ze zdrojových systémů (složitější)
💻 Interface & User Experience
🌐 Web Application
Use case: Zaměstnanec recepce hledá informace o vánočním programu pro hosta
💬 Embedded Widget
Use case: Host se ptá na recepci na wellness programy - recepční najde odpověď rychle bez složitého hledání v systému
🔧 Admin Vizualizace
Use case: Pavel/Jakub ladí problém s nesprávnou odpovědí - vidí které články byly použity
📝 Prompt Management
🎯 Prompty mimo kód
- Prompty uložené mimo kód (např. Azure Blob Storage nebo config)
- Editovatelné bez nového commit do repo
- Verzování změn v promptech
- Možnost A/B testování různých promptů
- Role-based přístup k editaci (kdo může měnit prompty)
🖥️ UI Mockup Flow
Uživatel zadá: "Jaké máte vánoční programy v Hluboké?"
Animovaná "..." indikace během zpracování (~2-3s)
Formátovaná odpověď s:
- Strukturovaný text
- Bullet points pro přehlednost
- Zvýrazněné důležité info (ceny, datumy)
Pod odpovědí odkazy na KB články:
"📄 Zdroje: Vánoční program 2024, Hotel Hluboká - Events"
(Pouze pro interní použití, hosté nevidí)
Tlačítka s návrhy dalších dotazů:
"💆 Co zahrnuje wellness?" | "💰 Kolik stojí pobyt?" | "🗓️ Je ještě volno?"