Heim  >  Artikel  >  Backend-Entwicklung  >  Chatbot mit Python und Rasa

Chatbot mit Python und Rasa

WBOY
WBOYnach vorne
2023-09-15 11:33:02917Durchsuche

Chatbot mit Python und Rasa

Chatbots gelten als bevorzugtes Kommunikationstool für Unternehmen zur Interaktion mit Kunden und bieten eine effizientere und bequemere Art der Interaktion. Python, eine Programmiersprache, die durch ihre Entwicklungsressourcen vereinfacht wird, ist zur ersten Wahl für die Erstellung verschiedener Chatbots geworden. Rasa hingegen ist ein spezialisiertes Tool, das sich auf die Entwicklung von Chatbots mit natürlichem Sprachverständnis konzentriert.

In diesem Artikel tauchen wir in die faszinierende Welt der Chatbot-Entwicklung mit Python und Rasa ein. Wir werden uns den Prozess der Definition des Zwecks eines Chatbots, der Schulung des Chatbots zum Verstehen natürlicher Sprache und der Feinabstimmung seiner Antworten durch Training genauer ansehen. Mit diesen leistungsstarken Tools können Entwickler individuelle Chatbots erstellen, die ein nahtloses und benutzerfreundliches interaktives Erlebnis bieten. Ganz gleich, ob Ihr Ziel darin besteht, einen Chatbot für den Kundenservice, den E-Commerce oder einen anderen Zweck zu entwickeln, dieser Artikel führt Sie in die spannenden Möglichkeiten der Erstellung von Chatbots mit Python und Rasa ein!

Beginnen Sie mit Rasa

Rasa ist als Python-Paket verfügbar und kann mit pip, dem Paketmanager von Python, installiert werden. Um Rasa zu installieren, öffnen Sie ein Terminal oder eine Eingabeaufforderung und führen Sie den folgenden Befehl aus:

pip install rasa

Nachdem die Installation abgeschlossen ist, können Sie mit dem Rasa-Init-Befehl ein neues Rasa-Projekt erstellen. Dieser Befehl erstellt ein neues Verzeichnis für Ihr Chatbot-Projekt, das die erforderlichen Dateien und Ordner enthält.

rasa init --no-prompt

Dieser Befehl erstellt ein neues Rasa-Projekt mit der folgenden Verzeichnisstruktur:

myproject/
├── actions/
├── data/
│   ├── nlu.md
│   ├── rules.md
│   └── stories.md
├── models/
├── tests/
├── config.yml
├── credentials.yml
├── domain.yml
├── endpoints.yml
└── README.md

Der Aktionsordner enthält Python-Skripte, die benutzerdefinierte Aktionen für den Chatbot definieren. Der Datenordner enthält Trainingsdaten in Form von Markdown-Dateien für NLU (Natural Language Understanding), Geschichten und Regeln. Der Ordner „Modelle“ enthält trainierte Modelle, die der Chatbot verwendet, um Anfragen zu verstehen und darauf zu antworten.

Erstellen Sie einen einfachen Chatbot

Um einen Chatbot zu erstellen, müssen Sie seine Domäne, Absicht, Entitäten und Aktionen definieren. Die Datei domain.yml definiert die Domäne des Chatbots, die Absichten, Entitäten, Slots und Aktionen umfasst.

Absichten sind die Absichten des Benutzers und Entitäten sind die vom Benutzer bereitgestellten Daten, um seine Absichten zu erfüllen. In Slots werden Informationen über den Benutzer gespeichert, beispielsweise sein Name oder sein Standort. Aktionen sind Antworten, die der Chatbot dem Benutzer bereitstellt.

Hier ist eine Beispieldatei domain.yml:

intents:
  - greet
  - goodbye
  - affirm
  - deny

entities:
  - name
  - location

slots:
  name:
    type: text
  location:
    type: text

actions:
  - utter_greet
  - utter_goodbye
  - utter_ask_name
  - utter_ask_location

In diesem Beispiel haben wir vier Absichten definiert: „Greeting“ (Begrüßung), „Goodbye“ (Abschied), „Confirm“ (Bestätigen) und „Deny“ (Deny). Wir definieren auch zwei Entitäten: Name und Standort. Schließlich haben wir vier Aktionen definiert: utter_greet (Begrüßung beantworten), utter_goodbye (Auf Wiedersehen antworten), utter_ask_name (Name der Antwortanfrage) und utter_ask_location (Speicherort der Antwortanfrage).

Diese Aktionen definieren die Antwort, die der Chatbot dem Benutzer gibt. Die Aktion „utter_greet“ könnte beispielsweise lauten: „Hallo, wie kann ich Ihnen heute helfen?“

Sobald Sie Ihre Domain definiert haben, müssen Sie Trainingsdaten für Ihren Chatbot bereitstellen. Sie können dies tun, indem Sie NLU-, Story- und Regeldateien im Datenordner erstellen.

NLU-Dateien enthalten Beispiele für Benutzerabfragen und die entsprechenden Absichten und Entitäten. Hier ist eine Beispiel-NLU-Datei:

## intent:greet
- hello
- hi
- hey

## intent:

Die NLU-Datei definiert vier Absichten: Begrüßen (Begrüßung), Auf Wiedersehen (Abschied), Bestätigen (Bestätigen) und Verweigern (Verweigern). Jede Absicht verfügt über eine Reihe von Beispielabfragen, die ein Benutzer eingeben kann.

Story-Dateien definieren die Konversationspfade, die ein Benutzer bei der Interaktion mit dem Chatbot einschlagen kann. Hier ist eine Beispiel-Story-Datei:

## story1
* greet
  - utter_greet
* affirm
  - utter_ask_name
* inform{"name": "Alice"}
  - slot{"name": "Alice"}
  - utter_ask_location
* inform{"location": "New York"}
  - slot{"location": "New York"}
  - utter_thanks

## story2
* greet
  - utter_greet
* deny
  - utter_goodbye

In diesem speziellen Fall geht es um die Definition zweier Geschichten. Die erste Geschichte beginnt damit, dass der Benutzer den Chatbot begrüßt, der dann die Begrüßung zurückgibt und nach dem Namen des Benutzers fragt. Benutzer geben ihren Namen an und der Chatbot fragt dann nach ihrem Standort. Schließlich gibt der Benutzer seinen Standort an und der Chatbot dankt ihm.

Die zweite Geschichte beginnt damit, dass der Benutzer den Chatbot begrüßt. Der Benutzer bestreitet, Hilfe zu benötigen und der Chatbot antwortet mit einer Abschiedsnachricht.

Regeldateien definieren Bedingungen, die bestimmte Aktionen auslösen. Hier ist eine Beispielregeldatei:

## rule1
# greet and ask for name
rule "greet and ask for name"
when
  # the user greets the chatbot
  intent: greet

then
  # ask the user for their name
  - utter_ask_name
end

In diesem Beispiel haben wir eine Regel definiert, die die Aktion „utter_ask_name“ auslöst, wenn ein Benutzer den Chatbot begrüßt.

Chatbots trainieren und testen

Sobald Sie Ihre Domain definiert und Trainingsdaten bereitgestellt haben, können Sie den Rasa-Trainingsbefehl verwenden, um Ihren Chatbot zu trainieren.

rasa train

Dieser Befehl trainiert ein maschinelles Lernmodell basierend auf Ihren Trainingsdaten und speichert es im Modellverzeichnis.

Um Ihren Chatbot zu testen, können Sie den Rasa-Shell-Befehl verwenden. Dieser Befehl startet eine Shell, die es Ihnen ermöglicht, per Texteingabe mit dem Chatbot zu interagieren.

rasa shell

Dieser Befehl startet die Rasa-Shell und Sie können mit Ihrem Chatbot interagieren. Sie können beispielsweise „Hallo“ eingeben, um eine Konversation mit Ihrem Chatbot zu beginnen.

Your input -> hello
Hello, how can I help you today?

结论

总之,Python和Rasa提供了出色的工具,用于创建能够有效理解和回应人类语言和互动的聊天机器人。通过定义聊天机器人的领域、意图、实体和动作,开发人员可以训练他们的聊天机器人以自然而高效的方式与用户进行互动。Rasa的先进的自然语言处理能力简化了开发能够提供出色客户体验的聊天机器人的过程。Python和Rasa为构建能够改善沟通和流程的聊天机器人提供了一个有用和直观的框架,无论是用于客户服务还是特定的业务领域。通过它们用户友好的界面和丰富的功能,Python和Rasa提供了一个可靠和高效的平台,用于构建激励用户和支持业务增长的聊天机器人。

Das obige ist der detaillierte Inhalt vonChatbot mit Python und Rasa. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen