A chatbot egy olyan szoftverrendszer, amely előre meghatározott vagy gépi tanuláson alapuló logika szerint szöveges (esetenként hangalapú) párbeszédet folytat a felhasználóval. Az egyszerű szabályalapú megoldásoktól az összetett, kontextust kezelő rendszerekig terjed a spektrum.
A chatbotok főbb típusai
A szakirodalom általában két fő kategóriát különböztet meg a chatbotok körében:
- Szabályalapú chatbotok: Előre meghatározott döntési fák és kulcsszóegyezések alapján adnak választ. Egyszerűbb feladatokra alkalmasak, pl. GYIK-kezelés, menü alapú navigáció.
- ML-alapú chatbotok: Gépi tanulási modellek segítségével értelmezik a felhasználói szöveget, és dinamikusan generálnak választ. Összetettebb párbeszédekre is képesek.
A magyarországi vállalati környezetben jellemzően hibrid megközelítés terjedt el: az üzleti folyamatok strukturált részeihez szabályalapú logika, az előre nem látható kérdésekhez NLU-réteg kapcsolódik.
Az intent – szándékfelismerés
Az intent (szándék) a felhasználói üzenet mögött álló célt jelöli. Például a „Mikor nyit a fiókotok?" kérdés mögött a „nyitvatartás-lekérdezés" intent áll.
Egy intent tréningpéldáinak összeállítása kulcsfontosságú: minél változatosabbak a példamondatok, annál pontosabb a felismerés. Az iparági ajánlások szerint általában legalább 10–15 eltérő megfogalmazású példa szükséges intentenként, mielőtt az éles tesztelés megkezdődhet.
Megjegyzés: Az intent-elnevezésekben érdemes konzisztens, érthető konvenciót követni (pl. nyitvatartas_lekerdezes), hogy a fejlesztő csapaton belüli kommunikáció egyértelmű maradjon.
Az entity – entitáskinyerés
Az entity (entitás) a felhasználói szövegben azonosítható konkrét adatelemet jelent: dátumot, helyszínt, termékneveket, mennyiségeket stb. Például a „Holnap délelőtt szeretnék időpontot" mondatban az entitás a „holnap délelőtt" (dátum/időpont).
Az entitások lehetnek:
- Előre definiált (built-in): Dátumok, számok, pénznemek – ezeket a legtöbb NLU-motor automatikusan kezeli.
- Egyedi (custom): Üzletspecifikus fogalmak, terméklisták, kategóriák – ezeket a fejlesztőcsapat tréningeli be.
Párbeszédfolyamatok (dialog flow)
A párbeszédfolyamat az egymást követő felhasználói és chatbot-üzenetek logikai szekvenciáját írja le. A jól tervezett folyamat:
- Meghatározza a csomópontokat (node-okat): minden lépést, ahol a chatbot döntést hoz.
- Kezeli a kontextust: emlékezik az előző üzenetekre, kerüli az ismételt adatkérést.
- Tartalmaz fallback ágat: ha a chatbot nem érti a kérdést, udvarias visszakérdezéssel reagál.
- Definiál slot-filling mechanizmust: fokozatosan gyűjti az összes szükséges adatot.
Keretrendszerek és eszközök
A chatbotfejlesztéshez számos nyílt forráskódú és kereskedelmi keretrendszer elérhető. Az alábbiakban néhány széles körben dokumentált eszköz szerepel:
Rasa Open Source
A Rasa egy nyílt forráskódú keretrendszer, amely NLU-komponenst és párbeszéd-menedzsmentet is tartalmaz. Saját szerveren futtatható, az adatok így a fejlesztő infrastruktúráján maradnak. Dokumentációja angolul érhető el a rasa.com/docs oldalon.
Botpress
A Botpress vizuális szerkesztőt és beépített NLU-t kínál. Ingyenes közösségi verziója telepíthető helyi szerverre. Különösen FAQ-jellegű chatbotok készítéséhez terjedt el.
Dialogflow (Google)
A Google Dialogflow felhőalapú NLU-platform. Részletes integrációt kínál a Google Cloud szolgáltatásaival, és egyszerűbb szintaxissal kezeli az intenteket és entitásokat.
Tesztelési stratégiák
A chatbot minőségének értékelésekor az alábbi szempontokat érdemes figyelembe venni:
- Intent-felismerési pontosság: Az összes teszt-üzenet hány százalékát sorolta a rendszer a helyes intent alá.
- Entitáskinyerés pontossága: Az entitások helyesen lettek-e azonosítva és kivonatolva.
- Párbeszéd-végigjárhatóság: A teljes folyamat lefuttatható-e hiba nélkül a definiált forgatókönyvek szerint.
- Fallback arány: Az összes kérdés hány százalékánál aktiválódott a nem-értett ág – ha ez magas, a tréningadatokat bővíteni szükséges.
Magyar nyelvű chatbotok sajátosságai
A magyar nyelv agglutináló jellege – azaz a ragok és képzők gazdag rendszere – sajátos kihívásokat jelent a tokenizálás és szándékfelismerés területén. A „nyitvatartásotokat" szóalak például ugyanazt az intentet képviseli, mint a „nyitvatartás", de az alakok felismerése nem triviális.
Kifejezetten magyar NLP-eszközök közé tartozik a emtsv (MTA Nyelvtudományi Intézet) szövegelemző csővezeték, amely morfológiai elemzést, szófajcímkézést és függőségi elemzést is kínál. Chatbot-fejlesztési kontextusban ez a réteg a szöveg előfeldolgozásában játszhat szerepet.