Tuesday, June 26, 2018

Week 6 (6/25/2018)

Monday 6/25

Sadik briefed me and Rahi on the updates made on Grace through Gitlab. With that, I updated the raspberry pi and "git pulled" ($ git pull origin master) to merge the Gitlab repository with the pi's repository. I then looked into the dataset in Gitlab and researched into it.

Tuesday 6/26

Today was spent getting more familiar with Python, mainly focusing with the basics of Input/Output. I also updated the data flow chart for Grace. Tomorrow, we are planing to be able to extract words specifically from their part of speech. 

Saturday, June 23, 2018

Conversations

Statement and Response Relationship:

Grace stores information from the conversations as statements. Each user's input (statement) get tagged with any number (please see the : NLTK Tagging methods) and mapped to possible responses.
Therefore each statement object has a reference, which links the user's input to a number of other input statements.

The response object has counter which looks for the terms of frequency (please see the : TF-IDF Algorithm you can also visit grace search engine TF-IDF implementation/ Ranking section ) this attribute indicates the number of times that statement has been given to response. This makes it possible for the bot to determine if a particular  response is more commonly used than another.

Sadik Erisen

Tuesday, June 19, 2018

Week 5 (6/18/2018)

Monday 6/18

Over the weekend, Sadik Erisen and Rahi Barot went to IBM HQ in Poughkeepsie, NY to present Grace at the Z Council. After that, they will be attending the ECC Conference at Marist alongside Professor Eliscu and Professor Vandalovsky. They will return to BCC on Wednesday. Until then I am tasked to prepare the powerpoint for our presentation on Thursday. I'm also tasked with figuring how to implement voice recognition to Grace. Professor Vandalovsky provided me with a brand new Raspberry Pi, since the other one is being presented at IBM/Marist. 

Tuesday 6/19

Today, I have succeeded running Grace on the Raspberry Pi. I have found a way to implement voice recognition into Grace. Alexander provided the team with a noise cancelling USB mic that is no longer in use. With the mic, I have done "preliminary coding" to see if the mic works. The Raspberry Pi recognizes the USB and it seems to test successfully. On the contrary, we need a USB headphone to hear if the recording works. Anyways just from seeing the code, it seems that the mic is running properly. I will be bringing in my own USB headset tomorrow and we'll see how it goes then.  

Wednesday 6/20

Sadik and Rahi returned from a successful weekend. We were able to implement the mic. At first, I thought it wasn't working but all i had to do was to change the settings in Google Chrome :] ....  I returned the raspberry pi I had back to Professor Vandalovsky, and resumed working on the pi that Sadik and Rahi brought to the conference. 

Thursday 6/21

Today, I walked seeing Sadik, Rahi, and Vlad working on implementing voice recognition into Grace. That was the goal, alongside have TTS (Text-to-Speech) so she is able to talk back. Conversation was inconsistent at first, but it was progress. We made some finishing touches to the powerpoint and then presented at 1pm in front of the 3SP program. 

Monday, June 11, 2018

Week 4 (6/11/2018)


Monday 6/11

Sadik presented me the code running the project on Gitlab. Looking at the code, it shows how Grace AI recognizes the "what is the temperature" and "set temperature to x" texts and responds appropriately. We installed the repository into the raspberry pi provided to us. Since this is all established in a blockchain network, the raspberry pi is one of many clients that can be implemented into the network.  From GraceAI, the "payload" (the work needed to 'set' the temperature) is processed to a REST API, as a JSON file, and then led to the Hyperledger blockchain where the transaction is tracked, calculated, and recorded. As the payload is being recorded, Hyperledger Blockchain instantaneously sends the payload back to Grace AI, skipping python, and decrypts the calculation to provide the right results to the client (the raspberry pi) by displaying the correct response.

The previous paragraph provides a basic example of how a blockchain network operates. It demonstrates how one client's transactions are tracked by the blockchain network. Blockchain is meant to be used for a vast network of clients. In order to be able to keep up and process all the transactions between the network of clients in the blockchain, that is where mainframe comes in. Although mainframe is considered "old" technology, it is the only acceptable mean out there that can handle the vast amount of data processing. This is why many of large corporations use it like IBM, Walmart, and many other large corporations.

Tuesday 6/12

I resumed the IBM Blockchain Foundation Developer course, and obtained the badge. The course can be found here: https://developer.ibm.com/courses/all/ibm-blockchain-foundation-developer/?course=begin#12072

Wednesday 6/14

We gave in our laptops to IT to fix the complications we were having. We kept inputting into Grace ChatBot enabling her to keep learning. We plan to implement voice recognition and installing a mic to Grace. 

Thursday 6/15

Sadik worked on Grace throughout the morning and wrote up a patch to the program that enable us to write/manipulate the Mainframe environment. We are now able to download any module onto Grace. You can access the patch on GitLab. We attached the raspberry pi to a 7" screen (pic below). We then continued to test the chatbot program a that enables Grace to continuously learn from the input.



Week 3 (6/4/2018)


Monday 6/4

We went into the STEM lab and connected the raspberry pi to one of the monitors available (INSIGNIA). Familiarized ourselves with the repository of GraceAI and worked on it.


Tuesday 6/5

Today, we introduced ourselves to Unix by doing a section of Master the Mainframe (MTM) Part I. After, we researched APIs (Application Program Interface) and how to manipulate them to work with our AI. This led us to the work behind it all alongside JSON (JavaScript Object Notation) and Python. Because of the coding learned, our cheat sheet was expanded.

Coding Cheat Sheet: https://docs.google.com/document/d/1cKiQ19nUEzb8PMnV_xyTZTRXC0VFbx58kHhiVxS1BmA/edit?usp=sharing

Master the Mainframe (Screenshot): Image result for unix master the mainframe


Wednesday 6/6

Today, we had a meeting in room S-345 and Sadik briefed us on what we have to accomplish by tomorrow. We looked at an intro Chatbot coding from Sadik's GitLab, tested it, and familiarised ourselves with it. We looked into NLTK and read certain chapters concerning tagging and chunking. 


Thursday 6/7

We received a monitor from Professor Vandalovsky to connect our raspberry pi. We set up the virtual environment and installed everything needed for the project. We did a test-run of GraceAi. 

Week 2 (5/28/2018)


Monday 5/28

Happy Memorial Day! 


Tuesday 5/29

Today, we focused on setting up the environment onto our terminal. We first installed Python and PyCharm. We then created a ChatBot folder, which will be the main location of the project. After, we installed the virtual environment, PIP,  and imported libraries onto our command prompts. I started the IBM Blockchain Foundation Developer Course (a 6hr course), which gives us in-depth details on how blockchain works and can be created. (Link: https://developer.ibm.com/courses/all/ibm-blockchain-foundation-developer/).


Wednesday 5/30


NLTK (Natural Language ToolKit) is a program used in Python to work with the data of human language. Today, we focused on what NLTK is and started to familiarize ourselves with the coding. The following link is a cheat sheet of NLTK code that we are caught up with so far: https://docs.google.com/document/d/1cKiQ19nUEzb8PMnV_xyTZTRXC0VFbx58kHhiVxS1BmA/edit?usp=sharing. You can learn more about NLTK at : nltk.org/book.


Thursday 5/31

Continued working with NLTK, mainly moving forward and focusing on different corpora. Corpora are simply large libraries of text, usually of a specific genre. At 12:30, we had a meeting with Professor Eliscu in the TEC building discussing the ECC Conference @ Marist and IBM blockchain and mainframe. We look forward to working on GraceAI and work with her language database with the use of a raspberry pi. 

Week 1 (5/21/2018)

What is Blockchain?

Members took an introductory course on IBM's website learning the fundamentals of blockchain and how it can be used in today's society. 
https://developer.ibm.com/courses/all/blockchain-essentials/


GitHub/GitLab


This what is called a version control system used by programmers. It is impactful as programmers can post and collaborate on projects.  


Python


This is the programming language being used by the team. 
The YouTube video below is a 45min tutorial demonstrating the code used by python. This includes: strings, lists, tuples, conditionals, loops, functions, file I/O, constructors, and much more that python provides. 
https://www.youtube.com/watch?v=N4mEzFDjqtA&t=0s&index=3&list=PLWJsc2DOgzV5VLwKjC4uPgldyufSDuraN

**Note**: 3SP students had a 3D Printing workshop (9am-12pm) and acquired their certification. (5/24/2018)

Thursday, June 7, 2018


Blockchain on Main Frame with Chatbot   


Data Flow Chart



Data Flow:

    In today's blog I would like to introduce the data flow of the project Blockchain on the Mainframe. our raspberry pie works as a client, runs the Front End of the grace-Ai on port:5000 and send the user input to the Backend of Grace Ai engine where chatbot works by taking the raw text dialogue and reading the input. the NLTK has a component that is called corpus which daily gets the updates from New York Times about the current affairs, this component is taken care by Stanford university where they input all the latest words in the dictionary and also inputs latest movie dialogues and trains the corpus library.

    Our Trained AI now takes the raw text and parses it through tokenizing it and tagging the set. then sends the tokenized data to the Rest/Api made on Python


Our algorithm work in a strong loop back where if there is a command related to any interaction with Blockchain as for example; setting the temperature(not for the room but changing the temp in the transaction) else for the normal interaction with the chatbot it goes through the Grace AI and send the response from Grace AI itself. Now when the command is sent to the Rest API/Node where it gets ready to be processed to be sent to the Backend of the hyperleader Blockchain. Using already created a Blockchain network we send the process data using Node.JS to the backend of the blockchain where it recognizes the values transferred from grace Ai to blockchain as a regular transaction. This transaction on hyperledger Blockchain happens on Mainframe computer using docker our container act as a middleware and runs the Chatbot conversation as a Blockchain Transaction on the mainframe computer making the most secured way to talk to machine