Skip to content

SindiAI - an AI bot that can chat with you, tell you the weather, jokes, play music and more.

License

Notifications You must be signed in to change notification settings

0Shark/SindiAIDev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

HomeBuddy

Developed by: Juled Zaganjori and Elmer Dema

MIT License HomeBuddy GitHub language count

Sindi is a natural language AI assistant that doesnโ€™t only play music for you but it can also chat with you, tell you jokes and more. It doesn't matter how you ask the question Sindi will always understand what you mean unless the feature is not available. Here is a list of the features Sindi has right now:

  • ๐Ÿ—ฃ๏ธ Speak feature: numbers and text
  • ๐Ÿ—ฏ๏ธ Chat features: Hello, Who are you?, Tell a joke, Surname, Name, Thanks, full birthday, age (Sindi will know if you lie about your age)
  • ๐ŸŒฆ๏ธ Weather features: What's the weather like?
  • ๐ŸŽต Music features: What genres of music do I listen?, Play music, Play rock music, Play custom music
  • ๐ŸŽ›๏ธ Music controls: Play, pause/continue, volume, mute/unmute, replay
  • ๐Ÿ”ด Exit app
  • ๐Ÿ’ฌ Sindi will know if you are angry, neutral or happy based on your input

Current version features: YT Video

Technologies used

On web

On SindiAI

Web | HomeBuddy website

We created HomeBuddy to be easily accessible by the users and serve as registration domain for all users. The website also includes log in using your face with the face_recognition module, but it won't work on the web due to hosting limitations, so you can still try it out by downloading the website here:

If you want to check the HomeBuddy code download the files from the Google Drive link and extract the files.

  1. Firstly you need to have a local server running (for exp. WAMP)

  2. After that you need to import the database.sql file into your local database managment framework (for exp. PhpMyAdmin)

Unessential procedure

To use the face_recognition features you need to install the python modules on requirements.txt.

cd YOURDIRECTORY
pip install -r requirements.txt

After the modules have been installed you can head over to localhost/homebuddy/ on your webbrowser.

  • We hosted the website on 000webhost
  • The website is protected by CloudFlare security and posses a SSL certificate

Installation

Before installation please make sure you are registered on the web and you downloaded your data!

Sindi uses your custom preferences data to respond to you.

SindiAI is built in Python 3.6.6 so make sure you have it installed together with pip

Next you need to clone the repository or just download it.

git clone https://github.com/0Shark/SindiAIDev

After that you can change directory to there

cd /YOURFOLDER/sindiai/

For automatically executing the installation commands you can run installation.bat

Creating an virtual environment (skippable)

We recommend creating a virtual environment to manage your modules more easily, in this case we used anaconda to create the environment like this:

conda create -n sindiai python==3.6.6

Error

Now activate the environment:

conda activate sindiai

Setting up python packages

Now you can install all the required modules with this command:

pip install -r requirements.txt

Error Error

After installing all the modules, make sure to have a MySQL local server running. In this case we are running Wamp(Windows, Apache, MySQL, and PHP).

Error

Creating the database

NOTE: You will need a local hosting server (WAMP or XAMPP)

Then you can run the script below to create the database:

python create_db.py

Error

Starting Flask server

After the database has been created you can start using SindiAI by running:

python server.py

Error

If you are asked to allow access to Firewall please do so.

Error

And head over to 127.0.0.1:8000 on any web browser, or local ip of pc to use on other devices on your local network. Example: 192.168.1.2:8000

Error

Make sure you are registred on the HomeBuddy website and you got your FaceHash together with your json data file. Your data should be located on /sindiai/users/data/

Error

Then you can,

Error

You are ready to chat with Sindi!

Error

Wit integration

The moment we send input to Sindi a chain of functions are activated. First we send the input to Wit where it is classified into intents, entities and traits. Error Error

What are intents? What are entities? What are traits?
We have created these intents to classify the response Entities detect certain objects in the user input (genre, age, date) Traits help us detect a trait about in sentence (sntiment ex. happy)

We have manually trained the app with nearly 300 sentences, labelling each type of data. Error

Audio files

Sindi has a decent amount of speech audio generated with play.ht and music genres that can be modified to your preferences. Make sure you add your own music files on the sindiai/music/ directory.

Type Items
text 42
number 29 (audio files used to create other numbers)
jokes 8
months 12
music 10 genres (where you can store your music)

Our development board, where we organized all of our tasks

Trello Board

Todos (Dettailed version can be found on Trello board)

  • More chat functions ๐Ÿ“œ
  • Add Night Mode ๐Ÿ•ถ๏ธ
  • Speech recognition ๐Ÿ—ฃ๏ธ
  • Activate on call (Hey Sindi)
  • Play videos ๐ŸŽž๏ธ
  • Webdriver integration for searching ๐Ÿ”Ž

License

Copyright 2021 HomeBuddy

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.