Monday, April 8, 2019

Installing BotLibre Enterprise Bot Platform on Amazon Lightsail

Amazon Lightsail is a lightweight cloud website hosting framework based on the Amazon Web Services (AWS) platform. Lightsail can help to quickly jumpstart your project  with a virtual machine, SSD-based storage, data transfer, DNS management, and a static IP for an affordable price.

This guide is to work through the steps to install Bot Libre Enterprise Bot Platform to the AMS Lightsail.

Step 1. Create an Amazon Lightsail instance

Go to Amazon Lightsail website and register a new AWS account if you do not have one yet.

https://lightsail.aws.amazon.com/ls/webapp/home

then login and start to create an instance. Choose a OS Only instance using CentOS 7 Linux system:

Bot Libre requires a Tomcat Web Server, Python Server, and a database to run. To host Bot Libre system you require a dedicated server or VM with minimum 8gb of RAM.  For demonstration purpose, we are using the basic 512MB configuration as following:

After the service is being created, click ‘Connect using SSH’ to connect to it.

Lightsail assigns a public IP (e.g. 35.183.67.175) to the instance, and we need the IP to config the web server later on.

After connecting to the instance via ssh, from the terminal, you may start to setup the Java, Ant, Tomcat, Postgres, Python and finally deploy the botlibre web app to Tomcat.

$ sudo su root
$ yum install wget  (install wget tool)

Step 2 - install Java and Ant

Install the Java JDK 1.8 (latest dot release).

$ cd /opt
$ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http://www.oracle.com; oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz"
$ tar xzf jdk-8u201-linux-x64.tar.gz
$ cd /opt/jdk1.8.0_201
$ alternatives --install /usr/bin/java java /opt/jdk1.8.0_201/bin/java 2
$ export JAVA_HOME=/opt/jdk1.8.0_201

Install ant

$ cd /opt
$ wget https://www-eu.apache.org/dist//ant/binaries/apache-ant-1.10.5-bin.tar.gz
$ tar xfv apache-ant-1.10.5-bin.tar.gz
$ export ANT_HOME=/opt/apache-ant-1.10.5
$ export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH

Step 3 – Tomcat Install the Tomcat 8 web server.  

$ cd /opt
$ wget https://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.39/bin/apache-tomcat-8.5.39.tar.gz
$ tar xzf apache-tomcat-8.5.39.tar.gz
$ export TOMCAT_HOME=/usr/local/tomcat8
$ mv apache-tomcat-8.5.39 $TOMCAT_HOME
$ vi $TOMCAT_HOME/bin/setenv.sh  (create a new setenv.sh file)

>> add the following JVM option to increase the max memory size in your setenv.sh export JAVA_OPTS="-server -Xmx8g"

$ vi $TOMCAT_HOME/conf/web.xml

>> insert the following XML in your web.xml to enable cors filters (required for JavaScript access)

     <filter>
     <filter-name>CorsFilter</filter-name>
        <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
        <init-param>
         <param-name>cors.support.credentials</param-name>
            <param-value>false</param-value>
        </init-param>
    </filter>
<filter-mapping>
     <filter-name>CorsFilter</filter-name>
        <url-pattern>/rest/*</url-pattern>
     </filter-mapping>
     <error-page>
        <error-code>404</error-code>
        <location>/404.jsp</location>
     </error-page>
$ vi $TOMCAT_HOME/conf/server.xml
>> update connector port 8080->80, 8433->433
>> add to connector, URIEncoding="UTF-8"
>> update host- <public ip> > autoDeploy=”false”

Start tomcat web server:

$ $TOMCAT_HOME/bin/startup.sh

Go to a browser and check if the server is up and running at http://<public-ip> (e.g. http://35.183.67.175)

Troubleshooting: If you do not see the server running, check the server log at $TOMCAT_HOME/logs/catalina.out

Then shutdown the server:

$ $TOMCAT_HOME/bin/shutdown.sh

Step 4 Install PostgreSQL database

>> install postgres database and init it
$ cd /otp
$ rpm -Uvh http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-3.noarch.rpm
$ yum install postgresql94 postgresql94-server postgresql94-contrib
$ /usr/pgsql-9.4/bin/initdb /var/lib/pgsql/9.4/data
>> Verify database starts/stops/restart:
$ service postgresql-9.4 start
$ service postgresql-9.4 stop
$ chkconfig --levels 235 postgresql-9.4 on
>> Set database password:
$ service postgresql-9.4 start
$ sudo -u postgres psql postgres
\# \password
>> enter new password “postgres” twice
\# \q  (exit)
Step 5. Install Python (Optional)

Bot Libre uses a separate Python web server to support deep learning analytics. Python is not required for bots or NLP, only deep learning analytics such as image classification. If you do not require deep learning you can skip this step.

Run the following commands to install Python, Pop, Tensorflow, Flask and Psycopy2.

$ yum update
$ yum install yum-utils
$ yum groupinstall development
$ yum -y install https://centos7.iuscommunity.org/ius-release.rpm yum -y install python36u
$ yum -y install python36u-pip
$ yum -y install python36u-devel
$ pip3.6 install tensorflow==1.7
$ pip3.6 install flask
$ pip3.6 install psycopg2
$ pip3.6 install pillow
$ pip3.6 install lxml
$ pip3.6 install Cython
$ pip3.6 install jupyter
$ pip3.6 install matplotlib
$ pip3.6 install pandas
$ pip3.6 install opencv-python

Then you may copy the /python from the BotLibre install to /usr/local/python

$ mv <BotLibreInstallRoot>/python /usr/local/python
>> start the python server
$ python3.6 /usr/local/pythonn/app.py

Step 6. Install BotLibre

The Bot Libre application is a Java “war” file. A war file is a zip file that contains a website and Java libraries.

There are several installation steps:

  • Copy library jars to /usr/local/tomcat8/lib (from bot libre lib sub directories, do not copy botlibre-ai.jar, do not copy botlibreplatform.jar, do not overwrite any files already in tomcat lib)
  • Copy speech voice files to /usr/local/tomcat8/bin/lib (unzip speech voice zip into lib voices directory)
  • Ensure war file is configured with correct database password, domain name, and this must be set in the Site.java file, and the war must be recompiled using the build.xml ant task in Eclipse)
  • Shutdown Tomcat server: $TOMCAT_HOME/bin/shutdown.sh
  • Deploy war file by emptying the $TOMCAT_HOME/webapps/ directory, and copying the botlibreplatform.war to $TOMCAT_HOME/webapps/ROOT.war.
  • Start Tomcat Server: $TOMCAT_HOME/bin/startup.sh
  • Open http://<public-ip> e.g. http://35.183.67.175/

Then you may refer to the generic BotLibre install guide to login as admin user (default password is password), and create workspace, create bot, config bot and train bot.

 

Monday, June 25, 2018

Introducing the new website for Paphus Solutions

Introducing the new website for Paphus Solutions. www.paphussolutions.com

Paphus Solutions in the company that develops the Bot Libre bot platform. Paphus Solutions Inc. is a Canadian corporation that specializes in bots, artificial intelligence, and deep learning products and services.

We provide consulting, training and development services in the field of bots, artificial intelligence, and deep learning.
Bots & AI can be utilized in any industry. We provide solutions globally in all industries including customer service automation, sales & marketing automation, social media automation, sales optimization, market forcasting, automated securities & crypto currency trading, and many more.

We provide the following services :

  • Chat bot design and integration, web, mobile, and social media
  • Social media automation, Twitter, Facebook, Telegram, Skype, Kik, WeChat
  • Customer service automation, live chat, forums, email
  • Technical support automation
  • Sales automation
  • Market forcasting
  • Automated securities & crypto currency trading
  • Image, audio, video classification and processing
  • NLP and data analysis
  • Deep learning model and network development
  • 3D avatar design
  • Mobile app development (Android, iOS)
  • Web development

Contact services@paphussolutions.com for more information. Or Chat live here
Or Chat with Paphus, the automated customer service agent for Paphus Solutions.

Monday, May 21, 2018

How to connect IBM Watson to Facebook, Twitter, Telegram, Skype, Kik, WeChat, web, and mobile using a Bot Libre proxy bot

IBM Watson is a brand that includes a set of products and services, made famous by its Jeopardy prowess. Watson includes a chatbot platform and conversational API.

You can access Watson's API from your own web server through any programming language. Bot Libre lets you create a "proxy" bot that forwards request to your Watson bot. This lets you leverage Bot Libre's many integrated services including integration with social media platforms such as Facebook, Twitter, Telegram, Skype, Kik, WeChat, and integration with web and mobile speech and 3D animated avatars.

To get started with Watson you can create an IBM Bluemix account here. Once you have created and trained your bot, you can access its web API credentials to connect it with Bot Libre.

This will give you the bot's web API URL, and the API user and password. Copy these and return to Bot Libre.

On Bot Libre create a new bot, and select the "watson_proxy_template" template. This will give you a new chatbot that has a single Self script the forwards all requests to the Watson API.

  • Click on your bot's "Admin Console" (gear button).
  • Click on the "Scripts" menu button.
  • Click on the "Watson" script and click the Edit button.
  • Find the below line of code in the script.
  • Replace the postJSONAuth URL with your Workspace URL from the Watson deploy console.
  • Replace the postJSONAuth user (2nd parameter) with your "Service Credentials" "Username".
  • Replace the postJSONAuth password (3nd parameter) with your "Service Credentials" "Password".
var json = Http.postJSONAuth("https://gateway.watsonplatform.net/conversation/api/v1/workspaces/616b5f69-dd49-4206-9c55-75f25b57ba18/message?version=2017-04-21", "0543af58-910d-4666-85be-7a8550279404", "txgVzPxkLup4", message);

Now your Bot Libre bot should be connect to your Watson bot. You can test it by clicking on your bot's Chat button. You can now connect your bot to social media, web, mobile, avatars and speech. You can also enhance your Watson bot by adding responses or scripts to your bot in Bot Libre to take advantage of Bot Libre powerful NLP, AI, and scripting features.

Deep Learning as a Service (DLAAS)

Bot Libre now supports creating and hosting Deep Learning and Analytic services.

Deep Learning and Analytic services are different than bots, as they perform a specific analysis function. They do not chat, nor interact with users, but use artificial intelligence and deep learning to perform analysis such as classifying images, recognizing speech or faces, performing NLP functions, playing games, and analyzing data.

Bot Libre lets you host your deep learning analytic on the web, and access it through the Bot Libre web API. Bot Libre provides an open analytics repository that lets you use analytics that we or other users have defined, or share your own analytics. You can also create your own private analytics, or only share your analytics with specific users.

To create an analytic you need to create and train a model using a deep learning framework such as Tensorflow or Bot Libre Analytics.

For example to train a model for image classification you can use the Inception model and retrain it for classifying your own image set. There are a lot of resources, models, and data available on the web such as the Poets tutorial for image classification.

Once you have trained your model you can upload the Tensorflow .pb and labels files in your analytic's Admin Console.



If you are interested in using deep learning for your business or project, we can also develop a deep learning neural network for you through our development services. If you are interested in knowing how artificial intelligence and deep learning can be used in your business or project, we can help through our AI consulting services. Contact sales@botlibre.biz

Announcing Bot Libre 6.5 - Deep learning, conversation flows, new training editor, synonyms, sentiment

We have released Bot Libre 6.5. Bot Libre 6.5 includes many enhancements including:

  • Deep Learning analytics as a service
  • New Training & Chat Logs browser and editor
  • Response next, and nested conversation flows
  • Exclusive topics
  • New word browser and editor
  • Word synonyms
  • Word and phrase sentiment
  • Enhanced WeChat integration

Deep Learning & Analytics

You can now create deep learning analytics for using artificial intelligence to classify images, or analyze data. You can upload Tensorflow network files and access them through Bot Libre's web interface and API.

Browse our open analytics repository for analytics that can classify images and perform other functions.

If you are interested in using deep learning for your business or project, we can also develop your neural network and analytics for you through our development services. Contact sales@botlibre.biz

Training & Chat Logs

Our Training & Chat Logs browser and editor have been redesigned and enhanced. The browser and editor support new options and properties.

Response Next, and Nested Conversation Flows

You can now easily define nested conversations using a response "next". Next lets you easily define isolated nested conversations without having to use scripting.

Exclusive Topics

You can now define a topic as "exclusive". An exclusive topic provides an isolated conversation. When you set an exclusive topic on a response or conversation only response that have that topic will be considered.

Word Browser

You can now view all words your bot knows. You can edit the words sentiment, synonyms, and define if the word is a keyword or topic.

Synonyms

Synonyms let you define a word's synonyms so the bot will consider all of a words synonyms when matching responses. Synonyms are global, so can be defined once, and apply to all of the bot's responses. Synonyms can be automatically loaded from Wiktionary as the bot learns new words.

Sentiment

You can now define the sentiment for a word or phrase. Sentiment lets the bot determine the user's sentiment or feeling about their responses and conversation. The user sentiment can be access from Self, and it tracked and can be visualize in the bot's Analytics.

WeChat

Bots connected to WeChat now support speech recognition for voice messages. Bots can now also include links, images, and menus in their responses and interface.

The 6.5 release also included a new user message interface, new response list export options, enhanced user verification, enhanced NLP, UI improvements, and several minor enhancements and fixes.

Chatbots for First Aid Assistance

Chatbots are being increasingly used in the health and medical industry.

The app "Erste Hilfe - dein sprechender Assistent" is a German language chatbot developed by a client using the Bot Libre mobile platform.

The app is featured in this news broadcast,

The app is available on Google Play,

Tuesday, October 31, 2017

Announcing Bot Libre 6.0!

We have released Bot Libre 6.0!

The worlds most advanced bot platform just got better. Bot Libre 6.0 is a free and open source platform for developing and hosting bots. Bot Libre 6.0 includes support for chat bots, virtual agents, virtual assistants, social media bots, game bots, live chat, animated avatars, and speech. Bot Libre supports bots for the web, mobile, Facebook, Twitter, Skype, Telegram, Kik, WeChat, Slack, email, SMS, IRC, and new platforms are being added every month.

"Bot are the new apps". Mobile has replaced the web as the main communications market, and social media apps are the most popular mobile apps. Businesses need to connect with consumers on the platforms they use, so it now makes more sense for a business to create a bot/chat interface into their business instead of a website, or their own mobile app. Bot Libre lets you create a bot for yourself or your business and deploy the bot to the Facebook, Twitter, Skype, Telegram, Kik, WeChat, Slack, the web, mobile, and other services. Bots let you "write once deploy everywhere".

Bot Libre 6.0 supports rich HTML responses including buttons, links, choices, images, video, and audio. Bot Libre supports HTML responses on the web, mobile, and automatically maps HTML to social media platforms.

Bot Libre bots can be trained using natural language, chat logs, response lists, Twitter feeds, AIML, and scripting. Responses are automatically matched using a heuristic artificial intelligence algorithm and does not require any programming. Responses can also use keywords, topics, required words, labels, repeats, and other meta data.

Bot Libre 6.0 supports programming and scripting your bot using AIML 2, and Self. Self is our own dialect of JavaScript. Self is an object oriented scripting language, and integrated with an object database. Self extends JavaScript to provide support for natural language processing, state machines, object persistence, and includes a class library for accessing web services and utilities. Self also supports all AIML 2 operations, and some aspects of ChatScript patterns.

New features in Bot Libre 6.0 since 5.0 include:

  • New bot and live chat embed interface, including 5 new style options and support for custom stylesheets.
  • Integrated support for bots on Kik
  • Integrated support for bots on WeChat
  • Integrated support for bots on Skype, Bing, Cortana, and the Microsoft Bot Platform
  • Game SDK and game machine learning
  • Telegram group bots
  • Facebook custom templates and quick replies
  • Timers and bot services
  • Continuous speech recognition for Android and iOS
  • Micro AI Engine for Android and iOS

Create your own free account and bot today on botlibre.com, or let us build your bot for you on our commercial service Bot Libre for Business.