wiki.ziemers.de

ziemer's informatik Wiki

Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:software:beuthbot:database-microservice

Dies ist eine alte Version des Dokuments!


Database Microservice

Inhaltsangabe

Motivation

Um die Datenbank unabhängig von den anderen Microservices zu machen, mussten die Datenbank Operationen ausgelagert werden. Das führte dazu, dass die Intents von Rasa aufgelöst werden mussten, damit die richtigen Datenbank Operationen ausgeführt werden können.

Technologien

Aufgebaut wurde dieser Microservice als REST-Server mit JavaScript. Die verwendeten Technologien dafür sind:

Funktionsweise


@startuml
participant Registy as R
participant DatabaseMicroservice as DBM
participant DatabaseController as DBC
participant MongoDB as MDB

R -> DBM: Send Intent
activate DBM

DBM -> DBC: DatabaseOperation
activate DBC

DBC -> MDB: DatabaseOperation
activate MDB


return Response
return Response
return Response
@enduml

Da dieser Microservice nur eine Route besitzt, über welche der Intent gesendet wird, muss der Microservice dazu in der Lage sein, diesen Intent aufzulösen, sodass die richtige Datenbank-Operation ausgeführt wird. Der Intent kommt ursprünglich von Rasa.

{
   "user": {
      "id": 12345,
      "telegram-id": 12345,
      "nickname": "Al",
      "details": {
         "home": "Bonn",
         "birthday": "23.06.1912",
         ...
      }
   },
   "intent":{
      "name":"database-set",
      "confidence":0.9998944998
   },
   "entities":[
      ...,
      {
         "start":26,
         "end":36,
         "value":"krebstiere",
         "entity":"allergen",
         "confidence":0.9999893608,
         "extractor":"CRFEntityExtractor"
      },
      {
         "start":37,
         "end":51,
         "value":"alergisch bin.",
         "entity":"detail-allergic",
         "confidence":0,
         "extractor":"CRFEntityExtractor"
      },
      ...
   ],
   "text":"Merke dir, dass ich gegen Krebstiere alergisch bin.",
   ...
}
wiki/software/beuthbot/database-microservice.1595436729.txt.gz · Zuletzt geändert: 22.07.2020 18:52 von Tobias Belkner