Git Product home page Git Product logo

isc-hemc / burrobot Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 7.12 MB

Burrobot is a prototype of conversational agent popularly known as chatbot that will interact with users using Artificial Intelligence and NLP techniques integrated into Facebook Messenger network.

Python 99.25% Dockerfile 0.29% JavaScript 0.19% Shell 0.27%
artificial-intelligence bert-model chatbot docker docker-compose dockerfile facebook facebook-api-graph flask graph-api instant-messaging machine-learning messenger messenger-bot mongodb natural-language-processing nlp pipenv pymongo python

burrobot's People

Contributors

isc-hemc avatar josericardol avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

burrobot's Issues

Scraper: Add conversation id to dataset

To the json message retrived from GraphAPI add a field that contains the conversation id, for example:

{
"message": "Hello",
"conversation_id": x_0000000,
"from": {},
"to": {}
}

README File

README File

Add a brief explanation to the project repository README.md file.

Scraper: Bandera de DB

En caso de que la bandera de DB se encuentre en verdadero y no se pueda establecer una conexión con la base de datos, cambiarla a falso para prevenir errores.

NLP: Stemming support

The NLP module must support stemming, add the implementation in text_processing.py file.

Scraper: Avoid storing the same message

By the moment the mongo helper class in the scraper module doesn't validate if the document trying to insert already exists, implement this functionality, if the document's message id already exists (not _id, this _id it's created by mongo) only update the message not re-insert it.

NLP: Logger for topics

Configure a logger for topics modeling, this logger must sent it's output a tmp file named topic.log and each element must be a LDA output that will be plotted.

Mongo: mongo database configuration

Create mongodb configuration.

  • Mongo Dockerfile.
  • Docker compose to build and run automatically the db.
  • Custom mongod.conf file.
  • Script mongo-init.js to create the burrobot user and it's related database.
  • Variables.env file for mongo root user and password.

Update the README.md file adding a description of the mongo database and related environment variables to establish a connection to the db.

NLP: Initial Configuration

Create the initial configuration for the NLP project.

The NLP project must be able to take the information retrivered from scraper (mongodb or file system storage) and clean that data, make exploratory analysis, get the most related topics, use analizers like gensim, etc., by the moment an initial configuration is enough.

  • Pipenv file
  • Development dependencies.
  • VSCode settings, launch and tasks files.
  • README.md file
  • Pre-commit file.

Check Scraper project for reference.

NLP: Add logs

Add logs in the main processes of the module, also in the functions in which the execution can failure.

Introduction

Introduction module

The introduction must have the following information.

1.- Presentación.
2.- Motivación.
3.- Planteamiento del problema.
4.- Objetivos.
5.- Objetivo general.
6.- Objetivo especifico.
7.- Estado del arte.
8.- Descripción del documento.

NLP: Plot Module

Implement a module capable of displaying plots with different sets of data for understanding and future analysis.

Gitignore

Add .gitignore file to the repository.

Ignore all Python, Tex, etc., files.

Don't forget to add environment files, for example: .env, .local.env, .dev.env, .stg.env, .prod.env, etc.

MySQL: Configuration

MySQL docker configuration:

  • Dockerfile configuration.
  • .conf file if it's needed.
  • Docker compose configuration.
  • Create burrobot user and set its password.
  • Create burrobot-mysqldb database.
  • Create the DB schema, when running docker-compose the schema it's created automatically.

Documentation Initial Configuration

Documentation Initial Configuration

  1. Create documentation folder.
  2. Search for a latex template.
  3. Add Cover Page.

Cover page information

  1. IPN and ESCOM logos
  2. TT Name and ID
  3. TT student names
  4. TT directors names

Use the following example

Captura de Pantalla 2019-10-09 a la(s) 3 54 17

Scraper: Add logs

Add logs in the main processes of the module, also in the functions in which the execution can failure.

NLP: Text Processing Module

Implement a module capable of clean raw texts:

  • Tokenize.
  • Lemmatize.
  • Remove Stopwords.
  • Remove Symbols.
  • Build Vocabulary
  • Unittests

Scraper: Store data in MongoDB

Implement a method or class that can be able to connect with mongo and get/post/update/delete data from it.

Update the README.md file adding a description of how to run scraper script with a connection to mongo.

MySQL: Modify column

Modify the column created_time in Message table of the SQL db to varchar(50).

Scraper Initial Configuration

Scraper Initial Configuration

Prepare the Python's scraper initial configuration for downloading messages from Facebook and retrieve linguistic information.

1.- Create a folder for the scraper program.
2.- Upload pipenv file with dependencies.
3.- Pipenv file must include development dependencies.
4.- Add README.md for a proper configuration and an explanation of how to execute the program.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.