Dit artikel is gepubliceerd als onderdeel van het Data Science-blogathon
Introductie
Vraag je je ooit af hoe Google-assistent, Siri, chatbots op verschillende websites werken? De vooruitgang op het gebied van natuurlijke taalverwerking maakt de weg vrij voor verschillende zeer nauwkeurige AI-assistenten op verschillende gebieden zoals medisch, defensie, management, enz. Er zijn verschillende AI-frameworks en tools zoals RASA, Dialogflow, Microsoft Bot Framework, enz.. beschikbaar voor het maken van zowel grootschalige als kleinschalige chatbots.
In dit artikel bespreken we kort de ontwikkeling van chatbots met behulp van het RASA-framework.
Wat is RASA?
RASA is een open-source chatbotframework gebaseerd op machine learning. Met behulp hiervan kunnen we eenvoudig zeer nauwkeurige chatbots maken en deze chatbots eenvoudig integreren met onze website, telegram, Facebook, Whatsapp, enz.
Voordat we erop ingaan, laten we eens kijken naar enkele eenvoudige concepten die we moeten kennen bij het maken van een chatbot.
Vraag
Een query is het gebruikersbericht voor de chatbot om details van iets te krijgen.
Reactie/actie
Actie is de reactie van een chatbot op basis van de vraag.
intents
Intenties kunnen worden omschreven als het doel of de intentie van de gebruikersinvoer.
Hoi, hallo, goedemorgen, goedenavond, enz. kunnen bijvoorbeeld worden behandeld als begroetingsintentie.
Entiteiten
Entiteiten kunnen worden omschreven als nuttige informatie die kan worden geรซxtraheerd uit de gebruikersinvoer (de zelfstandige naamwoorden in de dialoog).
Bijvoorbeeld: 'Ik wil een ticket van DELHI naar COCHIN boeken', hier zijn zowel Delhi als Cochin entiteiten (locatie)
RASA-componenten
Het heeft twee hoofdcomponenten, RASA NLU en RASA CORE
RASA NLU
RASA NLU is de tolk die de gebruikersinvoer verwerkt, de intenties identificeert en de entiteiten eruit haalt.
RASA-KERN
RASA CORE ontvangt de uitvoer van de RASA NLU (waarin een woordenboek de intentie-entiteiten en andere informatie specificeert) en op basis van deze details selecteert het RASA Core-deel het juiste antwoord en stuurt dit terug naar de gebruiker als het botantwoord.
Architectuur van RASA
In de architectuur kunnen we voornamelijk 4 dingen bespreken: Tolk, Tracker, Beleid, Actie.
Wanneer een persoon een bericht typt en naar de RASA-chatbot verzendt, wordt dit ontvangen en doorgegeven aan de tolk. Het is deze tolk die de bedoeling van het bericht identificeert en de entiteiten eruit haalt.
Er is een Tracker aanwezig, die altijd de status van het gesprek tussen de gebruiker en de bot volgt. Beleid in de architectuur houdt de huidige gespreksstatus bij en beslist wat de juiste botactie is. De geselecteerde actie wordt vervolgens ook gevolgd door de tracker en vervolgens als antwoord naar de gebruiker verzonden.
RASA installeren op Windows
Virtuele omgeving creรซren
Laten we het in een virtuele omgeving installeren. We creรซren dus een virtuele omgeving in onze vensters met behulp van virtualenv
virtuele omgeving installeren
pip virtualenv installeren
het creรซren van een virtuele omgeving met de naam my_env
virtueleenv mijn_env
Vervolgens moeten we onze omgeving activeren
mijn_envScriptsactivate.bat
RASA installeren
Onze virtuele omgeving is succesvol aangemaakt en geactiveerd. Vervolgens moeten we de RASA installeren op onze my_env.
pip installeer rasa
Het volgende is het initialiseren van ons project
rasa begin
We kunnen het initiรซle model trainen tijdens het initialiseren.
Na de initialisatie van het project worden er verschillende nieuwe bestanden aangemaakt. De bestandsstructuur zal zijn
Laten we de bestandsstructuur doornemen om een โโidee te krijgen van de verschillende bestanden. Deze bestanden worden door RASA gevuld met standaardtekst.
De belangrijke bestanden zijn
nlu.yml
Dit bestand bevat de mogelijke berichten van de gebruiker en de bijbehorende intentie. Dit bestand wordt gebruikt voor het maken van het intentieclassificatiemodel. Telkens wanneer de gebruiker een bericht invoert, classificeert het classificatiemodel automatisch de bedoeling van het bericht.
versie: "2.0" nlu: - intentie: begroetingsvoorbeelden: | - hey - hallo daar - goedemorgen - goedenavond - intentie: tot ziens voorbeelden: | - goedemiddag - cu - tot ziens - tot ziens - intentie: ontkennen voorbeelden: | - nee - nooit - Ik denk het niet
verhalen.yml
Het bevat verschillende mogelijke voorbeeldinteracties tussen de gebruiker en de chatbot. Met dit voorbeeld krijgt de bot een idee van wat het mogelijke antwoord zou zijn op gebruikersinvoer.
versie: "2.0" verhalen: - verhaal: vrolijke stappen: - intentie: groet - actie: utter_greeting - intentie: mood_great - actie: utter_happy - verhaal: trieste padstappen: - intentie: groet - actie: utter_greeting - intentie: mood_unhappy - actie : utter_cheer_up - intentie: tot ziens - actie: utter_goodbye
domein.yml
Dit bestand bevat verschillende botreacties en vermeldt alle intenties en entiteiten die zijn gebruikt bij het maken van het nlu.yml-bestand.
versie: "2.0" bedoelingen: - groeten - tot ziens reacties: utter_greeting: - tekst: "Hii Hoe gaat het?" utter_goodbye: - tekst: "Dag"
acties.py
Dit is het Python-bestand om de aangepaste acties uit te voeren. Dit bestand kan worden gebruikt voor een API-oproep of databasequery's
door te typen import Any, Text, Dict, List from rasa_sdk import Action, Tracker from rasa_sdk.executor import CollectingDispatcher class ActionHelloWorld(Action): def name(self) -> Text: return "action_hello" def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domein: Dict[Text, Any]) -> Lijst[Dict[Text, Any]]: dispatcher.utter_message(text="Hallo") return []
Wanneer de actie action_hello is, wordt de bovenstaande code uitgevoerd en wordt de tekst "Hallo" als antwoord verzonden.
Trainingen
We kunnen ons model trainen op basis van de gegevens die we in de bovenstaande bestanden hebben verstrekt.
rasa trein
Wanneer we de bovenstaande code in de terminal uitvoeren, begint rasa zowel het nlu- als het kernmodel te trainen en slaat het getrainde model vervolgens op in de map models.
Laten we nu de werking van de bot controleren. We kunnen communiceren met de bot in een opdrachtshell
rasa schelp
Met dit commando laadt de rasa het getrainde model en kunnen we communiceren met de bot in de shell
We kunnen deze rasa-shell stoppen door cntrl+c of door โ/stopโ te typen.
RASA interactief
We kunnen onze rasa-bot in een interactieve modus instellen.
Rasa interactief
Bij het starten van de interactieve modus zal het eerst een model trainen, gevolgd door het openen van een interactieve sessie. Tijdens deze interactieve sessie kunt u met uw bot chatten en de voorspelling van de bot corrigeren. Na de interactieve sessie kunt u nog wat trainingsgegevens genereren en vervolgens een model trainen voor betere voorspellingen.
Conclusie
Dat ging allemaal over het creรซren van een eenvoudige basischatbot. Ik hoop dat je misschien een idee hebt gekregen van de werking van de RASA-chatbot. De ontwikkeling van een end-to-end chatbot kunnen we in het komende artikel bespreken.
Bedankt..!
Verwant
- "
- 9
- Actie
- AI
- Alles
- analytics
- api
- architectuur
- dit artikel
- Assistent
- Bot
- Bellen
- Chatbot
- chatbots
- classificatie
- code
- komst
- Gesprek
- Wij creรซren
- Actueel
- gegevens
- Database
- Verdediging
- Delhi
- Ontwikkeling
- dialoogstroom
- Milieu
- etc
- extracten
- Velden
- Voornaam*
- Achtergrond
- goed
- Kopen Google Reviews
- google-assistent
- hier
- Hoe
- HTTPS
- idee
- informatie
- aandachtig
- interactieve
- IT
- taal
- leren
- Lijst
- lijsten
- laden
- plaats
- machine learning
- maken
- management
- Media
- medisch
- Microsoft
- model
- Natuurlijke taal
- Natural Language Processing
- nlu
- bestellen
- Overige
- beleidsmaatregelen
- voorspelling
- presenteren
- project
- Python
- rasa
- antwoord
- lopen
- Wetenschap
- gekozen
- reeks
- Shell
- Eenvoudig
- siri
- So
- begin
- Land
- winkels
- Blog
- Telegram
- Trainingen
- Virtueel
- Website
- websites
- ruiten
- Mijn werk