Skip to content

drametoid/OmniBot

Repository files navigation

OmniBot (migrated from University's GitHub Enterprise)

A Natural Language AI chatbot that accepts an input problem, categorizes it and solves it by invoking the relevant custom ML model.

Project Demo

Short project demo on YouTube - https://www.youtube.com/watch?v=KSu2YexyuYQ

Project Documentation and Poster

Project Motivation

  • The motivation for our project is to enhance the usability of NLP-based AI chatbots by enabling a plug-and-play mechanism to add user-defined models for custom problems.
  • Currently, most chatbots are designed to handle specific use cases and have limited functionality.
  • They lack the ability to handle more generic use cases and require significant effort to modify or add functionality.
  • Our goal is to create a chatbot with a flexible and extensible architecture that can handle a wide range of use cases and be easily customized to add new models.

Architecture Diagram

Architecture Diagram

Data Science Pipeline

  • Switcher Model
    • Data Collection: A synthetic dataset with 1500 sentences and 5 labels (Audio to Text, Resume Parsing, Blog Summary, Sudoku Solving and Regular Chat) was created by generating 300 variations of each label using GPT.
    • Model Training: Model is an ensemble of three ML models: Naive Bayes, basic Neural Network, and Neural Network with LSTM layer. It redirects user requests based on predictions from the models and requests more information if the models are uncertain.
    • Model Deployment: The model was then saved to disk and imported in the switcher model as a route for resume parsing problems.
    • The data fields are as follow
        {
            "prompt": "I'm stuck on this Sudoku puzzle. Can you help me out of it?",
            "category": "suduko"
        }
    
  • Similarly we have built models for different use cases such as
    • Suduko Solver
    • Resume Parser
  • For Article Summary use-case we have used scraping techniques and passed each subsection to GPT3.5 API that returned a summary of that section. Using these summarized sections, we created a summarized article.

WebApp setup

  • Move to UI folder
  • run
npm i
npm start

Backend setup

  • Currently the backend server is deployed on an EC2 instance at this IP - 3.14.131.137
  • To prevent high costs, we are not keeping the instance active at all time. In case you need to run the demo, please send us an email and we will spin up the backend instance for you

OmniBot Output

  • Resume Summary

Resume Summary

  • Suduko Solver

Sudoku Solver

  • Article Summary

Article Summary

  • Audio To Text

Audio To Text

All the files used for testing in present in the "files" folder

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages