Skip to main content

Posts

Complete On-Premise and Fully Customisable Chat Bot - Part 1 - Overview

Hey Folks !! Welcome back! For long time I was searching for the solution to make a in-house chatbot that operates with in the organisation and no compromise on the data security using the NLP cloud services or the Bot agents. Luckily I got to know about the combination of the BOTKIT and the RASA NLU can make this solution. I went on searching and searching for the solution for the long time and I could find the pieces here and there and completed the solution. I write this to help other folks to make this solution easier rather than searching a lot. The solution goes on as follows. Components are as follows : Front-End UI Botkit server / Agent server RASA NLU server  Business Logic Server DataSource  External Api if any Now seeing in detail what these components will do. Front-end UI : This is the component where the user interacts with. This can be on any technology like the Angular webapp or android app ...etc Borkit Server / Agent S...

Complete On-Premise and Fully Customisable Chat Bot - Part 2 - Agent Building Using Botkit

Welcome back Folks !! In our part 1 we are reading about the overview of building the chat bot using botkit and the RASA NLU that runs in the premise without having dependency on the cloud services. Here we will be looking at developing our Chat Bot Agent server using the botkit framework. Building the Agent Preparing the environment We will start with setting up the environment for setting up the agent. Install the Node.  You can get the installer from here . Install the node after it gets downloaded.  Once it gets succesfuly installed, open the command prompt and type. If the output shows some version number means the installation is success. Installing the botkit using NPM (Node Package Manager) Choose some directory and make the following directory structure as follows. This is going to be the initial directory structure.  Execute the following commands to move into the Botkit folder cd Botkit Initialise the npm pa...

GrowingListView - growing list view inside the scroll view

GrowingList View Introduction: The growing list view is a kind of list view that resembles the recycler view with the same style of the recycler view adapter. This library grows in the height as the height of the items inside dynamically. Problem Statement: The recycler view or the list view doesn't grow in size dynamically while being inside the scroll view. Also setting the height dynamically to the items height is programmatically achievable but it behaves differently on different devices. The growing list view is built to resolve this issue. Include the view provided by the library and include the adapter class in the project and set it to the list and see the magic that the list will be growing in size dynamically with the height of the height. How to include in your project: Just download the .aar file from the following link : https://github.com/PranavKAndro/GrowingListView . Include the .aar file into the project by new-->module-->import .aar mo...

Concept of Google Cloud Messaging / Cloud 2 Device Messaging

Concept of Google Cloud Messaging / Cloud 2 Device Messaging. By H.M.Pranav Kumar, Concept of Google Cloud Messaging. The Google cloud messaging is the concept introduced with the purpose of,       1) Asynchronous messaging from the application server.       2) To avoid polling of the client to save the battery power.       3) To make handling and routing of messages to different devices easier. Parties in GCM / C2DM GCM / C2DM is a concept in which three parties are involved. The parties are,      1) Application server.      2) Google cloud server.      3) Android app / Client. Application Server:     Application server is the business server in which the actual logic and the data is stored and to which the client interacts for the new data and requests for data and other processing needs. Google Cloud Server:      Google cloud server i...

Android Libraries - GSON,Picasso,Crouton,Butterknife,OkHttp,Dagger,slf4j,Joda-time,leanback,Otto,nine old android

Android Libraries to make Life easy Android Libraries - GSON,Picasso,Crouton,Butterknife,OkHttp,Dagger,slf4j,Joda-time,leanback,Otto,nine old android In android we have lot of libraries that are approved and recommended by the google and being the part of the android. In this document lets us walk through those libraries their uses, usage and benefits of using them. Libraries: The following are some of the libraries that are given in the Android Studio by default,         Mediarouter-v7          Leanback-v17              GSON              Joda-time              Picasso              Otto              Slf4j              Crouton              Nine old Android    ...

How to write the test cases for private methods?

How to write the test cases for private methods? Most of us struck while writing the test cases with the private methods and thinks about the how to write test cases for private methods. To test these methods some of the possible methods are shown below, The following are the methods for writing the test cases, 1. Test these methods using the public methods. The public method that access the private methods has to be tested. In this method the problem is that some times the scenario can be like we could not have a public method that returns some value. At that case even though we are able to invoke the private methods its waste to invoke as it cannot be tested properly. 2. Using the reflection concept to invoke the private methods. This works very well. I will show you an example here for your understanding of how to use the reflection in testing the private methods. Consider the private methods inside the target.class as shown below, class Target {     ...

How to access the each view of item by position in Recycler View in android ?

How to access the each view of item by position in Recycler View in android ? There are some methods to access the view of each item view to change or update the view during the run time. To access the view of the item view , consider the Recycler view as below, RecyclerView mainRecyclerView = (RecyclerView)view.findViewById(R.id.main_recycler_view); RecyclerAdapter adapter = new RecyclerAdapter(mContext); mainRecyclerView.setAdapter(adapter); main.setLayoutManager(new LinearLayoutManager(mContext));  To access the itemView of each position the following functions can be used,  1. View itemView = mainRecyclerView.getChildAt(positionOfItem);  2. View itemView = mainRecyclerView.findViewHolderForAdapterPosition(Position).itemView;  3. View itemView = mainRecyclerView.findViewHolderForPosition(Position).itemView;  4. Long itemId = mainRecyclerView.getAdapter().getItemId(position);       View itemView = mainRecyclerView....