Intro to Active.AI Platform
Active.AI conversational platform provides an AI-based customer engagement system that can cover all channels, be it messenger or voice, be it a direct customer channel or an assisted one and can power the bank to provide the deep engagement expected in this digital era. Active.AI's enterprise-grade platform can bring to live, a seamless, uniform and consistent experience across channels at different points of time. The customer-centric journey we are talking about is all around situations, sentiments, and emotions and every time it has to be contextual. A siloed approach of a chatbot here and a voice channel there can only provide a fragmented experience. An end to end AI platform for your conversational channels or virtual assistant (VA) can take the engagement several levels deeper through:
- Powerful natural language understanding (NLU) for the customer speak – starting from simple micro conversations to long, multi-level, complex instructions
- Continuous machine learning (ML) from conversations, reply appropriately and help out in different possible ways based on all the data and analytics collated from various sources. ML can engage the customers throughout the interaction with the next best step for that point of time and can provide one or more options for the particular context.
- Direct and assisted channels and beyond the bank's own channels – VAs on website, internet portal, mobile and social channels (Whatsapp, FB Messenger, Line, Telegram, Skype and so on), voice (Alexa, Google Assistant and so on), call centers and so on.
- An extremely simplified, deep learning-based Cognitive Q&A module that can get you started in days with all your FAQs across channels
- Experience design and conversation flows with business rules and configurations for all the channels through a single admin portal
- The workflow editor and orchestration capabilities help you integrate with your back-end systems like core banking, loans, credit card, CRM and all other back-end systems
- Out of the box use cases for various financial services domains like retail banking, business banking, insurance, capital markets and several more in the pipeline.
A platform approach for conversational channels for your customers can provide hyper-personalization, deeper engagement, and consistent and uniform experience through direct and assisted channels and even beyond the banks' own channels. Irrespective of channels, the Active.AI platform understands conversations, learn from conversations, replies appropriately and helps out in different possible ways based on all the data and analytics collated from various sources that already exist in the banks.
Triniti
Triniti is Active.AI's patent-pending proprietary conversational AI engine that has purpose-built models for understanding natural conversations, cognitive Q&A, Machine Comprehension and Predictive Services. In this document, we introduce the conversational engine and cognitive Q&A.
The powerful conversational AI engine caters to
- preprocessing of data - spelling corrections, conversion of temporal entities like yesterday, last week, last month, etc to exact dates, acronyms and so on
- Context-awareness that helps keep the context in long conversations and also detect context changes
- Extremely comprehensive intent classification and entity extraction modules that is able to handle complex banking and financial services transactions and can be extended to other verticals as well
- Language understanding for fine-grain understanding and sentiment detection
The cognitive Q&A module caters to
- Variant generation of possible questions even though one or maybe a few variants are actually provided by the enterprise
- Detection of key phrases that are specific to the domain and is already trained with such key phrases for banking and financial services
- Also comes up with suggestions of related queries based on the original utterance of the end-user.
Detailed capabilities and how to set them up are explained in the further sections of this document. A high-level component set are shown below.
Morfeus
The conversational middleware is the backbone of the platform that
- helps integrate all the engagement channels in the front
- orchestrate transactions in the backend core processors of the enterprise
- provides all the security, authentication and audit capabilities
- put together the business rules and conversational flows for the use cases
- design the whole customer experience in all the channels
- Access to the admin portal for configuration of all the components of the platform including Triniti management and data training
- Provides all the reports and analytics on the usage of the system including complete audit trail
- Has the end to end development tool kit for all the use cases starting from the intent definition to workflow editor for managing the conversational flows to responses through the template editor and all the integration APIs.
Neyo
The business applications layer of the Active.AI platform caters to all the out of the box supported vertical use cases. Currently, this covers various financial services verticals like banking, NBFCs, Securities and Insurance. Within banking use cases of various lines of businesses like retail banking and corporate banking are available out of the box. The supported use cases like balance inquiry, funds transfer, bill payments, card blocking, and credit card repayments, various service requests and many more such user journeys and configuring them are detailed in the appropriate sections of this document.
Supported Configurations
The platform currently supports & is certified with the following software and OS configurations:
Desc | |
---|---|
OS | Linux (RHEL 7.x, CentOS 7 and 8, Amazon Linux) |
Containers | Docker 18.09 |
JDK | 17 |
Web Servers | Apache HTTP Server 2.4.x, Oracle HTTP Server, NGINX |
App Servers | Tomcat 9.0.65, JBoss EAP 7.4 |
DB Servers | MySQL 8.0.28, MariaDB 10.x+, Oracle 19c |
ElasticSearch | v7.17.2 |
Neo4j | v4.4.5 |
Redis | v6.2 |
Pre-requisites
Morfeus platform requires few pre-requisite software to run. Here are the dependent software units -
- Database - Refer to the supported database in the supported configuration section.
- Redis - Redis is needed to handle many aspects of Morfeus platform.
- ElasticSearch v7.17.2 - ElasticSearch acts as a data store of our logs and servers Morfeus audit system.
- Neo4j - Neo4J, a graph DB is used to serve our knowledge graph
Each of these software's can be run via dockers as well as can be installed in non-docker mode. Please refer to relevant sections for more details.
Dockerized Install
Morfeus platform requires below pre-requisites to be installed.
- Install docker
Please refer to instructions listed here to install docker in your respective enviornment
Alternatively, you can also follow the below steps in MacOS or Linux. You can use yum or homebrew to install docker.
# Using yum
yum update
yum install -y docker
service docker start
# Using homebrew
brew update
brew install docker
service docker start
- Install MySQL 8.0.28
docker run -dit --name=mysql -p 33.7:33.7 --env="MYSQL_ROOT_PASSWORD=password" mysql:8.0.28
Once the mysql installation is over, please create an empty database.
docker exec -t bash <mysql container id>
mysql -u<username> -p
mysql > CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';
mysql > create database morfeus_db;
mysql > GRANT ALL PRIVILEGES ON morfeus_db.* TO 'newuser'@'%';
- Install Redis 6.2
docker run -dit --name redis -p 6379:6379 redis
- Install ElasticSearch v7.17.2
docker run --name elasticsearch -dit -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch
/elasticsearch-oss:7.17.2
- Install Neo4j 4.4.5
Please install neo4j from here
docker run \
--publish=7474:7474 --publish=7687:7687 \
--volume=$HOME/neo4j/data:/data \
neo4j
Standalone Install
- Install MySQL - http://dev.mysql.com/downloads/
- Install Redis - http://redis.io/download
- Install ElasticSearch - https://www.elastic.co/guide/en/elasticsearch/reference/7.17/index.html
- Install neo4j - https://neo4j.com/docs/operations-manual/current/installation/
Quick Installation
Dockers
A quick install guide to Morfeus platform. This steps uses docker to install all required artifacts. Please refer to dockerized install page for details.
Install Morfeus
Morfeus docker images are hosted in dockerhub repository. Please contact us for details. You can also refer to resources page for more details.
Morfeus docker requires following enviornment properties to work properly. Please note the property names and its default values.
MYSQL_DATABASE=morfeus_db
MYSQL_HOST=localhost
MYSQL_PORT=33.7
MYSQL_USER=root
MYSQL_ROOT_PASSWORD=password
REDIS_HOST=localhost
REDIS_PORT=6379
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=password
NEO4J_URL=bolt://localhost:7687
MCAST_PORT=55599
MAX_JVM_MEM=-Xmx2560m
To run morfeus docker with the above default properties just type the below docker command to boot morfeus server.
docker run -d -p 8080:8080 activeintelligencepteltd/morfeus:2.5.1
In case you are customizing any of the property names, please use the below command to boot morfeus server
docker run -d -p 8080:8080 -e {property_name}={property value} activeintelligencepteltd/morfeus:2.5.1
Once the installation is done, follow the verification steps to ensure that system is up and running and configured correctly by following these steps
Setup on Workspaces (Hosted)
What is Workspaces?
- Workspace is a managed service instance running on tomcat,mysql. The admin module runs on a server master machine while the morfeus, triniti gets one T3 aws small or medium cloud instances. It follows a cloud-first approach.
Setup a Workspace
- Head over to workspaces.active.ai
Get the workspace credentials from the authorized person.
Log in to the portal.
- Click on "Add workspace".
- Mention the name of the workspace in the prompted window.
- Select "Banking (Retail Banking, Corporate Banking or Retail lending) / Insurance / Trading / Custom" domain.
- Click on create a workspace.
Workspace creation will load base data and default data to the workspace as following :
Git sync will done while workspace creation will load faqs,intents,entities,spellcheck,smalltalk as part of base data
- Git url : To get Base Data, click here.
- Git workspace : english_base
Base data Git sync default configuration exits in config.properties file
Path of file admin-backend-api/src/main/resources/properties/config.properties
base data contains the minmal data to start the generate and train
Default data is also loaded to workspace
Default data is loaded to provide domain specific("Banking (Retail Banking, Corporate Banking or Retail lending) / Insurance / Trading / Custom") data
As part of default data templates,messages,hooks,workspace config,bot rules and ai rules will be loaded which are configurable
Navigate to Manage Channels on the homescreen.
Enable channel Webapp under the tab App.
- Click on Manage AI on the left sidebar, and then head over to Manage Rules.
Inside the General tab, ensure that AI Engine, Context Change Detector, Entity Extractor, Primary Classifier, and Smalltalk/ FAQ Handler are set to Unified API V2.
Switch to the tab – Triniti.
Change Relative URL Context Path to -> /triniti/1v/
Set Deployment type to Cloud, and Triniti Manager URL to -> http://demo-manager.triniti.ai/v/1
Switch to Triniti Unified API V2 tab.
Change Context Path to /v2 if the workspace is Banking + FAQ. Leave the value unchanged in case of an FAQ only workspace.
If the Triniti instance is to be created newly for the workspace, no need to change the API keys present under Triniti and Unified API V2 tabs. If only a Morfeus instance is to be created while reusing an existing Triniti instance, the API key for that existing Triniti instance need to be set inside API Key and Triniti API Key fields under Triniti tab, and API Key under Unified API V2 tab, while the secret needs to be set inside API Secret under Unified API V2 tab.
Click Configure Workspace on the left sidebar.
Set Country and Language to their respective values.
Hit Save on the top right corner.
On the same page, Head over to Manage Rules on the bottom right corner.
Switch to Security tab.
Copy the value of Morfeus API Key and save it somewhere.
Instance Creation
Now that you have morfeus and triniti api keys with you, we will create a cloud instance for morfeus and triniti.
Click Deploy on the left sidebar. Head to Infrastructure.
Switch to Morfeus tab and click Add Morfeus Instance.
Select Base OS as AmazonLinux, Server Type as Tomcat, and Version as public 2.0.
Give the artifactory path to where all the collaterals (websdk and webview WARs, and all additional external JARs) are hosted.
Click Save Changes.
- Wait for 20-25 minutes till the created instance is up and running.
- Repeat the same process for creating a Triniti instance under Triniti Tab in Infrastructure. Note that the Data ID here is the unique identifier for the data generated from Manage AI. In the absence of Data ID, the instance creation will fail!
Wait for 20-25 minutes for the instance to be up and running.
Now your workspace is Up and running, you could have a sample ready to use workspace.
Download the sample workspace from here
Standalone Installation
Complimenting the containerized installation strategies, all products in Active.ai supports standalone, from the scratch installations as well. Many a times our customer needs a details non-container based installation procedure in-line with their own IT strategy. In this section we will go through in detail setup procedure of Morfeus on 4 types of application servers.
Morfeus on Tomcat
Tomcat is most common application server in enterprise java world. Morfeus runs both in development enviornments as well as production in Tomcat.
Pre Requisites
Install Tomcat from https://tomcat.apache.org site. Please check for the supported version. All other prerequisite can be installed from this link.
Tomcat Setup
* Add the following configuration in tomcat/conf/context.xml
<Resource name="jms/mqConnectionFactory"
auth="Container"
type="org.apache.activemq.ActiveMQConnectionFactory"
description="JMS Connection Factory"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
brokerURL="vm://localhost:61616?brokerConfig=xbean:file:${ACTIVEMQ-CONF-PATH}/activemq.xml"
trustAllPackages="true" />
<Resource name="jms/socialInQueue"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="SocialInQueue"/>
<Resource name="jms/socialOutQueue"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="SocialOutQueue"/>
<Resource name="jms/socialBroadcastInQueue"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="socialBroadcastInQueue"/>
<Resource name="jms/socialBroadcastOutQueue"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="socialBroadcastOutQueue"/>
<Resource name="jms/auditQueue"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="AuditQueue"/>
<Resource name="jms/transactionAuditQueue"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="TransactionAuditQueue"/>
<Resource name="jms/userProfileQueue"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="UserProfileQueue"/>
<Resource name="jdbc/MorfeusDB"
global="jdbc/MorfeusDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:33.7/{database_name}"
username="{username}"
password="{password}"
maxTotal="100"
maxIdle="20"
minIdle="5"
maxWaitMillis="10000"/>
Update the context.xml with database configuration.
Create morfeus-lib folder inside tomcat. And copy bank integration jar inside that. (Integration jar should have property file inside src/main/resources/properties/bank-api.properties)
Copy activemq.xml to the path configured in ${ACTIVEMQ-CONF-PATH}. Change dataDirectory and kahaDB directory to the location where activemq-data has to be stored.
Add morfeus.xml in tomcat/conf/Catalina/localhost
morfeus.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resources className="org.apache.catalina.webresources.StandardRoot" cachingAllowed="true" cacheMaxSize="100000">
<JarResources
className="org.apache.catalina.webresources.DirResourceSet"
base="{EXTERNAL_LIB_LOCATION}/morfeus-lib"
webAppMount="/WEB-INF/lib" />
</Resources>
</Context>
Download the latest ESAPI properties from resources and store in your local or use the ESAPI properties in ~/admin-backend-api/config/admin/ESAPI
Add the following variables to catalina.sh for tomcat
catalina.sh
JAVA_OPTS="$JAVA_OPTS -Dorg.owasp.esapi.resources={ESAPI config folder location}"
JAVA_OPTS="$JAVA_OPTS -Dadmin.config.path={Admin Config Path}"
JAVA_OPTS="$JAVA_OPTS -Dretail.banking.resources={Retail banking properties folder location}"
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses"
JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=flyway.disable,redis" (OPTIONAL: To disable flyway)
JAVA_OPTS="$JAVA_OPTS -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector"
JAVA_OPTS="$JAVA_OPTS -Dlog4j2.DiscardThreshold=INFO"
JAVA_OPTS="$JAVA_OPTS -Dlog4j2.AsyncQueueFullPolicy=Discard"
JAVA_OPTS="$JAVA_OPTS -DMORFEUS_LOG_LEVEL=DEBUG"
JAVA_OPTS="$JAVA_OPTS -DOTHER_LOGS_LEVEL=DEBUG"
JAVA_OPTS="$JAVA_OPTS -Dorg.apache.activemq.SERIALIZABLE_PACKAGES='*'"
JAVA_OPTS="$JAVA_OPTS -DredisHost=localhost"
JAVA_OPTS="$JAVA_OPTS -DredisPort=6379"
JAVA_OPTS="$JAVA_OPTS -DtranslateRedisHost=localhost"
JAVA_OPTS="$JAVA_OPTS -DtranslateRedisPort=6379"
JAVA_OPTS="$JAVA_OPTS -DtranslateRedisDatabase={Number}"
JAVA_OPTS="$JAVA_OPTS -DLOG_PATH={Morfeus log files path}"
JAVA_OPTS="$JAVA_OPTS -Djgroups.udp.mcast_port=55599"
-Djgroups.udp.mcast_port=55599 change this udp port if you are in a subnet and want J-group cluster to be distinct. it is advisable to provide a unique value for each deployment.
Download morfeus war files from resources page. Copy all war files to tomcat webapps.
Add this file private.key.p8c in the MORFEUS_PATH folder.
Ensure Redis server is running. Start Tomcat
Once all the above steps are done, move to verification steps.
Morfeus On JBoss
JBoss, is an application server authored by JBoss, now developed by Red Hat.
Pre Requisites
Install Jboss from https://developers.redhat.com/products/eap/download/ site. All other prerequisite can be installed from this link.
Jboss Setup
Goto JBOSS_HOME/standalone/configuration
open standalone-full.xml
Add below code in datasources - subsystem.
<datasource jndi-name="java:jboss/env/jdbc/MorfeusDB" pool-name="Morfeus" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://localhost:33.7/activeai</connection-url>
<driver>mysql</driver>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
<statement>
<prepared-statement-cache-size>100</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
- Add below code in messaging-activemq - subsystem.
<subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0">
<server name="default">
<security enabled="false"/>
<security-setting name="#">
<role name="guest" delete-non-durable-queue="true" create-non-durable-queue="true" consume="true" send="true"/>
</security-setting>
<address-setting name="#" message-counter-history-day-limit="10" page-size-bytes="2097152" max-size-bytes="10485760" expiry-address="jms.queue.ExpiryQueue" dead-letter-address="jms.queue.DLQ"/>
<http-connector name="http-connector" endpoint="http-acceptor" socket-binding="http"/>
<http-connector name="http-connector-throughput" endpoint="http-acceptor-throughput" socket-binding="http">
<param name="batch-delay" value="50"/>
</http-connector>
<in-vm-connector name="in-vm" server-id="0"/>
<http-acceptor name="http-acceptor" http-listener="default"/>
<http-acceptor name="http-acceptor-throughput" http-listener="default">
<param name="batch-delay" value="50"/>
<param name="direct-deliver" value="false"/>
</http-acceptor>
<in-vm-acceptor name="in-vm" server-id="0"/>
<jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/>
<jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/>
<jms-queue name="emailQ" entries="java:/queue/emailQ java:/jboss/exported/emailQ"/>
<jms-queue name="smsQ" entries="java:/queue/smsQ java:/jboss/exported/smsQ"/>
<jms-queue name="socialOutQueue" entries="java:/queue/socialOutQueue java:/jboss/exported/socialOutQueue"/>
<jms-queue name="socialInQueue" entries="java:/queue/socialInQueue java:/jboss/exported/socialInQueue"/>
<jms-queue name="transactionAuditQueue" entries="java:/queue/transactionAuditQueue java:/jboss/exported/transactionAuditQueue"/>
<jms-queue name="auditQueue" entries="java:/queue/auditQueue java:/jboss/exported/auditQueue"/>
<jms-queue name="userProfileQueue" entries="java:/queue/userProfileQueue java:/jboss/exported/userProfileQueue"/>
<jms-queue name="loginQueue" entries="java:/queue/loginQueue java:/jboss/exported/loginQueue"/>
<jms-queue name="spendQueryQueue" entries="java:/queue/spendQueryQueue java:/jboss/exported/spendQueryQueue"/>
<jms-queue name="socialBroadcastInQueue" entries="java:/queue/socialBroadcastInQueue java:/jboss/exported/socialBroadcastInQueue"/>
<jms-queue name="socialBroadcastOutQueue" entries="java:/queue/socialBroadcastOutQueue java:/jboss/exported/socialBroadcastOutQueue"/>
<connection-factory name="mqConnectionFactory" reconnect-attempts="5" entries="java:jboss/mqConnectionFactory" connectors="http-connector"/>
<connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/>
<connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector"/>
<pooled-connection-factory name="activemq-ra" transaction="xa" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm"/>
</server>
</subsystem>
<subsystem xmlns="urn:jboss:domain:resource-adapters:5.0">
<resource-adapters>
<resource-adapter id="activemq-ra.rar">
<archive>
activemq-ra.rar
</archive>
<transaction-support>XATransaction</transaction-support>
<config-property name="ServerUrl">
vm://localhost:61616
</config-property>
<config-property name="UserName">
admin
</config-property>
<config-property name="UseInboundSession">
false
</config-property>
<config-property name="Password">
password
</config-property>
<connection-definitions>
<connection-definition class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory" jndi-name="java:jboss/mqConnectionFactory" enabled="true" pool-name="mqConnectionFactory" />
</connection-definitions>
<admin-objects>
<admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/jms/socialInQueue" use-java-context="true" pool-name="socialInQueue">
<config-property name="PhysicalName">
socialInQueue
</config-property>
</admin-object>
<admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/jms/transactionAuditQueue" use-java-context="true" pool-name="transactionAuditQueue">
<config-property name="PhysicalName">
transactionAuditQueue
</config-property>
</admin-object>
<admin-object class-name="org.apache.activemq.command.ActiveMQTopic" jndi-name="java:/jms/socialOutQueue" use-java-context="true" pool-name="socialOutQueue">
<config-property name="PhysicalName">
socialOutQueue
</config-property>
</admin-object>
<admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/jms/loginQueue" use-java-context="true" pool-name="loginQueue">
<config-property name="PhysicalName">
loginQueue
</config-property>
</admin-object>
<admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/jms/auditQueue" use-java-context="true" pool-name="auditQueue">
<config-property name="PhysicalName">
auditQueue
</config-property>
</admin-object>
<admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/jms/spendQueryQueue" use-java-context="true" pool-name="spendQueryQueue">
<config-property name="PhysicalName">
spendQueryQueue
</config-property>
</admin-object>
<admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/jms/userProfileQueue" use-java-context="true" pool-name="userProfileQueue">
<config-property name="PhysicalName">
userProfileQueue
</config-property>
</admin-object>
</admin-objects>
</resource-adapter>
</resource-adapters>
</subsystem>
- Download the latest ESAPI properties from resources and store in your local or use the ESAPI properties in ~/admin-backend-api/config/admin/ESAPI
- Add the script in bin folder to start Jboss with Java Variables startJboss.sh
nohup sh standalone.sh -c standalone-full.xml -Dorg.owasp.esapi.resources=/home/dev01/morfeus/config/ESAPI -DredisHost=localhost -DredisPort=6379 -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management=0.0.0.0 -Djboss.socket.binding.port-offset=100 -Dorg.owasp.esapi.resources=/home/dev01/morfeus/config/ESAPI -Dretail.banking.resources=/home/dev01/retailbanking -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses -Djboss.server.log.threshold=DEBUG -DLOG_PATH=/data1/software/logs -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dlog4j2.DiscardThreshold=DEBUG -Dlog4j2.AsyncQueueFullPolicy=Discard -DMORFEUS_LOG_LEVEL=DEBUG -DOTHER_LOGS_LEVEL=DEBUG -Dadmin.config.path=/home/dev01/morfeus/config &
- -Djgroups.udp.mcast_port=55599 change this udp port if you are in a subnet and want J-group cluster to be distinct. it is advisable to provide a unique value for each deployment.
- Download morfeus war files from resources page. Copy all war files to jboss webapps.
- Add this file private.key.p8c in the MORFEUS_PATH folder.
- Ensure Redis server is running. Start Jboss
Once all the above steps are done, move to verification steps.
Morfeus on Weblogic
Pre Requisites
Setting up Weblogic 12.2.1.3 installation and configuring domain:
- Download : the weblogic quick installer
- run java -jar quickInstallerJarName
- cd
/fmw_12.2.1.3.0_wls_quick_Disk1_1of1/wls12213/oracle_common/common/bin - sh config.sh
- cd
/fmw_12.2.1.3.0_wls_quick_Disk1_1of1/wls12213/user_projects/domains/morfeus/bin/ add morfeus environment variable in startWeblogic.sh file
JAVA\_OPTIONS="$JAVA\_OPTIONS -Xmx1024m -Xdebug -Xnoagent -Xrunjdwp:transport=dt\_socket,address=8457,server=y,suspend=n" JAVA\_OPTIONS="$JAVA\_OPTIONS -Dorg.owasp.esapi.resources=/morfeus/config/admin/esapi" JAVA\_OPTIONS="$JAVA\_OPTIONS -Dadmin.config.path=/morfeus/config/admin/" JAVA\_OPTIONS="$JAVA\_OPTIONS -Dretail.banking.resources=/Project/morfeus/retailbanking/" JAVA\_OPTIONS="$JAVA\_OPTIONS -[Djava.net](http://Djava.net).preferIPv4Stack=true -[Djava.net](http://Djava.net).preferIPv4Addresses" #JAVA\_OPTIONS="$JAVA\_OPTIONS -Dspring.profiles.active=flyway.disable" JAVA\_OPTIONS="$JAVA\_OPTIONS -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector" JAVA\_OPTIONS="$JAVA\_OPTIONS -Dlog4j2.DiscardThreshold=INFO" JAVA\_OPTIONS="$JAVA\_OPTIONS -Dlog4j2.AsyncQueueFullPolicy=Discard" JAVA\_OPTIONS="$JAVA\_OPTIONS -DMORFEUS\_LOG\_LEVEL=DEBUG" JAVA\_OPTIONS="$JAVA\_OPTIONS -DOTHER\_LOGS\_LEVEL=DEBUG" JAVA\_OPTIONS="$JAVA\_OPTIONS -Dorg.apache.activemq.SERIALIZABLE\_PACKAGES='\*'" JAVA\_OPTIONS="$JAVA\_OPTIONS -DredisHost=localhost" JAVA\_OPTIONS="$JAVA\_OPTIONS -DredisPort=6379" JAVA\_OPTIONS="$JAVA\_OPTIONS -DLOG\_PATH=/Project/morfeus/logs"
Configure datasource as show in DataSource setup.
Deploy the wars and activate them.
sh startWebLogic.sh
DataSource setup:
1. Login to the Weblogic console.
2. Navigate to the Services → Data Sources . Create data source with MorfeusDB JNDI name with
3. Configure the database credentials and map to the required server in Targets tab.
WAR deployment:
1.Using the Deployments option, upload the wars
JMS Configuration
- Configure the JMS Server
2. Configure the JMS Modules with required queues and target to the above JMS Server.
Shared Library Configuration
Below entry in weblogic.xml
<wls:library-ref>
<wls:library-name>CommonJars</wls:library-name>
</wls:library-ref>
CommonJars is a war which can to be deployed as Library and referred by Morfeus war.
Install, Upgrade Triniti
Welcome to Triniti installation guide. The access to artifactory links will be provided from your Active.ai sales representative.
OS Compatibility
Triniti is certified on the operating systems below
- ubuntu:20.04 & Above
OS Dependencies
Please install the following OS dependencies before proceeding
- gcc 8.5
- glibc-2.28
- curl
- openjdk-8-jre-headless
- python3-pip
- python38-pip-19.3.1-4.module_el8.5.0+896+eb9e77ba.noarch
- python38-devel-3.8.8-4.module_el8.5.0+896+eb9e77ba.x86_64
- python38-libs-3.8.8-4.module_el8.5.0+896+eb9e77ba.x86_64
- python38-setuptools-wheel-41.6.0-5.module_el8.5.0+896+eb9e77ba.noarch
- python38-setuptools-41.6.0-5.module_el8.5.0+896+eb9e77ba.noarch
- python38-pip-wheel-19.3.1-4.module_el8.5.0+896+eb9e77ba.noarch
- python38-numpy-1.17.3-6.module_el8.5.0+896+eb9e77ba.x86_64
- python38-3.8.8-4.module_el8.5.0+896+eb9e77ba.x86_64gcc-8.5.0-4.el8_5.x86_64
- gcc-c++-8.5.0-4.el8_5.x86_64
- libgcc-8.5.0-4.el8_5.x86_64
- glibc-common-2.28-164.el8.x86_64
- glibc-2.28-164.el8.i686
- glibc-headers-2.28-164.el8.x86_64
- glibc-all-langpacks-2.28-164.el8.x86_64
- glibc-devel-2.28-164.el8.x86_64
- glibc-2.28-164.el8.x86_64
- virtualenv
Triniti Dependencies
If your server does not have access to internet and active ai aritfactory network, please download the following dependencies before proceeding with the installation. Please refer to resources for details on Triniti Dependencies, External Dependencies and Generic AI Models
Installation
Proceed with installation only if you have access to the internet and active ai artifactory to download the dependencies automatically or you have downloaded the dependencies in the previous
Download wheel
curl -u<USERNAME>:<PASSWORD> -O "https://artifacts.active.ai/artifactory/triniti_V2/triniti-V4.0.0Release_10_11_2021-py3-none-any.whl"
Download pretrained models
curl -u<USERNAME>:<PASSWORD> -O "https://artifacts.active.ai/artifactory/Kotak-deployments/triniti45-uat/triniti45_models_080522.zip"
Download wheel files
curl -u
: -o https://artifacts.active.ai/artifactory/Kotak-deployments/triniti45-uat/torch-1.11.0%2Bcpu-cp38-cp38-linux_x86_64.whl curl -u
: -o https://artifacts.active.ai/artifactory/Kotak-deployments/triniti45-uat/triniti45-4.5.5-py3-none-any.whl unzip triniti45_models_080522.zip
Create a virtual environment and activate it
virtualenv -p /usr/bin/python3.8 triniti45_env echo "source triniti45_env/bin/activate" > activateTrinitiEnv.sh . activateTrinitiEnv.sh
Install other dependencies
pip3 install torch-1.11.0%2Bcpu-cp38-cp38-linux_x86_64.whl pip3 install triniti45-4.5.5-py3-none-any.whl Edit the Config.yml file cd /<triniti_install_folder>/triniti45_setup/triniti45_env/lib/python3.8/site-packages/triniti vi config.yml update these path as per your setup
DATA_HOME : /
[triniti45_8000] environment=DATA_HOME="/data", CUDA_VISIBLE_DEVICES="", TOKENIZERS_PARALLELISM=false, LOGS_HOME="/opt/logs", BASE_MODELS_HOME="/opt/models", PYTHONUNBUFFERED=1 directory=/opt/triniti45_setup_12102022/trinitiv45_env/lib/python3.8/site-packages/triniti stdout_logfile=/opt/logs/%(program_name)s.log stderr_logfile=/opt/logs/%(program_name)s.log command=bash -c 'source /opt/triniti45_setup_12102022/trinitiv45_env/bin/activate && python3 -m triniti.cli restart --host 192.168.3.71 --port 8000' process_name=%(program_name)s numprocs=1 autorestart=false user=dev01 stdout_logfile_maxbytes=1GB stdout_logfile_backups=10 stderr_logfile_maxbytes=1GB stderr_logfile_backups=10
### Starting and Stopping Triniti
<ol>
<li>activate the virtual environment</li>
<li>source /bin/activate</li>
<li>Run supervisord -c supervisord.conf ( start the Triniti server in supervisord daemon mode)</li>
<li>To Manage Triniti Via supervisor</li>
<li>Supervisorctl status (Check triniti service status) supervisorctl restart < triniti_manager> (restart Triniti services)</li>
<li>supervisorctl stop (stop Triniti services) supervisorctl start (start Triniti services)</li>
</ol>
### Docker Installation
<ol>
<li>docker pull 940330296631.dkr.ecr.ap-southeast-1.amazonaws.com/triniti:triniti:4.5</li>
<li>docker run -d -p 80:80 -p 8080:8080 --name triniti45 940330296631.dkr.ecr.ap-southeast-1.amazonaws.com/triniti:triniti4.5</li>
</ol>
On AWS
Via Cloudformation
Verifying Installation
Below are the steps to verify if morfeus server is running properly -
- Check if all process is running
- For docker type -
sh docker ps -a
It should show all the 5 dockers running and status of each is healthy. - For standalone type
sh ps -ef | grep <appserver>
You should see a process of app server running.
- For docker type -
- Check for logs.
- For docker logs are located in /opt/supervisord/log
- For standalone installation refer to the logs folder of an application server
- Open the browser and navigate to localhost:8080. You should be able to see Morfeus Admin page. This would indicate that basic installation is up and running
- Login using - morfeus@active.ai / m0rfeu5 . This is a super admin user and password.
- Verify JGroup setup. More info: http://www.jgroups.org/manual-3.x/html/ch02.html#TestingTheSetup
java -[Djava.net](http://Djava.net).preferIPv4Stack=true -[Djava.net](http://Djava.net).preferIPv6Addresses=false -classpath jgroups-3.1.0.Final.jar org.jgroups.tests.Probe
Setup Hello Card Assistant using Import Workspace
This section helps in setting up a workspace with a sample Hello Card use case. You can also follow along with the steps to configure the same in your local.
To setup morfeus and admin portal locally, follow this article.
In this tutorial, you will build a simple assistant which will help in blocking card.
Create a new workspace
Login to the admin portal
- Click on "Add workspace".
- Mention the name of the workspace in the prompted window.
- Select "Banking (Retail Banking, Corporate Banking or Retail lending) / Insurance / Trading / Custom" domain.
- Click on create a workspace.
Workspace creation will load base data and default data to the workspace as following :
Git sync will done while workspace creation will load faqs,intents,entities,spellcheck,smalltalk as part of base data
- Git url : To get Base Data, click here
- Git workspace : english_base
Base data Git sync default configuration exits in config.properties file
Path of file admin-backend-api/src/main/resources/properties/config.properties
Base data contains the minmal data to start the generate and train
Default data is also loaded to workspace
Default data is loaded to provide domain specific("Banking (Retail Banking, Corporate Banking or Retail lending) / Insurance / Trading / Custom") data
As part of default data templates,messages,hooks,workspace config,bot rules and ai rules will be loaded which are configurable
Import Workspace
- Download HelloCard workspace from here.
- Go to the dashboard of the admin panel.
- Click on the top right side 3-dots on your workspace to open options dialog.
- Click on the
Import Workspace
option. - Click on
Yes
button on the popup to confirm the workspace overwrite. - Select the ZIP file downloaded in the first step.
- A progress bar will appear. Wait for it to finish loading.
Configure WebSDK
- Click on the workspace to open
Configure Workspace
window. - Click on
Manage Channels
- In the enabled channels, you will see `Webapp' channel. Click on the top right side 3-dots on the channel to open options dialog.
- Click on the
Edit Channel
option. - In the
General Configuration
, you will find theInput Message URL Endpoint
. - Copy the bot channel ID from the URL. If the URL is like
http://zu8po5p1w9.triniti.ai:80/morfeus/v1/channels/35w35008033.76/message
,35w35008033.76
is the bot channel ID. - In your WebSDK code open
index.js
located insidejs
folder. - Update the
botId
with the bot channel ID obtained earlier.
Update the bot configuration
- Click on the workspace to open
Configure Workspace
window. - Click on
Manage Rules
. - In the
General
tab, look forElastic Search URL
update it to point it to your Elastic Search. And Save. - Click on the
Deploy
option on the left side menu. - Go to the
Bot Ops
tab and click theCreate
button underDatalake Indices
.
Verify
Verify Intent Data
- Click on the workspace to open
Configure Workspace
window. - Click on
Manage AI
option on the left side menu. - Click on
Setup Intents
. txn-productclosure
intent is present with sample utterances.
Verify Entities Data
- Click on the workspace to open
Configure Workspace
window. - Click on
Manage AI
option on the left side menu. - Click on
Setup Entities
.
Verify Workflow
- Click on the workspace to open
Configure Workspace
window. - Click on
Manage Functions
option on the left side menu. - Open
Block Card
function. - Go to the
Fulfillment
tab. - Click on
Manage Workflow
button.
To know more about workflow, check here.
Verify Flow
- Open WebSDK Channel Chatbot in the browser.
- Type "Block card".
Deployment Options
On Premise
The below diagram explains the architetcure for on premise deployments.
Architecture
Deployment Entities
Deployment Entity | Description | Comments |
Web Server | Web Server | Optional for cloud or non 3 tier architecture , can run on App Server |
App Server (Runtime) | Conversational Middleware Runtime (Morfeus) | |
App Server (Admin ) | Conversational Middleware Admin Server (Morfeus) | Optional , recommended for better security . Can be also deployed on App Server |
AI Runtime | Conversational AI Engine (Triniti) | |
AI Language Server | AI Language translation | Only for multi lingual deployments |
Database | Configuration, user and transaction storage | |
Secondary Cache | For additional performance | |
Analytics | Reporting | |
Graph | Knowledge Graph |
Scalability
The Active AI Platform deployment architecture supports High Availabiity and Scalability with support for clustering and failover.
Entity | Scalability & High Availability | Failover | Comments |
---|---|---|---|
Web Server | Yes | Yes | Positioned behind the existing Enterprise Hardward Load Balancer in sticky session mode |
App Server (Morfeus Runtime) | Yes | Yes | Load Balancing & failover done by the mod_jk plugin in web server |
Admin Server (Morfeus Admin) | Yes | No | An internal Web Server and ELB is a pre requisite |
AI Runtime (Triniti Slave) | Yes | Yes | Triniti Slaves are software load balanced by Morfeus , internal hardware load balancer can be used as well |
AI Master&Manager (Triniti Slave) | No | No | AI Manager is not meant for real time processing |
AI Language Server (Slave) | Yes | Yes | Triniti Slaves are software load balanced by Morfeus , internal hardware load balancer can be used as well |
Database | Yes | Yes | Scalability and HA options can be configured as per the Database provider |
Elastic Cache(Analytics) | Yes | Yes | Support for Scalability and HA in cluster mode |
Redis(Cache) | Yes | Yes | Support for Scalability and HA in cluster mode |
Neo4J(KnowledgeGraph) | Yes | Yes | Support for Scalability and HA in cluster mode |
DR
The Active AI Platform deployment architecture supports various standard DR strategies.
Entity | DR | Comments |
---|---|---|
Web Server | Yes | Support for Active-Active or Active-Passive based on Enterprise policies |
App Server (Morfeus Runtime) | Yes | Support for Active-Active or Active-Passive based on Enterprise policies |
Admin Server (Morfeus Admin) | Yes | Support for Active-Active or Active-Passive based on Enterprise policies |
AI Runtime(Triniti Slave) | Yes | Support for Active-Active or Active-Passive based on Enterprise policies |
AI Master&Manager (Triniti Slave) | No | Support for Active-Passive modes |
AI Language Server (Slave) | Yes | Support for Active-Active or Active-Passive based on Enterprise policies |
Database | Cloud | Support for Active-Active or Active-Passive based on Enterprise replication policies |
Elastic Cache(Analytics) | Cloud | Support for Active-Active or Active-Passive based on Enterprise policies |
Redis(Cache) | Cloud | Support for Active-Active or Active-Passive based on Enterprise policies |
Neo4J(KnowledgeGraph) | Cloud | Support for Active-Active or Active-Passive based on Enterprise policies |
AWS Cloud
The Active AI Platforms is compatible with AWS and supports containerization based deployment strategies
Architecture
Deployment Entities
Deployment Entity | Description | Comments | App Server (Runtime) | Conversational Middleware Runtime (Morfeus) |
App Server (Admin ) | Conversational Middleware Admin Server (Morfeus) | Optional , recommended for better security . Can be also deployed on App Server |
AI Runtime | Conversational AI Engine (Triniti) | |
AI Language Server | AI Language translation | Only for multi lingual deployments |
Database | Configuration, user and transaction storage | RDS , Managed Services |
Secondary Cache | For additional performance | Elastic Cache |
Analytics | Reporting | Managed ElasticSearch |
Graph | Knowledge Graph | |
ELB | Application Load Balancer mode | |
WAF | Optional , Recommended | |
EFS | Triniti Training | |
NAT Gateway | ||
S3 & Cloudfront | For hosting WebSDK | |
Guard Duty | Optional , Recommended for Security | |
ElasticSearch (Logs) | Log Aggregation across instances | |
CloudWatch | Monitoring |
DR
The Active AI Platform deployment architecture supports High Availability and Scalability with support for clustering and failover. It utilizes the underlying capabilities of AWS like AutoScale and clustering and HA capabilities for Managed Instances.
Sizing Estimates
This section provides an estimate of the infrastructure requirements for deploying the platform in different configurations and environments
The platform supports deployments in the following environments
· On Premise (Bare Metal Servers)
· Cloud (AWS)
Platform Software & OS Support
Please refer to supported configuration page for details.
Sizing Definitions
Deployment Types | Environment | Concurrent Users | Comments |
Small (Non-HA) |
Bare Metal |
600 |
|
Small (HA) |
Bare Metal |
1,200 |
|
Medium (HA) |
Bare Metal |
2,400 |
|
Large & Custom (HA) |
Bare Metal |
4,000 |
Please contact us |
Small |
AWS Private Cloud |
600 |
Can Auto Scale |
Medium |
AWS Private Cloud |
1,200 |
Can Auto Scale |
Think time of 10 secs
Concurrent Users – Number of simultaneously logged in users
On Premise
SIT & UAT Deployments
SIT | ||||
Setup | No. of nodes | Cores | Memory (GB) | Storage GB (SSD) |
Web
Server |
1 | 1 | 4 | 25 |
App & Admin Server | 1 | 1 | 8 | 25 |
AI Runtime Server | 1 | 4 | 32 | 50 |
Database Server | 1 | 2 | 8 | 50 |
AI Master & Manager Server | 1 | 16 | 32 | 50 |
AI Language Server* | 1 | 1 | 16 | 50 |
Analytics & Cache Server | 1 | 2 | 8 | 25 |
UAT | ||||
Setup | No. of nodes | Cores | Memory (GB) | Storage GB (SSD) |
Web
Server |
1 | 2 | 4 | 25 |
App & Admin Server | 1 | 2 | 8 | 50 |
AI Runtime Server | 1 | 4 | 32 | 50 |
Database
Server |
1 | 2 | 8 | 50 |
AI Master & Manager Server | 1 | 16 | 32 | 50 |
AI Language Server* | 1 | 1 | 16 | 50 |
Analytics & Cache Server | 1 | 2 | 8 | 25 |
SIT & UAT | ||||
Setup | No. of nodes | Cores | Memory (GB) | Storage GB (SSD) |
Web
Server |
1 | 2 | 4 | 50 |
App & Admin Server | 1 | 2 | 16 | 100 |
AI Runtime Server | 2 | 4 | 64 | 100 |
Database
Server |
1 | 2 | 8 | 100 |
AI Master & Manager Server | 1 | 16 | 32 | 100 |
AI Language Server* | 1 | 2 | 32 | 100 |
Analytics & Cache Server | 1 | 2 | 16 | 100 |
- Combined SIT and UAT deployments for optimized cost as an option
- AI Languge Server is required only for multi lingual deployments
Production HA (Small)
Production | ||||
Setup | No. of nodes | Cores | Memory (GB) | Storage GB (SSD) |
Web
Server |
2 | 4 | 8 | 25 |
App
Server |
2 | 4 | 8 | 50 |
Admin
Server |
1 | 2 | 8 | 50 |
AI Runtime Server | 2 | 4 | 32 | 50 |
Database
Server |
2 | 4 | 16 | 50 + 100 GB (SAN) |
AI Master & Manager Server | 1 | 16 | 32 | 50 |
AI Language Server* | 2 | 2 | 16 | 50 |
Analytics & Cache Server | 2 | 2 | 16 | 50 |
Production Non HA (Small)
Production | ||||
Setup | No. of nodes | Cores | Memory (GB) | Storage GB (SSD) |
Web
Server |
1 | 4 | 8 | 25 |
App
Server |
1 | 4 | 8 | 50 |
Admin
Server |
1 | 2 | 8 | 50 |
AI Runtime Server | 1 | 4 | 32 | 50 |
Database
Server |
1 | 4 | 16 | 50 + 100 GB (SAN) |
AI Master & Manager Server | 1 | 16 | 32 | 50 |
AI Language Server | 1 | 2 | 16 | 50 |
Analytics & Cache Server | 1 | 2 | 16 | 50 |
Production HA (Medium)
Production | ||||
Setup | No. of nodes | Cores | Memory (GB) | Storage GB (SSD) |
Web
Server |
2 | 4 | 8 | 25 |
App
Server |
2 | 8 | 16 | 50 |
Admin
Server |
1 | 2 | 8 | 50 |
AI Runtime Server | 2 | 8 | 64 | 50 |
Database
Server |
2 | 8 | 16 | 50 + 250 GB (SAN) |
AI Master & Manager Server | 1 | 16 | 32 | 50 |
AI Language Server | 2 | 4 | 16 | 50 |
Analytics & Cache Server | 2 | 4 | 16 | 50 |
GPU
We would recommend attaching a GPU with the AI Master Server for faster training cycles.
Deployment Types | GPU Recommendation | Comments |
Small |
Tesla P100 |
|
Medium & Large |
Tesla V100 |
Assumptions
• Application Log archival period on all servers is assumed to be 1 week
• Database archival period is assumed to be 6 months
• AI Runtime and Master Servers will be running Triniti Dockers
• Admin Server is optional but recommended
• NFS between AI Master and Runtime is required
• Replication will be handled and configured by customer team based on current practices
• Switchover from production to DR will be handled and configured by customer team based on current practices
AWS
SIT & UAT
SIT | |||
Setup | No. of nodes | Instance Type | Storage GB (SSD) |
App & Admin Server | 1 | t3.medium | 25 |
AI Runtime Server | 1 | r5.xlarge | 50 |
Database Server | 1 | db.t3.medium | 50 |
AI Master & Manager Server | 1 | c5.4x large ( Spot ) | 50 |
AI Language Server * | 1 | r5.large | 50 |
Analytics Server | 1 | t2.medium.elasticsearch | 50 |
Cache Server | 1 | cache.t2.medium 50 |
UAT | |||
Setup | No. of nodes | Instance Type | Storage GB (SSD) |
App & Admin Server | 1 | t3.large | 50 |
AI Runtime Server | 1 | r5.xlarge | 50 |
Database
Server |
1 | db.t3.large | 50 |
AI Master & Manager Server | 1 | c5.4x large ( Spot ) | 50 |
AI Language Server * | 1 | r5.large | 50 |
Analytics Server | 1 | t2.medium.elasticsearch | 50 |
Cache Server | 1 | cache.t2.medium | 50 |
SIT & UAT | |||
Setup | No. of nodes | Instance Type | Storage GB (SSD) |
App & Admin Server | 1 | t3.xlarge | 100 |
AI Runtime Server | 2 | r5.xlarge | 100 |
Database
Server |
1 | db.t3.xlarge | 100 |
AI Master & Manager Server | 1 | c5.4x large ( Spot ) | 100 |
AI Master & Manager Server | 1 | c5.4x large ( Spot ) | 50 |
AI Language Server * | 1 | r5.large | 100 |
Analytics Server | 1 | t2.medium.elasticsearch | 100 |
Cache Server | 1 | cache.m4.large | 100 |
- Combined SIT and UAT deployments for optimized cost as an option
- AI Language Server is required only for multi lingual deployments
Production Deployment
Production | |||
Setup | No. of nodes | Instance Type | Storage GB (SSD) |
App
Server |
1 | C5.xlarge | 100 |
Admin
Server |
1 | t3.large | 100 |
AI Runtime Server | 1 | r5.xlarge | 100 |
Database
Server |
1 | db.t3.xlarge | 100 |
AI Master & Manager Server | 1 | c5.4x large ( Spot ) | 100 |
AI Language Server* | 1 | r5.large | 100 |
Analytics Server | 1 | m5.large.elasticsearch
|
100 |
Cache Server | 1 | cache.m4.large 50 | |
Log Server | 1 | m5.xlarge.elasticsearch 500 |
• AI & Morfeus Runtime are configured for Auto Scale • Language Server is for multi lingual deployments • RDS , ES should be configured with Auto Extend • Graph Server to be run as a docker in Server
Assumptions
• Application Log archival period on all servers is assumed to be 1 week
• ES Log Server is assumed to be 6 months
• Database archival period is assumed to be 6 months
• AI Runtime and Master Servers will be running Triniti Dockers
• AI Training Server can be utilized on demand via Spot Instances for better optimization
• CloudWatch is setup for monitoring and alerts.
GPU
We would recommend using a GPU instance type for the AI Master Server for faster training cycles. Spot instances (on demand) would be used.
Deployment Types | Instance Recommendation | Comments |
AI Master & Manager Server |
P3.2x large (Spot) |
Release Notes
Triniti
3.2
Date | Release Notes |
---|---|
Jan-2020 | Inmprove co-ref resolution for CP |
3.1
Date | Release Notes |
---|---|
Oct-2019 | Improve Train time for CP Handle negation , action in Q&A Reduce Q&A docker size |
2.3
Date | Release Notes |
---|---|
Aug-2019 | New Classifier based on deep learning New CP based on Deep Learning New paraphrasing module |
2.2
Date | Release Notes |
---|---|
Apr-2019 | NER based on Deeplearning Context Handling Module |
2.1
Date | Release Notes |
---|---|
Jan-2019 | Build new Q&A system(less training annotation , faster , generic) Dockerising Q&A system Triniti integration with Q&A system Master-Slave reload for Q&A system |
2
Date | Release Notes |
---|---|
Aug-2018 | Unified Api V2 NLU Support Inproved Logging Externilize triniti Configurations New data format |
1.1
Date | Release Notes |
---|---|
Apr-2018 | Unified Api V1 Architecture chnages to Master-Slave reload functionality to be common across cloud, on prem Dockerising Triniti Remove module interdependencies for reload Generic Context Change Module |
1
Date | Release Notes |
---|---|
Jan-2018 | Intent Classification Faq non-faq detection Outlier detection Context Change Entity Recogniser knowledge based search Nunber Conversion Date Conversion Spell Check Product Action matrix Rule validator Pre-Classification Master-Slave using Pub-Sub architecture |
Morfeus
Coming Soon !!
Morfeus Admin
2.5.0
Date | Release Notes |
---|---|
creating a way to config for hitting integration url from RB using domainrulesmstr table | |
Audit User ip address | |
Default rule for audit & related FAQ template | |
ES Client | |
Ontology | |
Developer mode to false by default | |
Unit Tests | |
Self learning - Top insights to filter based on selected date range | |
Functionality -> Data tab to show 2 tabs Custom/Base | |
User Chat audit from elastic search engine | |
Related FAQ impl in Triniti AI | |
Verify ES cluster setup | |
Add index to audit external calls | |
MorfeusAdmin login to have IP based restriction | |
Axis: Complete Migration from 1.3.X to develop with testing of RB flows | |
Chat History Extension - To support anonymous as well as logged in users | |
By default disable Secondary Classifier | |
Channel Alexa: Revamp | |
Channel Slack development | |
OAuth Config - Client and Secret to be secured in backend using AWS KMS | |
Reports.JSON updating for Functionality type & subtype | |
Adding rules for Login functionality - One Portal | |
Generate the rules based on Currency Code | |
Validate the unsupported through Ontology | |
To support welcome template and workflow option | |
Set default rules for fallback and MLT | |
Entity Mapping & Data ID update | |
Module level training | |
Knowledge Graph - fixes | |
SSE implementation - Spring based | |
Grain Type support for UnifiedAPI | |
Password based authentication for elastic search | |
Channel-Webex | |
Audit language, is compound query and expanded message | |
Live Chat V3 migration | |
Message type filter for self learning | |
Faq / non faq load for Triniti V2 | |
Inter-server channel | |
Channel-whatsApp :Migrate from Project to Morfeus as an inherent channel | |
Support for web search using es fallback | |
Option to set cookie path and domain using bot rules | |
Ontology Revamp | |
JWT Authentication Support In admin | |
FAQ functionality upgrades | |
SR editor revamp | |
Analytics Improvement | |
Load Autosuggest for SAAS Portal supporting rb-us instance | |
Bug Fixes for faq domain | |
Function fullfilment feature | |
Fix quick links on faq template | |
Update the Restore workspace snapshot | |
Option to disable auditing in database | |
Git sync intent_phrases.txt file | |
Related faq after CTA optional | |
Self learning export | |
Enable context expansion for predefined products | |
Limit the auditing size | |
ES search is returning same FAQ ID variants. It should return only the unique FAQs. | |
MessageType "voice" in desktop | |
Verification of all banking functionality ( IFSC etc ) in MySQL and Oracle | |
Function feature improvements | |
Unmapped intent to consider as FAQs | |
Enable compound query for FAQ | |
Remove bot domain int id from function table | |
HDFC Sprint 2 ISG pre-login security issue | |
Enhancement for Deployment Tool | |
Update defaults botrules | |
Export individual FAQ | |
Google Assistant with display and templates support | |
Analytics :: intermittently analytics are not displaying | |
FAQ - Template response not working | |
Notification bar hidden and userinfo popup - triniti-ai websdk | |
Send Mail password fix | |
Admin - DateTime Issue in Analytics | |
In workspaces > Bot ops > export templates > not working | |
in workspaces > NTUC project > we are facing issue while importing smalltalk | |
Manage Self Learning launch issue in weblogic | |
Auto-complete issue | |
Cross-Site Scripting, Cache issue in offline & 415 error not handled | |
CSV Excel Formula Injection | |
Mail service failing | |
Admin date format issue | |
fix import workspace issue | |
Change the output file from bundle.js > templateEditor.js | |
Messages are not saving while editing or creating | |
new field for websdk security in channel config | |
Keyphrases fix for one and admin | |
Saaas portal Rules and Config tab | |
import export of template editor | |
Campaign | |
Self learning | |
FAQ untagged keyphrases bug | |
Consider start and end date for each campaign | |
Question is getting polluted with answer in git sync | |
Analytics query should return ip address in response | |
Triniti language translator engine name is wrong | |
AI - analytics changes | |
AI -accuracy query optimization not to include init-welcome, command & postback | |
customer user chat search for multiple words not working | |
Self Learning >> FeedBack >> On exporting the Feedback, The exported excel is not showing up the "Date","UserId","CustomerId","Confidence","Sentiment","Feedback Type","Feedback" column. | |
User Chat Open API | |
Saas Security Bug Fix | |
NO-CONTENT Bug Fix | |
Audit need for Website & Netbanking separately | |
Exigency Management Bug Fixes | |
Saas Bug Fixes | |
Self Learning >> uncategorized count shows the different values each time when user clicks on "Uncategroized" link in the Top insights. | |
Self Learning >> Unactegorized category is showing the "FAQ", "Txn- card settings" in the uncategorized category, Only uncategorized utterance has to be displayed in the list. | |
Admin :: Deploy > AI Configuration > Export Zip is not working | |
Morfeus Admin password to be salted with random number | |
fix import workspace issue | |
download template based on category | |
Manage self learning filter do not work | |
Information missing from excel sheet after exporting from manage self-learning | |
"Search Statement" do not work | |
in manage-self learning if we search with "make a claim" > it is giving different results. | |
in origination :: if we refresh page > origination count will be zero | |
PEN Test : wild card SQL Injection attacks | |
PEN Test : Manage FAQ : Formula Injection attacks | |
PEN Test : Manage Acronyms : parameter manipulation | |
move config from property to message | |
Restrict underscore (_) in password field in UI on registration | |
After clicking save on login policy multiple columns are created in botrulemstr | |
Customer profile details are lost | |
Data not found for following in one-dev |
2.2.0
Date | Release Notes |
---|---|
Release 2.2.0 | |
adding rule to enable or disable download transcript feature in manual chat | |
Elasticsearch | |
OAuth : Bot id & domain changes | |
Zendesk Development | |
Remove Last modified column from functionality in portal | |
Self learning index migration utility | |
Add default template json while creating a new bot | |
Bot operations - Workflow export import option | |
Default bot rule values for Unified API updated | |
Added missing RB integration services to domainbConfig.json | |
FAQ response template with option of workflow linking | |
Merge self learning index with message_audit index | |
Port missing fields from messageauditmstr to ES message_audit index | |
FAQ UI changes , import & export format changes as per Spotter requirements | |
Adding indexes for performance raised by Kotak | |
Small Talk Bug Fixes | |
Default Hooks and service creation on creating bot from workspace | |
Elastic search cluster support | |
User Chat audit from elastic search engine | |
Admin to show the date formats as per the System Date format | |
Rules to override TRINITI and disambiguate in controller | |
Triniti V2 data format updates | |
Export and Import Functions | |
FAQ Export & Import as zip | |
Support non-english to english translation for spotter training | |
Add BASE and CUSTOM tab for Function Data | |
Workflow Debugger | |
Morfeus Admin - Training, Data Syncing, KeyPhrase | |
Include bot Id in audit trial api for sso login (SaaS) | |
Adding New Api to fetch all service by service category | |
Triniti template json changes | |
Audit Open API Changes | |
Enterprise manager Enhancements to support on-prem installations | |
Oauth Proxy - external login handling | |
Port Customer Support to Triniti.ai | |
Export individual FAQ | |
Export a Single Functions | |
Audit trail search filter should have function name | |
List template to support compact and large style | |
Add modified and created date for Function -> Data -> Base tab | |
Faq Intents and services changes | |
APi Changes for Saas | |
Git sync default user name to display | |
Adding Log file the log directory defined in system path | |
netflix load balancer pinging too many times per bot level to ES - lets not do this for cloud system. for on prem we continue to do as scale and cluster management is on Morfeus | |
RedisConnection issue fix related to connection factory | |
Export Not working in UAT | |
Auto suggested & related FAQ's to be filter based on user segmentation | |
Exigency Management Bug Fixes | |
Manage self learning : - sorting is not working . all latest records should display on top | |
Manage Self learning >> FAQ >> Composite Score is not displayed in the grid. | |
Self Learning >> Unactegorized category is showing the "FAQ", "Txn- card settings" in the uncategorized category, Only uncategorized utterance has to be displayed in the list. | |
Self Learning >> Exporting for the data showing the progress bar as exporting for longtime but the export is not happening. | |
Entity to be shows with category like sys.emailId | |
Self Learning | |
Browser Stack bugs | |
Analytics develop : merge 1.3.X changes | |
BusinessRule Open API | |
Admin :: Manage AI > Git Sync : FAQ issue | |
Delete bot with bot code, exposed for Triniti failing | |
If faq import fails, no error is displayed | |
Open API Audit for faq and message and Faq Validation | |
Admin Report is not loading for Record with 17 lakhs data | |
Analytics : My-sql fixes | |
Sonar fixes - Develop | |
Export data for user and customer report not working | |
Morfeus Admin : Portal One RB utterances file renaming | |
Workspace ACL is not working. | |
Indusind bank: Timestamp not updated post any updates in Admin Manage product rules | |
Faq bug fixes for checker and maker | |
Export / Import workspace issues | |
Maker - checker bug fixes for small talk and faq | |
Add Response Type in saving faq | |
Campaign Management | |
Kotak Bug Fixes | |
Saas Audit API Bug Fix | |
Two MorfeusSessionId is getting created in Websdk due to which logout template getting display without user login | |
SelfLearning Revamp : reverting back msearch query for producing ESQuery for top insight | |
SelfLearning Revamp : self learning index mapping alteration to see multiple word metadata information. | |
Admin -> Analyse Dashboard | |
SelfLearning Revamp : export not accounting for uncategorized selection in fetching documents from elastic search | |
When uncategorized is selected, filtered top insights show "top products/actions" which is wrong Confidence range meter should be fixed | |
SelfLearning Revamp : remove Uncategorized in filtered top insights when the user has already clicked on uncategorized from un-filtered top insights. | |
Change password option should not happen for Saas User | |
Quartz Jobs are not getting triggered | |
Workspace Creation Bug Fix | |
Bot image upload option should validate image type and extension - security fix - client side validation |
WebSDK
2.5.4
Date | Release Notes |
---|---|
11/12/2019 | 1. Identifying the webview with a class name identifier. 2. Scroll to End behaviour [Please check scrollToEnd config in the document] 3. PA-3.76: Application Behaviour in case of multiple notification before receiving response from hybrid |
2.5.3
Date | Release Notes |
---|---|
29/11/2019 | 1. PA-3311 - To support keyboardState[hidden], when the the key board state is passed from the Workflow Editor 2. PA-3292 - Pass xAPIKey & xAPISecret in Template API call 3. PA-3219 - When new resources are loaded, the cache mechanism we use trigger a Notification - on click on the notification the bot will reload and load the new resources 4. PA-3308 - null check for Debug Icon 5. PA-3300 - Anchor tag with hyperlink is converted to "here", now anchor tag is retained same, hyperlink is converted to here |
2.5.2
Date | Release Notes |
---|---|
14/11/2019 | 1. Error handling in showing the Debug Info icon, If the data is not a JSON - was throwing an error, handled it now. |
2.5.1
Date | Release Notes |
---|---|
07/11/2019 | 1. PA-3272 - Support for Video Template in WEBSDK 2. PA-3205 - Support for only button based flows 3. PA-3217 - [Axis] Monkey Testing - Handle in WEBSDK 4. PA-3220 - [Kotak] Google Speech Key Expire or limit reach speech icon should be removed. 5. A better error message for Voice SDK 6. File headers for all the files in COREWEBSDK |
2.5.0
Date | Release Notes |
---|---|
23/10/2019 | 1. PA-3202 - To show a Live Chat Notification with a chime sound, if the current tab is inactive. 2. WEB-1110: Support for nTrigger in push notification 3. PA-3208: Placeholder to replace the hyperlinks and speak the placeholder in the Speech Response 4. PA-3177 - Disabling all the buttons of Chat History Response 5. PA-3103 - Quick Tags - Can be configured with INIT_DATA 6. PA-3182 - Pass "Gmt-Offset" as header in every request of WEB-SDK |
2.4.0
Date | Release Notes |
---|---|
01/10/2019 | 1. PA-3079: Error, undefined and null checks in COREWEBSDK 2. PA-3.70: Error handling for Seamless Voice Integrations 3. PA-3099: To reduce the network requests, moving the SVG images to inline 4. WEB-1095 Handling of inData[deviceInfo] given by Native app so that the data will be available for all requests 5. [Axis] PA-3123: UI fix for button card Template 6. PA-3008: Dynamic Debug icon color - If a response is a result of Context expansion or ontology change the colour of info icon to green and purple respectively 7. PA-3149: Message type=voice in voice audit mode 8. PA-3053: Fix for lastInfoButton undefined 9. PA-2665: Two integration - iframe & inline. If iframe, chatBox & chatButton will the data param of window.options else the window.options is read/write using sessionStorage 10. PA-3133: Passing xAPIKey & xAPISecret for Chat History 11. PA-3117: If the keyboard state is defined in Workflow for a node [Disable], WEBSDK to honour that 12. PA-3142: Show Debug info for multiple calls of same API 13. PA-3053: Remove Teach API 14. PA-3049: Chat History - Anonymous, Implementation of mode flag 15. PA-3007: WEBSDK to npm 16. PA-2986 - Debug Info - To represent the JSON in table format 17. PA-3028 - WEBSDK Support for Template Editor, To parse the data & markup 18. PA-2886 - HDFC Sprint 2 ISG pre-login security issue 19. PA-3.71 - change showCrossOnPostlogin -> showCrossOnPostLogin 20. PA-3149: If the keyboard state is defined in Workflow for a node [Text], WEBSDK to honour that in Seamless Voice mode and TTS |
2.3.3
Date | Release Notes |
---|---|
03/09/2019 | PA-3053: Support for lastInfoButton |
2.3.2
Date | Release Notes |
---|---|
03/09/2019 | 1. PA-2986 - Debug Info - To represent the JSON in table format 2. PA-3028 - WEBSDK Support for Template Editor, To parse the data & markup |
2.3.1
Date | Release Notes |
---|---|
20/08/2019 | PA-2886 - HDFC Sprint 2 ISG pre-login security issue |
2.3.0
Date | Release Notes |
---|---|
06-Aug-2019 | 1. PA-2265 Need to reduce initParam 2. PA-2945 Implement new tab login feature for websdk |
1.3.20
Date | Release Notes |
---|---|
06-Aug-2019 | 1. [PA-2438] - need null check on pagename extraction 2. [PA-2675] - Feedback Icon is getting displayed for all transaction in middle of Transaction 3. [PA-2747] - Pass xAPIKey and XAPISecret in Server Sent Event Call 4. [PA-2760] - notifyOnLogin for Hybird should fired based on configuration "showCrossOnPostlogin" 5. [PA-2767] - Webview session Expire on PostLogin it is display LoginTemplate instead of StartOverchat 6. [PA-2904] - Support pageContext for init and authMessage API |
1.3.19
Date | Release Notes |
---|---|
04-Jul-2019 | 1. [PA-2722] - NotificationId is not getting passed to Morfeus init API 2. [PA-2733] - Change cust_seg - custSeg, because Morfeus is expecting custSeg |
1.3.18
Date | Release Notes |
---|---|
14-Jun-2019 | 1. [PA-2021] - MinimizedState issue 2. [PA-2080] - Quicklinks are not getting hide when bot is auto log out from a webview 3. [PA-2172] - Websdk :: Last login date not formatting properly 4. [PA-2262] - AutoSuggestion Stop working after first utterance 5. [PA-2263] - Mic icon is getting display on for IE & Firefox 6. [PA-2264] - IE10 browser is not supported 7. [PA-2307] - Unable to open webview in Hybrid App (Websdk 1.3.0. Release 13) 8. [PA-2337] - micSupported helper is failing on mobile devices 9. [PA-2350] - Footer placeholder is not coming 10. [PA-23.7] - When webview is opened after login user is able to logout but webview is not closing 11. [PA-2387] - [WEBSDK] iOS 12.2 safari does not support service worker 12. [PA-2398] - New build process of morfeuswebsdk 1.3 is failing 13. [PA-2495] - Pass xAPIKey and XAPISecret in Auto Suggest 14. [PA-2500] - Chat bot is not displaying message if triniti service are down 15. [PA-2610] - autoSuggestConfig - set the autoSuggestConfig only in init call 16. [PA-2705] - Minimize not working because top reference frame is referring to the same frame 17. [PA-2137] - Notify hybridsdk container once webview opens and closes 18. [PA-2345] - Pass showInWebview and update text message to native mobile container 19. [PA-2296] - Template Editor - RB List Template 20. [PA-2297] - Morfeus OAuth Proxy: webSDK support 21. [PA-2349] - Need core websdk changes for dynamically passing stylesheet url 22. [PA-23.7] - [Test] Template Editor - RB List & Transaction Confirmation Template 23. [PA-2377] - [WEBSDK] Support for Template Editor Templates 24. [PA-2378] - Integrate Template Editor to Triniti.ai Web 25. [PA-2379] - Integrate Template Editor to Workflow Editor 26. [PA-2380] - Integrate Template Editor to FAQ Response |
1.3.17
Date | Release Notes |
---|---|
25-Apr-2019 | [PA-2329] - Feedback.js is not getting called on click in 1.3 websdk |
1.3.16
Date | Release Notes |
---|---|
24-Apr-2019 | 1. [PA-2317] - [HDFC] Custom Templates are not getting updated 2. [PA-2329] - Feedback.js is not getting called on click in 1.3 websdk |
1.3.15
Date | Release Notes |
---|---|
11-Apr-2019 | 1. [PA-2284] - For custom templates, do proper referencing of apikey in template url 2. [PA-2277] - Give a call to native mobile container once there is successful init request made by websdk 3. [PA-2278] - For hybrid app, do authMessage call when user taps on received notification |
1.3.14
Date | Release Notes |
---|---|
28-Mar-2019 | PA-2201 - Code cleanup - SonarQube |
1.3.13
Date | Release Notes |
---|---|
22-Mar-2019 | [PA-1763] - Kotak - Utterance displayed in the bot is different from the utterance sent in the request [PA-2036] - Show more scroll button listener does not reinitialize after logout [PA-2126] - Micsupported helper returns true always for all browsers even if speech is not supported [PA-2201] - Code cleanup - SonarQube [PA-1630] - Add Feedback template for the THUMBS UP as well in the FAQs [PA-2135] - Allow webviews of different heights [PA-2152] - Add a wrapper for the Template Choice for - "bot-response__answer", like a Tab based layout, which should Default as the Tab Title |
1.3.12
Date | Release Notes |
---|---|
07-Mar-2019 | 1. [PA-2159] - [HDFC] Additional parameters for Quick Access PIN (or MPIN) Login 2. [PA-2136] - Morfeus WebSDK enhancement - Add X-API-SECRET parameter in header for every request & set withCredentials & crossDomain for AJAX requests |
1.3.11
Date | Release Notes |
---|---|
22-Feb-2019 | [PA-1801] - Image template type not rendering on websdk [PA-2033] - Feedback template must block all the special characters from feedback template and if user doesnot type and click on submit it should not show any submit message [PA-2092] - Live Agent connecting message displays twice [PA-2100] - Handle when quick_replies is not present in response in sdkIndex.js [PA-2093] - Adding background style support for chatBoxFrame [PA-2067] - Morfeus WebSDK enhancement - Add X-API-KEY parameter in header for every request. |
1.3.10
Date | Release Notes |
---|---|
07-Feb-2019 | [PA-1949] - Websdk changes for Triniti.ai [PA-1992] - Voice feature working incorrectly on tablets [PA-2027] - HB-219: VoiceSDK not initializing/responding on iPad [PA-2054] - Path of sw_cache.js is wrong in specified wrongly in sdk.js [PA-1759] - Introduce image compression into websdk build system [PA-1931] - Websdk Jenkins plan for nightly builds [PA-1936] - Documentation of web-sdk [PA-1991] - Perform logout from native [PA-2003] - SSE not getting closed and messages getting duplicated [PA-2007] - Accept customerinfo values for hybridsdk in postlogin bot and send to morfeus on every network call [PA-1785] - Create a reference project implementation on websdk - deployments-websdk [PA-1930] - Possible change in distribution system accessible via npm versions [PA-1932] - PR review strategies [PA-1934] - Custom grunt task for web-sdk - v1 [PA-1972] - Notify Hybrid when user logins [PA-2034] - Lighthouse integration in grunt-corewebsdk-build plugin for version 1.0.5 [PA-2035] - Test suite integration in grunt-corewebsdk-build plugin for version 1.0.5 [PA-2039] - Jenkins job for WEBSDK-1.3.10-SNAPSHOT [PA-2055] - [Behavioural Testing] Deploy morfeuswebsdk in another server and access it from another server in an iframe |
1.3.9
Date | Release Notes |
---|---|
16-Jan-2019 | 1. [PA-1895] - RELATED_FAQ need to be postback request not auto Text request 2. [PA-1897] - Dynamic WebSdk |
1.3.8
Date | Release Notes |
---|---|
11-Dec-2018 | ABP2-90: For Hybrid - When clicked on quick links, adding a disabled class and then removing in ajax success PA-1777: Removed ajaxq and adding block in feedback element PA-1777: Implementing ajaxq and making the callService API async false PA-1713: Fixing the postMessage call, exposing the window.options.customerId & appSessionToken to window and removed the parsing logic for the configData PA-1799: Revert code due to double message bug PA-1799: Fixed missing closing brace in switch statement PA-1713: initialize websdk without init and take init params from client PA-1740: Add comments/descriptions PA-1740: Improved efficiency of code by using modular functions PA-1740: Use minified version of siriwave library file PA-1817: Improve conditional statements/logic to apply anchor class PA-1740: Add siriwave library, update voice UI functionality for webSDK and hybrid app PA-1799: Update function when loading chat bot for the first time to not focus on the query box PA-1713: read sw file and remove cache grunt task PA-1799: Add functionality improvements to toggle show/hide for chat bot PA-1789: Add condition to check for 'placeholder-faq' intent name PA-1789: Add solution for Case 1 PA-1777_handle_csrf_token_for_feedback: add transperancy style for chatbox PA-1589_120: empty string in case of long press of del button WEB-1589: toggle paste action for otp PA-1780: Need intents from Morfeus for FAQ's PA-1771: FIXED - Log out button doesn't disappear when user is logged out PA-1777_disbale_TTS_based_on_confg PA-1777_handle_xcsrf_for_feedback PA-1690: proper order of messages in session history PA-1660: handle last login for session history PA-1650: revert sdkType changes |
1.3.7
Date | Release Notes |
---|---|
13-Nov-2018 | PA-1740: Add custom waveform functions and integrate custom VUI code PA-1710: Add comments for functions PA-1710: Add variable anchorToTop for conditional checking PA-1710: Update function based on client specification PA-1710: Add function to allow first message to anchor to top of chat container" PA-1684: ssl check fail meeage PA-1689: looged into different device error on ios hybrid PA-1676: Add null condition check for scrollToEnd PA-1676: Update logic statement for scrollToEnd function PA-1675: Update logic statement for scroll trigger PA-1856: scroll changes final PA-1856: scroll messgaes WEB-1083:removed hardcode message WEB-1083:fix for security vulnerability PA-1650: handle sdktype for hybrid PA-1856: scroll module WEB-1081: handle last login date for chat history WEB-1080: last login date in chat history AMC-189: Changed Event name to hybridMenuAction AMC-198: Adding postEvent method in sdkIndex and websdkEvents |
1.3.7
Date | Release Notes |
---|---|
09-Oct-2018 | WEB-1079:wrong xcsrf token getting sent to morfeus when chathistory api WEB-1078_webview_safari_issue WEB-1064: Header missing WEB-1077: Prevent double tap WEB-1072: disable quick tags before init WEB-1072: unecessary code removed WEB-1072: notify on logout WEB-1072: timeout not getting called appropriately WEB-1073: Hardclose WEB-1071:disable input box before init WEB-1068: access of xsrf token in webview for hybrid sdk" WEB-1066: syntax error correction WEB-1063: read value of timeout from init" WEB-1063:custom timeout for response render WEB-1061: Hybrid intigration WEB-1061: Callback |
1.3.5
Date | Release Notes |
---|---|
11-Sep-2018 | PA-1450: csrf token PA-1450: Return csrf token WEB-1052: Chat history WEB-1032: Enable inputbox after init success WEB-1052: Spinner template WEB-1051: Multiple auth message call Updated payload data for WEB-1049 WEB-1049: wrongly removed code WEB-1049: display the title of the element instead of button name WEB-1048: google analytics in websdk-hybrid WEB-1045: Concurent logout WEB-1045: Show logout message WEB-1043: Fix typo WEB-1044: Remove wrong api call WEB-1043: postlogin for anonymous user21 WEB-1036: Cross button WEB-1031: notify on logout for webview cases WEB-1038: Quickinit postback value |
1.3.4
Date | Release Notes |
---|---|
14-Aug-2018 | WEB-1021: Countrycode WEB-1000: MAsking WEB-1021: Country code WEB-244_video_player_in_cards WEB-990: Chat history WEB-1021: Country code WEB-999: Country code3 WEB-1021: List ttitle WEB-244: support media template in websdk WEB-244_video_player_template KOT-561: Ios WEB-1016_handle_postLoginConfig_from_response WEB-1014_config_for_startOverChat WEB-1015_chat_history_disable WEB-1014: remove disablePingPostLogin WEB-1014: pass response WEB-1104: handle infinite init WEB-1011: callback on idle timeout WEB-1005: Show utterance for postback WEB-806_i18n_implementation WEB-1002: Show postback utterance WEB-1000: Mask otp WEB-987_use_existing_function WEB-987_resolved_conflict WEB-970: removed extra comma WEB-986: Logout modal WEB-985: Initial chat message for fallback WEB-970_retireJS WEB-809: without croppie WEB-982_merge_conflict_resolve2 |
1.3.3
Date | Release Notes |
---|---|
10-July-2018 | WEB-918: Slim scroll WEB-953_enable_buttons WEB-962: feedback thumbs not disabling WEB-956: Payment url WEB-956: payment url change WEB-942: mexpire check WEB-942: logout callback to native container of mobile6 files changed WEB-479: resolve conflict and error fix4 3 WEB-958: Allow special chars WEB-887: Chat history WEB-944: destroyon close WEB-941: Voice issue WEB-886: open link in target iframe WEB-941: Display error message WEB-941: Custom error handling WEB-940: Hide chatbox WEB-934: Offline WEB-932: Error message WEB-932: Error response WEB-932: Fix typo WEB-932: startoverchat3 WEB-793:cherry pick on WEB-793: voice support for hybrid app WEB-937:focus on input if text card is coming in last response WEB-939: webview logout message WEB-936: Unlinkify email id WEB-935: Autosuggestion exception WEB-936: Remove linkifying of email WEB-935: remove exception WEB-928: Logout bubble with message WEB-907_utterance WEB-924: Flickering issue WEB-923: Ie issue5 WEB-919: external utterance |
1.3.2
Date | Release Notes |
---|---|
12-June-2018 | WEB-896: Cards template WEB-823_remove_unwanted_directories340 4927 WEB-912_added_web_url_to_unsupported_types WEB-896: Slider WEB-913: allow permission WEB-902: preserve previous message id WEB-883_diff added WEB-904: update version WEB-895:quick links not visible on ie102 WEB-881:add removeStorage WEB-881_ga_undefined2 1 WEB-885: authmessage csrf WEB-885 retrybot added in window options WEB-885: Error handling2 WEB-765: jsdoc coments WEB-765: Template2 WEB-765: Minimized state 9 WEB-879: Feedback template for last message WEB-870_cherry_pick_feedback_changes WEB-449: Login based session handling WEB-680: check for initial cards count WEB-680: else if statement added WEB-868: Feedback icon for first template only WEB-680: make it work on config3 3 WEB-859 missing variable WEB-859 condition missing WEB-859: select utterance display2 WEB-859: Faq template WEB-861: enabling of cards if not action taken in webview and wrong disabling of buttons WEB-866: Http errors |
1.3.1
Date | Release Notes |
---|---|
15-May-2018 | WEB-680: logic correction WEB-680: remove timeout from scrollToEnd WEB-858: Resolve conflicts WEB-858: Feedback close WEB-858: Feedback template WEB-859: Typo WEB-859: Display utterance WEB-835: Error handling WEB-680: scroll to first message and insert a show more button to load other messages6 10 8 WEB-859: button uttereance WEB-585: include precompile templates js WEB-859: select utterance display WEB-585: remove images WEB-585:chart libs removed WEB-585: handlebars libs inclusion grunt revert for handlebars and importTemplate fn for customTemplate WEB-858: Feedback template WEB-585: reduce websdk size WEB-858: Feedback partial WEB-835: Handle html reposne WEB-828 enable slim scroll plugin WEB-841: Cache issue WEB-827: chatbuttonwindow bootom height WEB-837: teach api error handling21 WEB-827: Chatbutton botom height WEB-824: Quick tag issue WEB-836: Ssl pinning postmessage fix PA-1017 string matching to be done case insensitive WEB-680: toggling of card status4 WEB-680: logical error fix IVA-1283: do not addrress response coming after logout5 3 WEB-680: handle typinf animation case WEB-789: Ssl pinning check WEB-680: remove scroll for typing animation when focus on card on start WEB-680: check for cardScrollingConfig WEB-680: reorder check conditions WEB-789: SSL pinning WEB-680_scroll_to_start KOT-294: Updated external utterance3 2 KOT-294: External param WEB-826: Remove typing animation during empty response WEB-282: Close icon in hybrid KOT-362: Sdk type to webview WEB-772: Logout based on header WEB-771: when location permission is in blocked state render a bot bubble with configured message3 2 WEB-680_scroll_to_start WEB-821: Cherrypick code from develop to 1.1.0-RC PA-992 1.2.0-SNAPSHOT HU-77: show check image on click of button5 PA-992 1.1.0-RC KOT-281: Fix typo WEB-765: Remove unnecessary line KOT-281: Cross icon |
1.3.0
Date | Release Notes |
---|---|
10-Apr-2018 | WEB-808: Slick card issue in firefox WEB-807: Ntuc ie issue KOT-293 -> Webview X-CRSF token is share with SDK on success AJAX call WEB-794: postbackUrl functioning WEB-772: Logout header WEB-772: Logout using m-expire header13 KOT-229 reverted changes WEB-770: Change to websdk KOT-229 -> Last Login Date format change based client4 WEB-770: External utterance KOT-228: Close button KOT-217 - sdkIndex.js KOT-236: Override hidechatbox WEB-772: Replace /n IVA-887: Mozilla splash screen WEB-764: logout url WEB-770: Authmessage along with init WEB-764: login logout api endpoint change IVA-887: Splash screen WEB-753: Linkify buttoncard template text kotak-233 concurrentLoginEvent |
1.2.3
Date | Release Notes |
---|---|
13-Mar-2018 | WEB-737 logic correction for disabling buttons WEB-737 convert data-radio value to boolean WEB-735: capture quick link names WEB-645: analyticsTemplate added INDUSIND-1420: Change permission image KOT-204: Hide Emoji templateon click of a emoji IVA-767: Cahnge to one line variable declaration IVA-767: Alignment issue reverted IVA-767: Alignment issue IVA-767: Feedbackmodal enable onclick of cross button INDUSIND-1446: Remove text active.ai from permission modal WEB-544: change for button life cycle for handling show-info buttons3, 1 WEB-619: Notification check WEB-619: User will be only asked if permisssion is not granted WEB-619: Default style change of permission ui , WEB-619: Add new ui for permission in push WEB-645: add analytics script in grunt config and insert analytics script WEB-544: button life cycle for carousel card buttons WEB-654: missed the method rename WEB-544: disable clicked button for carousal card WEB-544: proper place for calling disableCarouselCardButtons fn WEB-544 added JSDoc WEB-544: double parse stringified button payload WEB-544: apply button life cycle to carousel template buttons WEB-645: add extra params to calling processResponse WEB-645: port ga to develop WEB-654: Close webview from post message WEB-641: display appropriate default error message WEB-641: display error template on ajax call fail WEB-628_category title does not appear in submenu WEB-630 do not render quick links when quick links is empty in config or override default is set to true , |
1.2.2
Date | Release Notes |
---|---|
13-Feb-2018 | WEB-605 chatBoxUi.js WEB-632 check auth state and toggle close button WEB-629_webviewheader_proper_check WEB-623 set xcsrf token for hybrid app from webview and send xcsrf token to webview INDUSIND-1420: webheader close K)T-130: revert changes in sdk.js KOT-130: Change backbutton action WEB-623 recieve and set aisession from webview for hybrid app WEB-596: Splash screen hybrid config WEB-623: datatype external_url for develop WEB-594: Hide the manualchat icon during ai chat WEB-594: Change bot icon in manualchat WEB-551 changed html structuring and styling changes4 WEB-621: Remove div WEB-551 webview header WEB-621: Remove unnecessary if block WEB-620 changed css property for lockIcon div that it does not hide the chatbox WEB-593: Update the if block WEB-593: Fix typo intentname WEB-593: Add false condition WEB-593: Add else block WEB-593: Toggling manualchat WEB-593: Toggling autosuggestion during manualchat WEB-617 replaced host with hostname WEB-613: For develop4 ABP-1859: Fix typo ABP-1859: Remove trailing and leading specialchars WEB-605 removed kotak specific splash screen code WEB-598 introduced location.port in identifying parentDomain WEB-601: For develop WEB-598 attach parent domain value to query params web-597 WEB-500: Remove unnecessary space WEB-500: Upadte the file WEB-500: Typo fix WEB-500: Remove typo WEB-500: Change spacing WEB-500 removed data index attribute WEB-500 back button fix and use of images WEB-602: For develop WEB-500 handle back button WEB-499: Case checking WEB-599: Type auto for develop WEB-592: Fix typo WEB-592: call splashscreen.hide WEB-455: Remove typo WEB-500 popular query toggle display css changes for scroll8 1 WEB-455: Add splash screen module WEB-455: Rename splash screen module and template WEB-455: Change template name to splash screen WEB-455: Change grunt file WEB-500 adjust block submenu and list submenu and styling WEB-455: Configure splash from initdata WEB-455: Remove splash screen rendering from chatbox.js WEB-455: Add splash screen module WEB-595 changed header key m_auth to m-auth WEB-592: Open chatbot onclick of notification and remove the splash screen WEB-498: Change initData position from callservice to processresponse5 1 8 WEB-498: Fix a typo WEB-450: Change init config WEB-500 styling enhacements for popular query menu options and popular query WEB-500 click for popular query and styling WEB-498: Add toggle popular query option 1 WEB-498: Add class submenu WEB-582 chatbutton and chatbox to be fixed on scroll2 WEB-498: Add popular query div to footer template WEB-498: Craete basic skeleton WEB-529: Move window.init to onload function WEB-581: Add jsdoc2 WEB-581: Autosuggest feature for develop web-582 WEB-582 WEB-561: Change serviceworker file2 web-527 local bundle websdk WEB-558:Add deserialization function in serviceworker removed trailing which is failing the json parse |
1.2.1
Date | Release Notes |
---|---|
09-Jan-2018 | Change devicid typo Remove unnecessary if else condition Fix registerdevice failing Modularized the function Add notificationid and notificationparameter reading within websdk Copying serviceworker Fix the height issue onclick of chatbutton Fix typo Stringify the initandshow param Fix init and show bug Remove typing animation for button type postbackUrl Change authmessage payload Add double stringify for postbackUrl Change code according to new payload Fix typo Add opening of external link with postback functionality Modify service worker file to take payload from data message Modify files according to push notification payload for authmessage and init serverSent.js changes as per PR Uodate broken build commit commit and code enable card buttons handle anchor tag in sub title Accepting window height from websdk's initialize config passing Stringified data in websdkdata event button life cycle Change object.assign to jquery.extend for ie fix docs update servet Sent callback removed view_notification serverSent |
iOS SDK
Name | Release Version | Date | Release Notes |
---|---|---|---|
MorfeusMessagingKit | |||
2.5.0 | 01/06/2020 | New Api to triggerInappBrowser New Activity for AppBrowser New method to remove right button of header Notification Enhancement |
|
2.4.20 | 10/31/2019 | Fetcing RSA URL for router.triniti.ai domain set sessionID in payload for onSearchResponse |
|
2.4.10 | 10/17/2019 | - Native Voice feature - New API to - enum SpeechProviderForVoice : SpeechProviderNative, SpeechProviderGoogle - Default value for SpeechProviderForVoice is SpeechProviderGoogle - timestamp added as string value alongwith the mobileios.htm url |
|
2.4.00 | 10/01/2019 | Sync MFSDKHybridKit version with Morfeus platform | |
1.3.52 | 09/18/2019 | Screen Timeout issue Giving callback to web when app goes Background to Foreground |
|
1.3.50 | 08/26/2019 | - in data parameters added to pass extra user information to the bot | |
1.3.48 | 06/27/2019 | Remove reInitiateChatBot method - added logs inside hybrid kit |
|
1.3.47 | 05/28/2019 | New property to check QAP is enable or not. Replace method getDataFromNative to getFromNativeWithCallBack |
|
1.3.46 | 05/27/2019 | An api to let websdk get native stored data | |
1.3.44 | 05/21/2019 | Pass customerInfo to websdk only when passed from client app. | |
1.3.42 | 05/02/2019 | New API(enableScheduledBackgroundRefresh) to enable scheduled background refresh. Enables native header based on web config. Block user from using native buttons when webview shown during chat. Integrate MFNotification module. Change websdk update dialog. |
|
1.3.40 | 03/08/2019 | Support Trinti websdk New API to set workspace Id and open chat screen. Overlay native header when opened webview inside websdk. Root check false positive. Extract MFSecurity module. |
|
1.3.20 | 02/13/2019 | Native header can be customize by setting MFSDKHeader property | |
0.0.30 | 12/26/2018 | Passing device information data to websdk | |
MorfeusVoiceKit | |||
2.4.10 | 10/16/2019 | Native ios speech recognition support | |
2.4.00 | 10/01/2019 | Sync MFSDKVoice version with Morfeus platform | |
1.1.7 | 09/18/2019 | New API to set Speech Rate setSpeechRate(float 1.0f) Removed spaces while STT for mobile no. & DOB Added spaces while TTS for mobile no. Handle STT Email issue |
|
1.1.6 | 02/28/2019 | Format last recognised text. | |
1.1.5 | 02/01/2019 | Consider intermediate speech text to return most accurate result Add max speech limit to audio recorder to reduce OUOUT_OF_RANGE error. |
|
1.1.3 | 10/18/2018 | Increase suggestion limit to 150 | |
1.1.0 | 10/17/2018 | AAMSD-604: Use suggestion provided through MFSpeechSuggestion.json API to pass speech context details with STT request. |
|
1.0.4 | 07/31/2018 | SpeechConfig allow Text-To-Speech language code with country detail | |
MFNotificationKit | |||
1.0.0 | 01/06/2020 | Logs added for methods and proper comments provided | |
0.1.0 | 06/11/2019 | Release MFNotificationKit |
Android SDK
Name | Release Version | Date | Release Notes |
---|---|---|---|
MorfeusMessagingKit | |||
2.5.0 | 01/06/2020 | New Api to triggerInappBrowser New Activity for AppBrowser New method to remove right button of header Notification Enhancement |
|
2.4.20 | 10/31/2019 | Fatcing RSAURL for router.triniti.ai domain set sessionID in payload for onSearchResponse |
|
2.4.10 | 10/17/2019 | Native Voice feature New API to setSpeechProviderForVoice(MFSDKSessionProperties.SpeechProviderForVoice.{ENUM}) enum SpeechProviderForVoice : GOOGLE_SPEECH_PROVIDER, ANDROID_SPEECH_PROVIDER Default value for SpeechProviderForVoice is GOOGLE_SPEECH_PROVIDER New API to enableNativeVoiceOffline(boolean) Default value for enableNativeVoiceOffline is false |
|
2.4.00 | 10/01/2019 | Sync MFSDKHybridKit version with Morfeus platform | |
1.3.52 | 09/18/2019 | Screen Timeout issue Giving callback to web when app goes Background to Foreground |
|
1.3.51 | 09/13/2019 | Added logoutWebSdk() onBackPressed | |
1.3.50 | 08/26/2019 | New API to createPDFFromBase64() New Expose method setFileProviderAuthority() to MFSDKProperties |
|
1.3.49 | 07/30/2019 | New inDataExtraInformation properties to MFSDKSessionProperties | |
1.3.48 | 06/27/2019 | Remove reinitiateChatBot() method from onPageFinished() in ChatActivity Commented MFNotification code from voiceSdkInitialise() |
|
1.3.47 | 05/28/2019 | New property to check QAP is enable or not. Replace method getDataFromNative to getFromNativeWithCallBack |
|
1.3.46 | 05/27/2019 | Handle Location Permission for webview. New API to allow WebSDK to fetch stored data from native. |
|
1.3.45 | 05/24/2019 | New API to set left and right padding in header. Remove unused permission from Android Manifest. |
|
1.3.44 | 05/21/2019 | Pass customerInfo to websdk only when passed from client app. | |
1.3.43 | 05/09/2019 | New API to set statusbar color. Remove chat activity status bar color. |
|
1.3.42 | 05/02/2019 | New API(enableScheduledBackgroundRefresh) to enable scheduled background refresh. New API(allowAllCertificate) to accept all ssl certificates. New header api to adjust title image margin. Enables native header based on web config. Block user from using native buttons when webview shown during chat. Integrate MFNotification module. Fixed safetynet unknown host exception. Change websdk update dialog. |
|
1.3.41 | 03/23/2019 | OkHttp duplicate class conflict issue. | |
1.3.40 | 03/08/2019 | Support Trinti websdk New API to set workspace Id and open chat screen. AAMSD-717 Overlay native header when opened webview inside websdk. AAMSD-179 Root check false positive. Extract MFSecurity module. |
|
1.3.30 | 02/25/2019 | Integrated MFNotification-0.1.0 | |
1.3.20 | 02/08/2019 | New API to configure exit dialog. Pass init properties with invokeInit to WebSDK. Allow websdk to store applicationId and channelId into local storage. Include kotak deep linking change. Validate passed sdk properties and dispaly error message on fail. Added new list of error codes Added new actionbar config properties. New API to configure chat header UI. Handle single customerId rsa encryption. Handle websdk update in runtime. Updated logger, logging all websdk-native interaction. |
|
1.3.10 | 02/01/2019 | Allow client to pass extra user properties Handle encryption for single customerId based login Initialise websdk using new invokeInit function Distribute HybridSDK through gradle artifactory RSA API Call Optimisation Updating NavigationBar for logout/login scenario Google Safety net API Provision to set SpeechToText & TextToSpeech language code New API to configure language. Consider port number given with bot url |
|
MFNotification | |||
1.0.0 | 01/06/2020 | Fixes Background & Forground issues Added Progaurd Rules for MFNotification |
|
0.1.0 | 06/11/2019 | Release MFNotification | |
MFSDKVoice | |||
2.4.10 | 10/16/2019 | Native Voice feature New API to setSpeechProvider() & enableNativeVoiceOffline(boolean) Default Speech Provider is GOOGLE_SPEECH_PROVIDER Default value for enableNativeVoiceOffline is false |
|
2.4.00 | 10/01/2019 | Sync MFSDKVoice version with Morfeus platform | |
1.1.7 | 09/18/2019 | New API to set Speech Rate setSpeechRate(float 1.0f) Removed spaces while STT for mobile no. & DOB Added spaces while TTS for mobile no. Handle STT Email issue |
|
1.1.6 | 02/28/2019 | Format last recognised text. | |
1.1.5 | 02/01/2019 | Consider intermediate speech text to return most accurate result Add max speech limit to audio recorder to reduce OUOUT_OF_RANGE error. |
|
1.1.4 | 12/04/2018 | Crash on Samsung Galaxy J2 (OS 5.1.1) | |
1.1.3 | 10/18/2018 | Increase suggestion limit to 150 | |
1.1.2 | 10/18/2018 | SDK Listener nullablity issue | |
1.1.1 | 10/17/2018 | SpeechConfig obfuscation issue. | |
1.1.0 | 10/17/2018 | Use suggestion provided through MFSpeechSuggestion.json API to pass speech context details with STT request. |
|
1.0.5 | 10/17/2018 | Random crash on 30 min interval. Trim recognised mobile number. |
|
1.0.4 | 07/31/2018 | SpeechConfig allow Text-To-Speech language code with country detail | |
1.0.3 | 07/16/2018 | Fixes AMC-12 |
Retail Banking
Coming Soon !!
Install, Upgrade Manager
Welcome to Manager installation guide. The access to artifactory links will be provided from your Active.ai sales representative.
OS Compatibility
Manager is certified on the operating systems below
- ubuntu:20.04 & Above, RHEL:8 & above CENTOS:8 & above
OS Dependencies
Please install the following OS dependencies before proceeding
- gcc 8.5
- glibc-2.28
- curl
- openjdk-8-jre-headless
- python3-pip
- python38-pip-19.3.1-4.module_el8.5.0+896+eb9e77ba.noarch
- python38-devel-3.8.8-4.module_el8.5.0+896+eb9e77ba.x86_64
- python38-libs-3.8.8-4.module_el8.5.0+896+eb9e77ba.x86_64
- python38-setuptools-wheel-41.6.0-5.module_el8.5.0+896+eb9e77ba.noarch
- python38-setuptools-41.6.0-5.module_el8.5.0+896+eb9e77ba.noarch
- python38-pip-wheel-19.3.1-4.module_el8.5.0+896+eb9e77ba.noarch
- python38-numpy-1.17.3-6.module_el8.5.0+896+eb9e77ba.x86_64
- python38-3.8.8-4.module_el8.5.0+896+eb9e77ba.x86_64gcc-8.5.0-4.el8_5.x86_64
- gcc-c++-8.5.0-4.el8_5.x86_64
- libgcc-8.5.0-4.el8_5.x86_64
- glibc-common-2.28-164.el8.x86_64
- glibc-2.28-164.el8.i686
- glibc-headers-2.28-164.el8.x86_64
- glibc-all-langpacks-2.28-164.el8.x86_64
- glibc-devel-2.28-164.el8.x86_64
- glibc-2.28-164.el8.x86_64
- virtualenv
Manager Dependencies
If your server does not have access to internet and active ai aritfactory network, please download the following dependencies before proceeding with the installation. Please refer to resources for details on Manager Dependencies, External Dependencies and Generic AI Models
Installation
Proceed with installation only if you have access to the internet and active ai artifactory to download the dependencies automatically or you have downloaded the dependencies in the previous
Download wheel
curl -u<USERNAME>:<PASSWORD> -O "https://artifacts.active.ai/artifactory/Kotak-deployments/release/production/triniti455-final/cypher-2.1.2_Release03_10_2022-py3-none-any.whl"
Download pretrained models
curl -u<USERNAME>:<PASSWORD> -O "https://artifacts.active.ai/artifactory/Kotak-deployments/triniti45-uat/triniti45_models_080522.zip"
unzip triniti45_models_080522.zip
Create a virtual environment and activate it
virtualenv -p /usr/bin/python3.8 manager_env echo "source manager_env/bin/activate" > activateManagerEnv.sh . activateManagerEnv.sh
Install other dependencies
pip3 install cypher-2.1.2_Release03_10_2022-py3-none-any.whl Edit the Config.yml file cd /<triniti_install_folder>/manager_setup/manager_env/lib/python3.8/site-packages/onprem vi config.yml update these path as per your setup
payload_store : /
[program:manager_8090]
- environment=MANAGER_PAYLOAD_DATA_HOME=/
### Starting and Stopping Manager
<ol>
<li>activate the virtual environment</li>
<li>source /bin/activate</li>
<li>Run supervisord -c supervisord.conf ( start the Manager server in supervisord daemon mode)</li>
<li>To Manage Manager Via supervisor</li>
<li>Supervisorctl status (Check Manager service status) supervisorctl restart < manager_8090> (restart Manager services)</li>
<li>supervisorctl stop (stop Manager services) supervisorctl start (start Manager services)</li>
</ol>
### Docker Installation
<ol>
<li>docker pull 940330296631.dkr.ecr.ap-southeast-1.amazonaws.com/Manager:omprem1</li>
<li>docker run -itd -p 8090:80 -v /manager:/data -v /var/log/supervisor:/var/log/supervisor --name onprem-manager --restart=always -e MANAGER_DATA_HOME=/data -e MANAGER_DB_HOME=/data -e MANAGER_PAYLOAD_DATA_HOME=/data/store 940330296631.dkr.ecr.ap-southeast-1.amazonaws.com/manager:onprem1</li>
</ol>