Chatbot architektúra illusztráció
Forrás: Wikimedia Commons, CC-licenc

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:

  1. Meghatározza a csomópontokat (node-okat): minden lépést, ahol a chatbot döntést hoz.
  2. Kezeli a kontextust: emlékezik az előző üzenetekre, kerüli az ismételt adatkérést.
  3. Tartalmaz fallback ágat: ha a chatbot nem érti a kérdést, udvarias visszakérdezéssel reagál.
  4. Definiál slot-filling mechanizmust: fokozatosan gyűjti az összes szükséges adatot.
ELIZA chatbot párbeszéd – az első ismert chatbot
Az ELIZA chatbot az 1960-as évekből – az első nyilvánosan ismert párbeszédrendszer. Forrás: Wikimedia Commons

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.

# Példa Rasa NLU tréning YAML struktúra (szemléltető célú) nlu: - intent: nyitvatartas_lekerdezes examples: | - Mikor tartanak nyitva? - Hány órakor zárnak? - Nyitvatartás kérlek - Mikortól meddig vagyok fogadva?

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.