Example #1
0
def create_model():
    database_url = os.environ[DATABASE_URL]
    database_replica_set = os.environ[DATABASE_REPLICA_SET]
    database_name = os.environ[DATABASE_NAME]

    train_filename = request.json[TRAINING_FILENAME]
    test_filename = request.json[TEST_FILENAME]
    classifiers_name = request.json[CLASSIFIERS_NAME]

    database = Database(
        database_url,
        database_replica_set,
        os.environ[DATABASE_PORT],
        database_name,
    )

    request_validator = UserRequest(database)

    request_errors = analyse_request_errors(
        request_validator,
        train_filename,
        test_filename,
        classifiers_name)

    if request_errors is not None:
        return request_errors

    database_url_training = Database.collection_database_url(
        database_url,
        database_name,
        train_filename,
        database_replica_set,
    )

    database_url_test = Database.collection_database_url(
        database_url,
        database_name,
        test_filename,
        database_replica_set,
    )

    metadata_creator = Metadata(database, train_filename, test_filename)
    model_builder = Model(database,
                          metadata_creator,
                          database_url_training,
                          database_url_test)

    model_builder.build(
        request.json[MODELING_CODE_NAME],
        classifiers_name
    )

    return (
        jsonify({
            MESSAGE_RESULT:
                create_prediction_files_uri(
                    classifiers_name,
                    test_filename)}),
        HTTP_STATUS_CODE_SUCCESS_CREATED,
    )
Example #2
0
def create_projection():
    database_url = os.environ[DATABASE_URL]
    database_replica_set = os.environ[DATABASE_REPLICA_SET]
    database_name = os.environ[DATABASE_NAME]
    parent_filename = request.json[PARENT_FILENAME_NAME]
    projection_filename = request.json[PROJECTION_FILENAME_NAME]
    projection_fields = request.json[FIELDS_NAME]

    database = Database(
        database_url,
        database_replica_set,
        os.environ[DATABASE_PORT],
        database_name,
    )

    request_validator = UserRequest(database)

    request_errors = analyse_request_errors(request_validator, parent_filename,
                                            projection_filename,
                                            projection_fields)

    if request_errors is not None:
        return request_errors

    database_url_input = Database.collection_database_url(
        database_url,
        database_name,
        parent_filename,
        database_replica_set,
    )

    database_url_output = Database.collection_database_url(
        database_url,
        database_name,
        projection_filename,
        database_replica_set,
    )

    metadata_creator = Metadata(database)
    projection = Projection(metadata_creator, database_url_input,
                            database_url_output)

    projection.create(parent_filename, projection_filename, projection_fields)

    return (
        jsonify({
            MESSAGE_RESULT:
            MICROSERVICE_URI_GET + projection_filename +
            MICROSERVICE_URI_GET_PARAMS
        }),
        HTTP_STATUS_CODE_SUCCESS_CREATED,
    )
Example #3
0
def create_tsne():
    database = Database(os.environ[DATABASE_URL],
                        os.environ[DATABASE_REPLICA_SET],
                        os.environ[DATABASE_PORT], os.environ[DATABASE_NAME])
    request_validator = UserRequest(database)

    request_errors = analyse_request_errors(request_validator,
                                            request.json[PARENT_FILENAME_NAME],
                                            request.json[TSNE_FILENAME_NAME],
                                            request.json[LABEL_NAME])

    if request_errors is not None:
        return request_errors

    database_url_input = Database.collection_database_url(
        os.environ[DATABASE_URL],
        os.environ[DATABASE_NAME],
        request.json[PARENT_FILENAME_NAME],
        os.environ[DATABASE_REPLICA_SET],
    )

    thread_pool.submit(tsne_async_processing, database_url_input,
                       request.json[LABEL_NAME],
                       request.json[TSNE_FILENAME_NAME])

    return (
        jsonify({
            MESSAGE_RESULT:
            MICROSERVICE_URI_GET + request.json[TSNE_FILENAME_NAME]
        }),
        HTTP_STATUS_CODE_SUCCESS_CREATED,
    )
Example #4
0
def create_projection():
    parent_filename = request.json[PARENT_FILENAME_NAME]
    projection_filename = request.json[PROJECTION_FILENAME_NAME]
    projection_fields = request.json[FIELDS_NAME]

    request_errors = analyse_request_errors(request_validator, parent_filename,
                                            projection_filename,
                                            projection_fields)

    if request_errors is not None:
        return request_errors

    database_url_input = Database.collection_database_url(
        database_url,
        database_name,
        parent_filename,
        database_replica_set,
    )

    database_url_output = Database.collection_database_url(
        database_url,
        database_name,
        projection_filename,
        database_replica_set,
    )

    metadata_creator = Metadata(database)
    projection = Projection(metadata_creator, database_url_input,
                            database_url_output)

    projection.create(parent_filename, projection_filename, projection_fields)

    return (
        jsonify({
            MESSAGE_RESULT:
            f'{MICROSERVICE_URI_GET}{projection_filename}'
            f'{MICROSERVICE_URI_GET_PARAMS}'
        }),
        HTTP_STATUS_CODE_SUCCESS_CREATED,
    )
Example #5
0
def create_model():
    train_filename = request.json[TRAINING_FILENAME]
    test_filename = request.json[TEST_FILENAME]
    classifiers_name = request.json[CLASSIFIERS_NAME]

    request_errors = analyse_request_errors(request_validator, train_filename,
                                            test_filename, classifiers_name)

    if request_errors is not None:
        return request_errors

    database_url_training = Database.collection_database_url(
        database_url,
        database_name,
        train_filename,
        database_replica_set,
    )

    database_url_test = Database.collection_database_url(
        database_url,
        database_name,
        test_filename,
        database_replica_set,
    )
    builder = Builder(database, metadata_creator, spark_session)

    builder.build(request.json[MODELING_CODE_NAME], classifiers_name,
                  train_filename, test_filename, database_url_training,
                  database_url_test)

    return (
        jsonify({
            MESSAGE_RESULT:
            create_prediction_files_uri(classifiers_name, test_filename)
        }),
        HTTP_STATUS_CODE_SUCCESS_CREATED,
    )