Inspiration

SeamenExchangeBot built to provide the user with information regarding Marine industry. Unlike search engines which give thousands of answers to a simple request this bot answers exactly the question asked. Focused answering behavior important for specific areas of knowledge such as Marine Engineering and Navigation.

What it does

The bot answers User's questions regarding various entities/terms from Marine Industry. It expects questions in a natural way f.e «What is Main Engine», «Who is Captain», «Tell me about superstructure». If the bot is unable to give the exact answer for a specific question it gives few most relevant suggestions.

How I built it

SeamenExchangeBot consists of 4 parts:

1. Amazon Lex bot It has few Intentions which separate utterances by similarity. This approach was chosen because Intent containing utterances of significantly different structure fails to parse the Slot

2. Amazon Lambda It handles user input: checks for a slot to be filled and passes it to the SeamenExchange.com for answer matching. If the slot was not filled by Amazon Lex a Lambda tries to parse the Slot from raw user input and process it. Suggested answers received from the SeamenExchange.com API filtered by relevance and exact match or 3 most relevant answers returned to the Amazon Lex bot.

3. SeamenExchange.com website - a knowledge base It has a simple API which is used by Amazon Lambda for retrieving an information. The site runs within Amazon C2 instance as modified version of Bitnami OSQA engine (Django + Postgres SQL). The website receives requests from Amazon Lambda via HTTP GET request to www.SeamenExchange.com/terms/search API. The knowledge base pre-filled with formatted Marine industry terms. Requested term matches tagged with calculated relevance and returned to Lambda as JSON array.

4. Facebook page SeamenExchange It connected with the Amazon Lex bot. Facebook was chosen as the front end because the relevant page was already functioning for some time and hopefully some subscribers volunteer to test the Bot.

Challenges I ran into

I had to split utterances across Intent by similarity and make a general question form intent to make bot able to handle different forms of questions.

Accomplishments that I'm proud of

The bot could be useful for marine professionals and amateur yachtsmen as well as students and trainees onboard vessels. Supporting knowledge base consists of 3000+ terms some of them rarely used and therefore not all even professional seamen fully aware of their meaning.

What I learned

It was great to learn how to build a chatbot with Lex and Lamda. This 2 technologies helped me to complete the task efficiently and fast. I discovered the power Lamda in reducing task complexity. My next step will be to dive deeper in bot creation to make it a more handy and useful assistant.

What's next for SeamenExchangeBot

The current version submitted to this Challenge is a starter. Marine industry knowledge well developed but not structured enough yet for convenient accessibility. AI will definitely show its potential in this field. My intention is to improve the next version of bot to be a real advisory assistant capable of advising on various technical operational and maintenance procedures, troubleshooting, safety issues and more. Relevant seq2sec and word2vec models are under development and testing at the moment.

Built With

Share this project:

Updates