# arquivo: api_face.py
from flask import Flask, request, jsonify
import face_recognition
import numpy as np
import base64
import cv2

app = Flask(__name__)

@app.route('/verificar-rosto', methods=['POST'])
def verificar():
    data = request.json['imagem']
    imagem_bytes = base64.b64decode(data.split(',')[1])
    np_img = np.frombuffer(imagem_bytes, np.uint8)
    img = cv2.imdecode(np_img, cv2.IMREAD_COLOR)

    rostos = face_recognition.face_encodings(img)
    if not rostos:
        return jsonify({'status': 'sem_rosto'})

    # Aqui você carregaria o vetor de um rosto conhecido (exemplo fictício)
    rosto_conhecido = np.load('rosto_arnaldo.npy')  # vetor 128D
    resultado = face_recognition.compare_faces([rosto_conhecido], rostos[0])

    return jsonify({'status': 'ok' if resultado[0] else 'nao_identificado'})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
