Visão geral
A Pesquisa facial emite um pequeno conjunto de avisos para que a sua equipa possa perceber por que razão uma pesquisa devolveuApproved ou Declined. Os avisos são devolvidos no array face_search.warnings[] da resposta a POST /v3/face-search/ (consulte o relatório da Pesquisa facial).
Os avisos aqui utilizam um formato reduzido em comparação com os avisos de fluxo: não existe node_id. O contrato de resposta documentado declara cinco campos — risk, additional_data, log_type, short_description, long_description — e o payload de execução inclui adicionalmente feature, que é sempre "LIVENESS" neste endpoint.
Avisos produzidos
Produtor:
FaceSearchAPIView.add_warnings (apis/views/face_search.py:250-330); derivação de estado: get_face_search_status (apis/views/face_search.py:242-248), que recusa apenas para os dois riscos de lista de bloqueio.
Regras de emissão que convém conhecer:
- A lista de bloqueio tem precedência sobre os duplicados. Uma correspondência confirmada na lista de bloqueio suprime
DUPLICATED_FACE, e uma possível correspondência na lista de bloqueio suprimePOSSIBLE_DUPLICATED_FACE— nunca recebe ambos os membros de um par para o mesmo intervalo de confiança. additional_datareferencia apenas o primeiro rosto correspondente, mesmo quandomatches[]contém vários. Os avisos de lista de bloqueio contêm{blocklisted_session_id, blocklisted_session_number, api_service}; os avisos de duplicado contêm{duplicated_session_id, duplicated_session_number, api_service};MULTIPLE_FACES_DETECTEDcontémnull. O valor deapi_serviceestá em maiúsculas (por exemplo,PASSIVE_LIVENESS) ounullpara sessões de fluxo.- Rostos na lista de permissões suprimem avisos de duplicado — uma correspondência de alta confiança na lista de permissões anula
DUPLICATED_FACE/POSSIBLE_DUPLICATED_FACE(nunca anula avisos de lista de bloqueio).
Strings exatas dos avisos
Validação da imagem de pesquisa
Quando não é detetado nenhum rosto emuser_image, a API rejeita o pedido com o código HTTP 400 e {"error": "No face detected in the image"} antes de um objeto face_search ser construído — pelo que um aviso NO_FACE_DETECTED nunca aparece numa resposta bem-sucedida da Pesquisa facial. Isto é devolvido como uma string de error de nível superior, e não em warnings[].
Definições configuráveis
Os intervalos de similaridade que separam correspondências confirmadas (FACE_IN_BLOCKLIST, DUPLICATED_FACE) de possíveis correspondências (POSSIBLE_FACE_IN_BLOCKLIST, POSSIBLE_DUPLICATED_FACE) são fixos internamente — o ajuste de limiares por aplicação aplica-se à verificação de prova de vida do fluxo, não a este endpoint. Os parâmetros que controla por pedido são:
search_type(most_similar, predefinição |blocklisted_or_approved) —most_similarclassifica cada rosto registado por similaridade;blocklisted_or_approvedrestringe os candidatos a rostos na lista de bloqueio, rostos na lista de permissões, rostos de sessões aprovadas e rostos de perfis de utilizador importados, classificando as entradas na lista de bloqueio em primeiro lugar.save_api_request(predefiniçãotrue) — persiste a chamada como uma sessão do tipo API e regista o rosto pesquisado no seu índice de pesquisa facial. Os rostos registados por chamadas de Pesquisa facial são excluídos de resultados futuros da Pesquisa facial. Defina comofalsepara consultar sem armazenar ou registar.rotate_image(predefiniçãofalse) — tenta rotações de 90 graus e mantém a orientação com a melhor deteção facial; útil quando a orientação EXIF está ausente.
Exemplos
Correspondência na lista de bloqueio (força Declined)
Sinal de duplicado (o estado permanece Approved)
Relacionado
- Relatório de Pesquisa facial — formato completo da resposta
- Referência da API de Pesquisa facial — parâmetros do pedido
- Avisos de Correspondência facial — avisos de correspondência 1:1 entre selfie e documento (separados da Pesquisa facial)
- Modelos de dados — Pesquisa facial — esquema canónico