wiki.ziemers.de

ziemer's informatik Wiki

Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:software:beuthbot:rasa

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
wiki:software:beuthbot:rasa [13.12.2019 11:10]
Christopher Lehmann
wiki:software:beuthbot:rasa [24.01.2020 15:18] (aktuell)
Abirathan Yogarajah
Zeile 4: Zeile 4:
  
 ==== Table Of Content ==== ==== Table Of Content ====
 +
  
  - [[wiki:software:beuthbot:rasa#rasa nlu|Rasa NLU]]  - [[wiki:software:beuthbot:rasa#rasa nlu|Rasa NLU]]
  - [[wiki:software:beuthbot:rasa#table of Content|Table Of Content]]  - [[wiki:software:beuthbot:rasa#table of Content|Table Of Content]]
- - [[wiki:software:beuthbot:rasa#understanding rasa nlu|Understanding Rasa NLU]] 
  - [[wiki:software:beuthbot:rasa#getting started|Getting Started]]  - [[wiki:software:beuthbot:rasa#getting started|Getting Started]]
- - [[wiki:software:beuthbot:rasa#prerequisites|Prerequisites]] + - [[wiki:software:beuthbot:rasa#perform rasa locally|Perform Rasa locally]] 
- - [[wiki:software:beuthbot:rasa#installing|Installing]] + - [[wiki:software:beuthbot:rasa#use of docker|Use of Docker]]
- - [[wiki:software:beuthbot:rasa#overview|Overview]]+
  - [[wiki:software:beuthbot:rasa#http-api|HTTP-API]]  - [[wiki:software:beuthbot:rasa#http-api|HTTP-API]]
  - [[wiki:software:beuthbot:rasa#further development|Further Development]]  - [[wiki:software:beuthbot:rasa#further development|Further Development]]
Zeile 19: Zeile 18:
  - [[wiki:software:beuthbot:rasa#references|References]]  - [[wiki:software:beuthbot:rasa#references|References]]
  
-==== Understanding Rasa-NLU ====+ 
 + 
 +==== Getting Started ==== 
 + 
 +The following instructions are intended to help the user run the Rasa-NLU-component on the local machine for development. 
 + 
 + 
 +=== Understanding Rasa-NLU ===
  
 Rasa NLU allows the processing of natural language to classify user intentions and extract entities from text. Rasa NLU allows the processing of natural language to classify user intentions and extract entities from text.
Zeile 25: Zeile 31:
 e.g.\\ e.g.\\
 \\ \\
-''"Wie ist das Wetter morgen?"'' \\ +''"Wie ist das Wetter übermorgen?"'' \\ 
 \\ \\
-The user intention is then determined from the text.\\+The user intention is then determined from the text. In the figure below, the response to the message is displayed. The user intention ("Wetter") and the date for tomorrow are illustrated.\\
  
 <code javascript> <code javascript>
-"intent":+
-   "name": "Wetter", +    "intent":
-   "confidence": 0.9989299178+        "name": "wetter", 
 +        "confidence": 0.9518181086 
 +    }, 
 +    "entities":
 +        { 
 +            "start": 19, 
 +            "end": 29, 
 +            "text": "übermorgen", 
 +            "value": "2020-01-20T00:00:00.000+01:00", 
 +            "confidence": 1.0, 
 +            ... 
 +        } 
 +    ] 
 +    ...
 } }
 </code> </code>
-Training data is needed so that Rasa can identify the intention of a text. Training data can be created in the form of Markdown or JSON. You can define this data in a single file or in multiple files in a directory. +Training data is needed so that Rasa can identify the intention of a text. For this purpose, training data can be created in the form of Markdown or JSON. You can define this data in a single file or in multiple files in a directory. 
  
 To create a trained model for Rasa from the Markdown or JSON, Rasa offers a REST API. An alternative to creating trained models is to install Rasa on your local machine and then create the model using the command "rasa train nlu". Rasa creates the training model (tar.gz) from the Markdown or JSON. To create a trained model for Rasa from the Markdown or JSON, Rasa offers a REST API. An alternative to creating trained models is to install Rasa on your local machine and then create the model using the command "rasa train nlu". Rasa creates the training model (tar.gz) from the Markdown or JSON.
  
-Furthermore Rasa NLU is configurable and is defined by pipelines. These pipelines define how the models are generated with the training data and which entities are extracted. For this, a preconfigured pipeline with "spaCy" is used. spaCy works in this case with pre-trained language models.+Furthermore Rasa NLU is configurable and is defined by pipelines. These pipelines define how the models are generated with the training data and which entities are extracted. For this, a preconfigured pipeline with "supervised_embeddings" is used. "supervised_embeddings" allows to tokenize any languages.
  
-==== Getting Started ==== 
  
-The following instructions are intended to help the user run the Rasa-NLU-component on the local machine for development.+==== Perform Rasa locally ==== 
 + 
 +You need the local installation of Rasa to create and test training models. For this, you use the directory "training"
 + 
 + 
 +=== Basic requirements === 
 + 
 +The following installations must be made:\\ 
 +- Pip \\ 
 +- Python (Version 3.6.8)\\ 
 +- Tensorflow\\ 
 +- Making further installations ([[https://rasa.com/docs/rasa/user-guide/installation/|Rasa Installation]]) \\ 
 +- If necessary, further installation via pip (depending on the message of the compiler) \\ 
 + 
 + 
 +=== Project structure === 
 + 
 +The following files and directories are important for the project to configure Rasa, customize training data and create appropriate training models. 
 + 
 +- config.yaml: \\ 
 +contains the configuration of the NLU e.g. specification of the pipeline (how the trained model is generated) \\ 
 +- /data (directory): \\ 
 +contains training data in the form of JSON (Markdown would also be possible) \\ 
 +- /models (directory): \\ 
 +contains the trained model in the form of tar.gz.files The model is needed to capture entities and the user intent of a message. \\ 
 + 
 + 
 +=== Commands === 
 + 
 +You need to run the following commands in the directory '.training'
 + 
 +<code> 
 +# Create training-model:  
 +rasa train nlu 
 + 
 +# Communicating with Rasa NLU on the command line: 
 +rasa shell nlu –m models/name-of-the-model.tar.gz 
 +</code> 
 + 
 +Running Duckling: 
 + 
 +After using the command "rasa train nlu" a model is generated. When communicating with Rasa via the shell ("rasa shell nlu ...") the component "Duckling" is not addressed. With Duckling you can identify and resolve dates. To use Duckling you can add the trained model in the path "docker\rasa-app-data\models". Then you can run Rasa and Duckling as docker-containers and query them using the Rest API. Running Rasa and Duckling as docker-containers are explained in a later section. 
 + 
 +=== How to generate training datasets === 
 + 
 +In this project we write training data in the form of JSON, because JSON offers the possibility to extract entities from a text message. For this purpose the data was generated with the tool   [[https://github.com/YuukanOO/tracy|Tracy]]. In the image below, Tracy is shown with "Öffnungszeiten". Entities are added as "slots", such as "Ort". Training data follows in the lower part of the picture. As training data, you can specify messages, which the user can send to the "chatbot". Currently the three user intentions "Mensa", "Wetter" and "Öffnungszeiten" are supported. 
 + 
 +{{:wiki:software:beuthbot:index.png_.png?400|}} 
 + 
 +=== Add new Model for Rasa-Container (Docker) === 
 + 
 +You have to add the generated model (tar.gz) under the path "rasa-app-data\models".
  
  
-=== Prerequisites ===+==== Use of Docker ====
  
 You will need to install Docker in order to use the Docker-Compose-file for running the application. You will need to install Docker in order to use the Docker-Compose-file for running the application.
Zeile 54: Zeile 123:
 === Installing === === Installing ===
  
-After the repository has been cloned and the prerequisites have been fulfilled, you can run the Docker-Compose-file.+After the repository has been cloned and the prerequisites have been fulfilled, you can run the Docker-Compose-file. The docker commands must be executed in the 'docker'-directory. 
 + 
 +:!: FIXME FIXME FIXME
  
 <code> <code>
-# build and start Rasa-NLU-Container && serve at localhost:5005+# build and start Containers && serve at localhost:5005 (rasa) and at localhost:8000 (duckling)
 docker-compose up docker-compose up
  
-# stop and remove rasa-container, volumes, images and networks+# stop and remove rasa-containers, volumes, images and networks
 docker-compose down docker-compose down
  
Zeile 74: Zeile 145:
 </code> </code>
  
-==== Overview ====+=== Overview ===
  
-As part of the chatbot-project, microservices are supposed to run in Docker-Containers. In order to start several different services in containers at the same time, a Docker-Compose-File should be created. A Docker-Image is used for the Rasa NLU.+As part of the chatbot-project, microservices are supposed to run in Docker-Containers. In order to start several different services in containers at the same time, a Docker-Compose-File should be created. A Docker-Image is used for the Rasa NLU. Duckling has also been added as an Docker-Image for capturing date entries and allows to parse dates in a structured text.
  
-<code xml>+<code>
 version: '3.0' version: '3.0'
 services: services:
   rasa:   rasa:
-    image: rasa/rasa:1.5.2-spacy-de+    image: rasa/rasa:1.6.0-spacy-de
     ports:     ports:
       - 5005:5005       - 5005:5005
     volumes:     volumes:
-      - ./rasa-app:/app+      - ./rasa-app-data:/app
     command:     command:
       - run       - run
Zeile 92: Zeile 163:
       - --cors       - --cors
       - "*"       - "*"
 +  duckling:
 +    image: rasa/duckling:0.1.6.2
 +    ports:
 +      - 8000:8000
 </code> </code>
  
Zeile 133: Zeile 208:
 - https://www.artificial-solutions.com/wp-content/uploads/chatbots-ebook-deutsche.pdf (Retrieved 12.12.2019)\\ - https://www.artificial-solutions.com/wp-content/uploads/chatbots-ebook-deutsche.pdf (Retrieved 12.12.2019)\\
 - https://docs.docker.com/ (Retrieved 12.12.2019) - https://docs.docker.com/ (Retrieved 12.12.2019)
 +<WRAP pagebreak></WRAP>
wiki/software/beuthbot/rasa.1576231836.txt.gz · Zuletzt geändert: 13.12.2019 11:10 von Christopher Lehmann