wiki.ziemers.de

ziemer's informatik Wiki

Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:software:beuthbot:deconcentrator-js

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:deconcentrator-js [22.07.2020 18:49]
Lukas Danckwerth
wiki:software:beuthbot:deconcentrator-js [22.07.2020 19:20] (aktuell)
Lukas Danckwerth [Requirements Analysis]
Zeile 1: Zeile 1:
 ===== Deconcentrator-JS ===== ===== Deconcentrator-JS =====
  
-[[http://php.net|{{https://raw.githubusercontent.com/beuthbot/deconcentrator-js/master/.documentation/DeconcentratorJSLogo100.png}}]]+[[https://raw.githubusercontent.com/beuthbot/deconcentrator-js|{{https://raw.githubusercontent.com/beuthbot/deconcentrator-js/master/.documentation/DeconcentratorJSLogo100.png}}]]
  
 > BeuthBot deconcentrator written in JavaScript > BeuthBot deconcentrator written in JavaScript
Zeile 13: Zeile 13:
 == Prerequisites == == Prerequisites ==
  
-* [node.js](https://nodejs.org/en/(Development) +  * [[https://nodejs.org/en/|node.js]] (Development) 
-* [Docker](https://www.docker.com(Development, Deployment) +  * [[https://www.docker.com|Docker]] (Development, Deployment) 
-* [docker-compose](https://docs.docker.com/compose/(Development, Deployment)+  * [[https://docs.docker.com/compose/|docker-compose]] (Development, Deployment)
  
 == Clone Repository == == Clone Repository ==
  
-```shell script+<code>
 # clone project # clone project
 $ git clone https://github.com/beuthbot/deconcentrator-js.git $ git clone https://github.com/beuthbot/deconcentrator-js.git
Zeile 28: Zeile 28:
 # copy environment file and edit properly # copy environment file and edit properly
 $ cp .env.sample .env $ cp .env.sample .env
-```+</code>
  
 == Install == == Install ==
Zeile 34: Zeile 34:
 There are two different ways running the deconcentrator. First is with `Node.js`'s package manager (`npm`) which is probably the better idea for developing. The other way is to run the deconcentrator-js in a Docker container with `docker-compose`. There are two different ways running the deconcentrator. First is with `Node.js`'s package manager (`npm`) which is probably the better idea for developing. The other way is to run the deconcentrator-js in a Docker container with `docker-compose`.
  
-= Install with npm =+== Install with npm ==
 Using npm you simply type in the following command. Using npm you simply type in the following command.
-```shell script+<code>
 # install dependencies # install dependencies
 $ npm install $ npm install
Zeile 42: Zeile 42:
 # start running the deconcentrator at localhost:8338 # start running the deconcentrator at localhost:8338
 $ npm start run $ npm start run
-```+</code> 
 This will run the deconcentrator on it's default port `8338` and with the default RASA service url `http://localhost:5005/model/parse`. This will run the deconcentrator on it's default port `8338` and with the default RASA service url `http://localhost:5005/model/parse`.
  
-= Install with docker-compose.yml =+== Install with docker-compose.yml ==
  
 Using docker-compose is prossibly the easiest way of running the deconcentrator. Simply type Using docker-compose is prossibly the easiest way of running the deconcentrator. Simply type
-```shell script+<code>
 $ docker-compose up $ docker-compose up
-```+</code>
 to run a container with the deconcentrator. The docker-compose file also uses port `8338` as a default one. The endpoint of RASA is taken from the `.env`. Make sure to edit it to your needs. Have a look at the sample file `.env.sample` and the section [.env](#.env). to run a container with the deconcentrator. The docker-compose file also uses port `8338` as a default one. The endpoint of RASA is taken from the `.env`. Make sure to edit it to your needs. Have a look at the sample file `.env.sample` and the section [.env](#.env).
  
 ==== Overview ==== ==== Overview ====
  
-### Structure+=== Structure ===
  
-Location             About                                                 +Location             About                                                 ^
-| -------------------- | ----------------------------------------------------- |+
 | `.documentation/   | Contains documentation, UML and icon files.           | | `.documentation/   | Contains documentation, UML and icon files.           |
 | `model/            | Contains the processors and the `processor-queue.js`. | | `model/            | Contains the processors and the `processor-queue.js`. |
Zeile 71: Zeile 71:
  
  
-### Functionality+=== Functionality === 
 + 
 + 
 +<uml> 
 +@startuml 
 + 
 +participant "gateway" as GW 
 + 
 +box "deconcentrator-js" #LightBlue 
 +participant "deconcentrator.js" as DC 
 +participant "processor-queue.js" as PQ 
 +participant "rasa-processor.js" as RP 
 +participant "PROC_1.js" as P1 
 +participant "PROC_2.js" as P2 
 +end box 
 + 
 +GW -> DC: request\nwith message 
 +activate DC 
 +DC -> DC: create and fill queue 
 +DC -> PQ: run 
 +activate PQ 
 +PQ -> RP: (async) request 
 +activate RP 
 +PQ -> P1: (async) request 
 +activate P1 
 +RP -> PQ: interpretation 
 +deactivate RP 
 +PQ -> P2: (async) request 
 +activate P2 
 +P1 -> PQ: interpretation 
 +deactivate P1 
 +P2 -> PQ: interpretation 
 +deactivate P2 
 +PQ -> DC: all\ninterpretations 
 +deactivate PQ 
 +DC -> DC: filter out\nbest intent 
 +DC -> GW: response\nwith intent 
 +deactivate DC 
 + 
 +@enduml 
 +</uml>
  
-![function](http://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/beuthbot/deconcentrator-js/master/.documentation/uml/function.txt) 
  
 == deconcentrator.js == == deconcentrator.js ==
Zeile 88: Zeile 127:
  
 == Implemented Processors == == Implemented Processors ==
-* [rasa-processor.js](model/rasa-processor.js)+  * [[https://raw.githubusercontent.com/beuthbot/deconcentrator-js/master/model/rasa-processor.js|rasa-processor.js]] 
 +  * ...
  
-* ... +=== Add new NLU processor ===
- +
-   +
- +
-### Add new NLU processor+
  
 == Setp 1: == == Setp 1: ==
Zeile 114: Zeile 150:
 The following lists the resources that can be requested with the deconcentrator API. The following lists the resources that can be requested with the deconcentrator API.
  
-```http+<code>
 GET   http://localhost:8338 GET   http://localhost:8338
-```+</code>
  
 Returns a live sign of the deconcentrator. Returns a live sign of the deconcentrator.
  
-```http+<code>
 POST  http://localhost:8338/messages POST  http://localhost:8338/messages
-```+</code>
  
-### Request Schema - `Message`+=== Request Schema - `Message` ===
  
-```json+<code>
 { {
   "text": "Wie wird das Wetter morgen?",   "text": "Wie wird das Wetter morgen?",
Zeile 132: Zeile 168:
   "processors": ["rasa"]   "processors": ["rasa"]
 } }
-```+</code>
  
 Whereas the specification of the `min_confidence_score` and the`processors` is optional. If not minimum confidence score is given a default one is used (by now this is `0.8`). For now there is only the usage of RASA implemented so there is no effect of specifying the `processors` property. Whereas the specification of the `min_confidence_score` and the`processors` is optional. If not minimum confidence score is given a default one is used (by now this is `0.8`). For now there is only the usage of RASA implemented so there is no effect of specifying the `processors` property.
Zeile 138: Zeile 174:
 == Class Diagramm == == Class Diagramm ==
  
-![alternative text](http://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/beuthbot/deconcentrator-js/master/.documentation/uml/message.txt)+<uml
 +@startuml
  
-### Response Schema - `Answer`+class Message { 
 +  text: String 
 +  min_confidence_score: Float 
 +  processors: Array<String> 
 +
 + 
 +@enduml 
 +</uml> 
 + 
 +=== Response Schema - `Answer` ===
 The response for a successfully processed request to the deconcentrator contains the following information. The response for a successfully processed request to the deconcentrator contains the following information.
-```json+<code>
 { {
   "intent": {   "intent": {
Zeile 172: Zeile 218:
   "text": "Wie wird das Wetter morgen?"   "text": "Wie wird das Wetter morgen?"
 } }
-```+</code>
  
 The response for a unsuccessfully processed request to the deconcentrator or when an error occures contains the following information. The response for a unsuccessfully processed request to the deconcentrator or when an error occures contains the following information.
-```json+<code>
 { {
   "error": "The given message can't be interpretated.",   "error": "The given message can't be interpretated.",
   "text": "Wie wird das Wetter morgen?"   "text": "Wie wird das Wetter morgen?"
 } }
-```+</code>
  
 == Class Diagramm == == Class Diagramm ==
  
-![alternative text](http://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/beuthbot/deconcentrator-js/master/.documentation/uml/answer.txt)+<uml> 
 +@startuml 
 + 
 +class Answer { 
 +  text: String 
 +  intentIntent 
 +  entities: Array<Entity> 
 +  error: String 
 +
 + 
 +class Intent { 
 +  name: String 
 +  confidence: Float 
 +
 + 
 +class Entity { 
 +  start: Int 
 +  end: Int 
 +  text: String 
 +  value: String 
 +  confidence: Float 
 +  additional_info: AdditionalInfo 
 +  entity: String 
 +
 + 
 +class AdditionalInfo { 
 +  value: String 
 +  grain: String 
 +  type: String 
 +  values: Dictionary<String, Any> 
 +
 + 
 +Answer *--- Intent 
 +Answer *--- Entity 
 +Entity *--AdditionalInfo 
 + 
 +@enduml 
 +</uml>
  
 ==== Implemented and connected NLU processors ==== ==== Implemented and connected NLU processors ====
  
-Provider |BeuthBot Project Processor File +Provider ^BeuthBot Project Processor File ^ 
-| -------- |---------------- | -------------- | +| [[https://rasa.com/docs/rasa|RASA]] | [[https://github.com/beuthbot/rasa|rasa]] | [[https://github.com/beuthbot/deconcentrator-js/blob/master/model/rasa-processor.js|rasa-processor.js]] |
-| [RASA](https://rasa.com/docs/rasa/) [rasa](https://github.com/beuthbot/rasa[rasa-processor.js](https://github.com/beuthbot/deconcentrator-js/blob/master/model/rasa-processor.js|+
  
-### More NLU processors candidates+=== More NLU processors candidates ===
  
-[Microsoft LUIS](https://azure.microsoft.com/de-de/services/cognitive-services/language-understanding-intelligent-service/) +  * [[https://azure.microsoft.com/de-de/services/cognitive-services/language-understanding-intelligent-service/|Microsoft LUIS]] 
-[Google Cloud NLU](https://cloud.google.com/natural-language/+  * [[https://cloud.google.com/natural-language/|Google Cloud NLU]
-- [IBM Watson NLU](https://www.ibm.com/watson/services/natural-language-understanding/)+  * [[https://www.ibm.com/watson/services/natural-language-understanding/|IBM Watson NLU]]
  
 ==== .env ==== ==== .env ====
Zeile 202: Zeile 284:
 With the `.env` file the deconcentrator can be configured. The following demonstrates a sample file. The same content can be found in the`.env.sample` file of the project. With the `.env` file the deconcentrator can be configured. The following demonstrates a sample file. The same content can be found in the`.env.sample` file of the project.
  
-```dotenv+<code>
 RASA_ENDPOINT=http://0.0.0.0:5005/model/parse RASA_ENDPOINT=http://0.0.0.0:5005/model/parse
  
 # Optional # Optional
 MIN_CONFIDENCE_SCORE=0.85 MIN_CONFIDENCE_SCORE=0.85
-```+</code>
  
  
Zeile 213: Zeile 295:
 ==== Requirements Analysis ==== ==== Requirements Analysis ====
  
-* [x] `/DCF100/The deconcentrator responds to incoming POST requests by delegating the message to a collection of NLU processor which try to interpretate the given message +  * [x] ''/DCF100/'' The deconcentrator responds to incoming POST requests by delegating the message to a collection of NLU processor which try to interpretate the given message 
-* [x] `/DCF101/The deconcentrator accepts incoming messages as defined via the Request Schema +  * [x] ''/DCF101/'' The deconcentrator accepts incoming messages as defined via the Request Schema 
-* [x] `/DCF102/The deconcentrator sends answers as defined via the Response Schema +  * [x] ''/DCF102/'' The deconcentrator sends answers as defined via the Response Schema 
-* [x] `/DCF103/The deconcentrator answers with proper messages for occuring errors +  * [x] ''/DCF103/'' The deconcentrator answers with proper messages for occuring errors 
-* [x] `/DCF104/New NLU processors muss be easy to integrate +  * [x] ''/DCF104/'' New NLU processors muss be easy to integrate 
-* [x] `/DCF105/The deconcentrator has a default value for the minimum confidence score +  * [x] ''/DCF105/'' The deconcentrator has a default value for the minimum confidence score 
-* [x] `/DCF106/The deconcentrator has a default value for the list of processors +  * [x] ''/DCF106/'' The deconcentrator has a default value for the list of processors 
-* [x] `/DCF107/The minimum confidence score can be set globally within the Dockerfile +  * [x] ''/DCF107/'' The minimum confidence score can be set globally within the Dockerfile 
-* [ ] `/DCF108/The list of processors to be used can be set globally within the Dockerfile+  * [ ] ''/DCF108/'' The list of processors to be used can be set globally within the Dockerfile
  
  
wiki/software/beuthbot/deconcentrator-js.1595436567.txt.gz · Zuletzt geändert: 22.07.2020 18:49 von Lukas Danckwerth