Как извлечь 2 файла JPEG в формате base64 на микросервис, чтобы он не вышел из строя? - PullRequest
0 голосов
/ 04 марта 2020

2 jpeg-файла - это изображения лица, используемые для проверки лица. Они кодируются в формате base64 - изображение JPEG становится строкой. 2 файла отправляются в код микросервиса, приведенный ниже.

Он проверяет, существуют ли 2 файла, а затем переходит к их обработке.

Если одна из 2 строк из 64-х базовых отсутствует, то следует выдать ошибка API. Я думаю, что проблема заключается в том, что он разрывается внутри оператора if, но не выдает ошибку API

Вместо этого он выбрасывает "непоследовательное использование табуляции и пробелов в отступе" ошибка!

Я поместил комментарий, где происходит ошибка:

# -*- coding: utf-8 -*-

import flask
# from flask import request
import json
import logging
import pandas as pd
import numpy as np
from cardomat import compare_two_faces
import utils
from utils import ApiError
import io
import base64        
logger = utils.init_logger('FRAUD_DETECTION_MODEL')        
app = flask.Flask(__name__)

@app.route('/compare-faces', methods=['POST'])
def compare_faces():
    try:
        request = flask.request.get_json()

        if ("file1" not in request) or ("file2" not in request):
#---------->#this Api Error is not even raised
            raise ApiError('ERR001', 'No data for model')

        file1 = request['file1']
        file2 = request['file2']
        # file1 = request.files.get('file1')
        # file2 = request.files.get('file2')

        try:
            ret = compare_two_faces(file1, file2)                 

        except Exception:
            raise ApiError('ERR004', 'Exception in Comparing two faces')

        res = bool(ret)

        return json.dumps({'result': 'OK', 'answer': res})

    except Exception as err:
        logger.error(err)
        raise err


@app.route('/health', methods=['GET'])
def service_check():
    return flask.jsonify({'result': 'OK'})


@app.errorhandler(ApiError)
def api_error_handler(error):
    logger.error(error.get_error(), exc_info=True)
    return flask.jsonify(error.get_error())


@app.errorhandler(Exception)
def handler(error):
    m = "Error: {} Message: {}".format(type(error).__name__, error)
    logger.error(m, exc_info=True)
    return flask.jsonify(ApiError('ERR000', 'Internal error: ' + m).get_error())

Мы проверили код на наличие неправильных вкладок, но вкладки и пробелы выглядят нормально. Как отправить 2 строки base64 в микросервис, чтобы он не вышел из строя?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...