Components
Please read the monitoring section if you are looking for information regarding the criticality of each component.
SentiOne Automate
Application
Application name (pod) | Description (purpose) | Main Tech-Stack |
---|---|---|
admin | Web interface offering bot administration utilities. It's being used to manage phrases, dialogue flow, integrations, NLU & Training set management. API interface for knowledge base. | React, Play, Scala, sbt, JVM |
gateway | Exposes REST API used to communicate with bot services. | React, Play, Scala, sbt, JVM |
sso | Application offering Single Sign-on integration. It makes a use of cookies injected by Windows OS & Browser. Based on that cookie it's able to authenticate user within Active Directory (Kerberos protocol, negotiation mechanism called SPNEGO). After successful authentication it integrates with new-web and admin applications using OAuth2 protocol. Roles & Permissions mechanism can be managed with use of new-web and admin applications. | React, Play, Scala, sbt, JVM |
analytics | It exposes analytical services to admin application. | React, Play, Scala, sbt, JVM |
dialogs | Processes flow of Dialogue and stores conversation sessions (It deals with parsing dialogue blocks and connections between them) | React, Play, Scala, sbt, JVM |
web-chat | Reference webpage for demonstrating web-chat implementation. It can serve webchat window that can be embedded as an iframe on customer's webpage. | React, Play, Scala, sbt, JVM |
cron-orchestrator | It coordinates execution of so-called 'Cron Jobs'. Responsible for collecting job execution history as well. | Play, Scala, sbt, JVM |
twitter-bot | Application responsible for integrating with Twitter and redirecting Twitter messages to appropriate Bot. | Play, Scala, sbt, JVM |
ms-teams-bot | Application responsible for integrating with Microsoft Teams and redirecting MS Teams messages to appropriate Bot. | Play, Scala, sbt, JVM |
channels-connector | Bridge between different channels (e.g. Facebook or WhatsApp) and SentiOne Automate. | Play, Scala, sbt, JVM |
thread-coordinator | Manager of bot conversation threads owners. | Play, Scala, sbt, JVM |
NLU
Application name (pod) | Description (purpose) | Main Tech-Stack |
---|---|---|
name-service | Surname declension service (used for generating surnames of the authors) | Python, PIP |
duckling | System entities service (recognising dates, common names, phone numbers) | Clojure, JVM |
senti-duck | Wrapper for duckling service which also adds some additional postprocessing. | Python, PIP |
inferrer | NLU Hypothesis gathering service | Python, PIP |
keywords | Keyword entities management service | Python, PIP |
nlu-facade | Facade for NLU Services | React, Play, Scala, sbt, JVM |
nlu-pipeline | Services connector in form of sequential processing (pipeline) | React, Play, Scala, sbt, JVM |
intentizer-multi | Intent detection service | TensorFlow, Python, PIP |
ner-pl | Named Entity detection | TensorFlow, Python, PIP |
tagger-pl | Identyfing part of speech within text. | Python, PIP |
pcre | Regular expressions service | Python, PIP |
pattern | Pattern detection service, empowering our own technology for pattern-detection. | Python, PIP |
Voice
Application name | Description (purpose) | Main Tech-Stack |
---|---|---|
charon | Charon is a software client for SIP telephone services. It can be a SIP server client as an internal account (extension) as well as terminate sip-trunk with the propagation of telephone numbers inside it - it does not require any additional services to implement such configuration | Java, Akka |
dialog-sentione | A service exchanging data with Automate - via the gateway component. Communication is carried out via REST API. The entire system logic is implemented by Automate - VoiceGateway receives information based on what content to generate speech synthesis and returns, in the same way, recognition collected using ASR speech recognition services. | Java, Akka |
pytia | Client of ASR speech recognition services. It has a set of appropriate connectors for specific external services to which the audio stream should be transmitted and text recognition should be received in return. Service configuration description (application.conf file) | Java, Akka |
crocotta | Text-to-speech client. It enables data exchange with the TTS service by sending text values to it and receiving the generated audio stream. Access to the TTS website is provided using MRCP technology. | Java, Akka |
gall | A service that records telephone calls in the form of audio files. These files are saved on a shared disk share, which must be configured mapped to a directory available to the website. | Java, Akka |
SentiOne Listen & React
Application name (pod) | Purpose | Main Tech-Stack |
---|---|---|
new-web | Web interface used for bot administration. It can be used to browse conversation transcriptions with the ability to play back the original audio conversation. It also allows Human take over of the conversation initially conducted by Bot (if it was in the scope of the project) | React, Play, Scala, sbt, JVM |
analyser | Backend service for new-web. It's responsible for data-analysis, aggregation and dashboards. | Scala, sbt, JVM |
redis | Key-Value database kept in memory used for monitoring API usage by new-web / analyser. It's also used for event-passing for monitored threads (communication between new-web and slim-uploader), distributed operation synchronisation, websocket synchronisation between new-web instances | ANSI C, Linux executable |
slim-uploader | Moves conversation history (transcription) from RabbitMQ to ElasticSearch cluster. | Akka, Scala, sbt, JVM |
refinery | Enriches conversation with semantic analysis (sentiment). | Akka, Scala, sbt, JVM |
bot-integration | Allows integrating transcriptions from another systems into SentiOne React. Main purpose is to save transcriptions from SentiOne Automate. | Play, Scala, sbt, JVM |
Databases
Name | Purpose | Main Tech-Stack |
---|---|---|
ElasticSearch cluster | Database used for storing transcriptions | Lucene, Java, JVM |
RabbitMQ cluster | Message-passing system used for asynchronous communication. | Erlang |
Redis | Storage of trained NLU models and temporal data (cache) | C |
PostgreSQL database | General-purpose database, configured and provided by customer or used internally inside k8s cluster | C |
Updated 8 months ago