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 в микросервис, чтобы он не вышел из строя?