Inspiration

With the diversity present in the pokemon world, It can be hard to keep track. With over 800 monsters available perhaps we can redefine what it means to catch them all. Talk your way to the number one trainer position.

What it does

Currently omnius functions as a standard chatbot that interacts with a person, often with witty comebacks. Though the end product was intended to be a pokemon matcher.

How I built it

Though I was unable to implement, due to an error regarding internal server failure which rendered me unable to test, the idea was clear. As a person had a normal conversion with the chatbot, keywords and their synonyms were extractable from the responses. The bot would then make a http GET request based on these keywords whenever one was encountered. E.g. If a user said something that indicated they were happy, the bot would request from the pokeapi all possible pokemon that have a happy nature. Initially, the bot has a set of all pokemon. Upon each get request it would do a combination of set union and intersection with the current list, prioritising the intersection whilst the set is large. Eventually until there is one pokemon remaining in the set. There was also an algorithm where the whole set is retained whilst each individual pokemon has a score that is incremented every time a GET request returns that same pokemon. Over time, once a clear leader is establised, That pokemon is displayed.

Challenges I ran into

Initially our team was 4. Our original idea was an AI assistant that would take on the form of a cartoon character and be animated, e.g. with mouth motions and gestures. Though we had an algorithm to map phonemes to the corresponding mouth states in succession, we ran into difficulty with the microsoft voice synthesizer which provided us poor replication of the voices for the characters we created training sets for. Thus we had to rethink our project.

Accomplishments that I'm proud of

I've learned how to use dialogflow, which I expect will be very useful in future projects

What I learned

I've learned more about Natural Language Processing and general machine learning techniques

What's next for Omnius

Ideally solve the issue with dialogflow and expand the chatbot into a more general purpose variety that can make personalised suggestions based on user interaction.

Built With

  • dialogflow
  • pokeapi
Share this project:

Updates