From 78e02a57fe75a6ed59386d149a8ec2df373297ac Mon Sep 17 00:00:00 2001 From: Aldarien Date: Mon, 23 Nov 2020 00:14:01 -0300 Subject: [PATCH] Mejoras al cerebro --- entry/api.py | 2 ++ src/brain/build_data.py | 20 ++++++++++++++++++++ src/brain/build_model.py | 20 +++++++++++++++++++- src/brain/train_model.py | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 src/brain/build_data.py create mode 100644 src/brain/train_model.py diff --git a/entry/api.py b/entry/api.py index 36c79c7..59b6251 100644 --- a/entry/api.py +++ b/entry/api.py @@ -2,9 +2,11 @@ from flask import Flask, redirect, url_for import os from src.instrucciones import Instrucciones import json +from src.brain.build_data import brain_app app = Flask(__name__) +app.register_blueprint(brain_app, url_prefix='/brain') data_folder = os.path.join(os.path.realpath('..'), 'data') diff --git a/src/brain/build_data.py b/src/brain/build_data.py new file mode 100644 index 0000000..78e4942 --- /dev/null +++ b/src/brain/build_data.py @@ -0,0 +1,20 @@ +import argparse +import os +from flask import Blueprint, request +import json + + +brain_app = Blueprint('brain_blueprint', __name__) + + +@brain_app.route('/', methods=['GET']) +def index(): + return { + 'api': '/brain' + } + + +@brain_app.route('/training/data/add', methods=['POST']) +def add_data(): + input_data = json.loads(request.data) + return input_data diff --git a/src/brain/build_model.py b/src/brain/build_model.py index 6e6ddfb..e64e1f4 100644 --- a/src/brain/build_model.py +++ b/src/brain/build_model.py @@ -1,3 +1,4 @@ +import argparse import os import spacy from src.instrucciones import Instrucciones @@ -11,5 +12,22 @@ def load_model(commands): textcat.add_label('test') for c in commands.instrucciones: textcat.add_label(c.instruccion) - optimizer = nlp.begin_training() return nlp + + +def save_model(data_folder, model): + folder = os.path.join(data_folder, 'model') + model.to_disk(folder) + + +def main(args): + commands = Instrucciones(args.data_folder) + model = load_model(commands) + save_model(args.data_folder, model) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('-f', '--data_folder') + _args = parser.parse_args() + main(_args) diff --git a/src/brain/train_model.py b/src/brain/train_model.py new file mode 100644 index 0000000..0e7b9da --- /dev/null +++ b/src/brain/train_model.py @@ -0,0 +1,33 @@ +import argparse +import os +import spacy +import json + + +def load_model(folder): + return spacy.load(folder) + + +def get_data(folder): + files = [f for f in os.listdir(folder) if os.path.isfile(os.path.join(folder, f))] + data = [] + for filename in files: + with open(filename, 'r') as f: + data += json.load(f) + return data + + +def train_model(model, data): + optimizer = model.begin_training() + pass + + +def main(args): + pass + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('-f', '--data_folder') + _args = parser.parse_args() + main(_args)