Smart discord chatbot integrated with Dialogflow to manage different classrooms and assist in teaching!

Overview

smart-school-chatbot

Intro

Smart discord chatbot integrated with Dialogflow to interact with students naturally and manage different classes in a school.

Description

As an effort to manage different classrooms, this smart chatbot is created so students can interact with it on Discord naturally and get things done without TAs or instructors' help.

This chatbot is named Bu, a real name of a dog living in CoderSchool.

Here are what Bu can do:

  • Bu can check your attendance by greeting it.
  • Bu can give important links (material links, zoom link, score dashboard,...)
  • Bu can cheers you up when you are sad :((
  • Bu can tell you jokes to make you smile :))
  • Bu can clear up its own messages.
  • Bu can show who is missing in the class or not yet check their attendance.
  • Bu can answer common questions about CoderSchool (opening hours, who is CEO, best instructor, TA,...)
  • Bu can do small talks to you :))
  • Bu can introduce a bit about itself.
  • Bu can choose what kind of food you should have for lunch or dinner if you are indecisive.
  • Bu can give points to you (Can only be done by TAs/Instructors).

Getting Started

Requirements & Dependencies

  • All the library requirements can be installed through requirements.txt.
pip install -r requirements.txt
  • Make sure you have your own discord details in .env file.
DISCORD_TOKEN={BOT DISCORD TOKEN}
DISCORD_GUILD={GUILD NAME}
COHORT_METADATA={METADATA SPREADSHEET ID}
BOT_NAME={BOT NAME}
STUDENT_SCORING={STUDENT SCORING SPREADSHEET ID}
  • Your Google Service Account credentials in the credentials.json and dialogflow_bot.json.

Workflow

Workflow

This chatbot is running 24/7 to answer questions from students so I choose to host it for free on replit.com and have uptimerobot.com to ping the server every 5 minute to prevent it from shutting down on replit.

Usage

Here are some real examples during the lectures of the chatbot in action where students just talk to it naturally like to a real TA, where its answers are unique and different everytime:

  • Ask what it can do

Help

  • Ask who it is

Who are you?

  • Ask who is the creator of it

Father

  • It can automatically check students' attendance to the system by just greeting to it and it will reply in a funny way

Check attendance 1

Check attendance 2

Check attendance 3

  • It can award students who are active in the class

Give score

As you can see, the bot will automatically log in students' performances like attendance, activities and more. Students can check out their scores and ranking anytime on the Google Data Studio dashboard.

dashboard

  • It can answer some common questions about the course or the company

opening hours

  • It can show relevant links of the course which students ask for

Links

  • It can cheer up students if they are are sad or struggled

Sad cheer up

  • It can tell different jokes

Joke 1

Joke 2

Joke 3

  • It can pick a meal for you if you are indecisive what to have for lunch or dinner (A lot of students request for this feature!)

Meal choice

Acknowledgments

Some useful documents are:

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Owner
Tom Huynh
A Machine Learning Scientist and Engineer!
Tom Huynh
Stanford CoreNLP provides a set of natural language analysis tools written in Java

Stanford CoreNLP Stanford CoreNLP provides a set of natural language analysis tools written in Java. It can take raw human language text input and giv

Stanford NLP 8.8k Jan 07, 2023
CCQA A New Web-Scale Question Answering Dataset for Model Pre-Training

CCQA: A New Web-Scale Question Answering Dataset for Model Pre-Training This is the official repository for the code and models of the paper CCQA: A N

Meta Research 29 Nov 30, 2022
Neural network models for joint POS tagging and dependency parsing (CoNLL 2017-2018)

Neural Network Models for Joint POS Tagging and Dependency Parsing Implementations of joint models for POS tagging and dependency parsing, as describe

Dat Quoc Nguyen 152 Sep 02, 2022
XLNet: Generalized Autoregressive Pretraining for Language Understanding

Introduction XLNet is a new unsupervised language representation learning method based on a novel generalized permutation language modeling objective.

Zihang Dai 6k Jan 07, 2023
Python library for parsing resumes using natural language processing and machine learning

CVParser Python library for parsing resumes using natural language processing and machine learning. Setup Installation on Linux and Mac OS Follow the

nafiu 0 Jul 29, 2021
The simple project to separate mixed voice (2 clean voices) to 2 separate voices.

Speech Separation The simple project to separate mixed voice (2 clean voices) to 2 separate voices. Result Example (Clisk to hear the voices): mix ||

vuthede 31 Oct 30, 2022
Sentello is python script that simulates the anti-evasion and anti-analysis techniques used by malware.

sentello Sentello is a python script that simulates the anti-evasion and anti-analysis techniques used by malware. For techniques that are difficult t

Malwation 62 Oct 02, 2022
This repository contains data used in the NAACL 2021 Paper - Proteno: Text Normalization with Limited Data for Fast Deployment in Text to Speech Systems

Proteno This is the data release associated with the corresponding NAACL 2021 Paper - Proteno: Text Normalization with Limited Data for Fast Deploymen

37 Dec 04, 2022
NLPShala , the best IDE for all Natural language processing tasks.

The revolutionary IDE for all NLP (Natural language processing) stuffs on the internet.

Abhi 3 Aug 08, 2021
This is a GUI program that will generate a word search puzzle image

Word Search Puzzle Generator Table of Contents About The Project Built With Getting Started Prerequisites Installation Usage Roadmap Contributing Cont

11 Feb 22, 2022
Data and evaluation code for the paper WikiNEuRal: Combined Neural and Knowledge-based Silver Data Creation for Multilingual NER (EMNLP 2021).

Data and evaluation code for the paper WikiNEuRal: Combined Neural and Knowledge-based Silver Data Creation for Multilingual NER. @inproceedings{tedes

Babelscape 40 Dec 11, 2022
A Non-Autoregressive Transformer based TTS, supporting a family of SOTA transformers with supervised and unsupervised duration modelings. This project grows with the research community, aiming to achieve the ultimate TTS.

A Non-Autoregressive Transformer based TTS, supporting a family of SOTA transformers with supervised and unsupervised duration modelings. This project grows with the research community, aiming to ach

Keon Lee 237 Jan 02, 2023
voice2json is a collection of command-line tools for offline speech/intent recognition on Linux

Command-line tools for speech and intent recognition on Linux

Michael Hansen 988 Jan 04, 2023
Yomichad - a Japanese pop-up dictionary that can display readings and English definitions of Japanese words

Yomichad is a Japanese pop-up dictionary that can display readings and English definitions of Japanese words, kanji, and optionally named entities. It is similar to yomichan, 10ten, and rikaikun in s

Jonas Belouadi 7 Nov 07, 2022
A repo for open resources & information for people to succeed in PhD in CS & career in AI / NLP

A repo for open resources & information for people to succeed in PhD in CS & career in AI / NLP

420 Dec 28, 2022
Intent parsing and slot filling in PyTorch with seq2seq + attention

PyTorch Seq2Seq Intent Parsing Reframing intent parsing as a human - machine translation task. Work in progress successor to torch-seq2seq-intent-pars

Sean Robertson 159 Apr 04, 2022
Sample data associated with the Aurora-BP study

The Aurora-BP Study and Dataset This repository contains sample code, sample data, and explanatory information for working with the Aurora-BP dataset

Microsoft 16 Dec 12, 2022
A2T: Towards Improving Adversarial Training of NLP Models (EMNLP 2021 Findings)

A2T: Towards Improving Adversarial Training of NLP Models This is the source code for the EMNLP 2021 (Findings) paper "Towards Improving Adversarial T

QData 17 Oct 15, 2022
Utilize Korean BERT model in sentence-transformers library

ko-sentence-transformers 이 프로젝트는 KoBERT 모델을 sentence-transformers 에서 보다 쉽게 사용하기 위해 만들어졌습니다. Ko-Sentence-BERT-SKTBERT 프로젝트에서는 KoBERT 모델을 sentence-trans

Junghyun 40 Dec 20, 2022
NLP command-line assistant powered by OpenAI

NLP command-line assistant powered by OpenAI

Axel 16 Dec 09, 2022