Visão geral
O Face Search emite um pequeno conjunto de avisos para que sua equipe saiba por que uma busca retornouApproved ou Declined. Os avisos são retornados no array face_search.warnings[] da resposta de POST /v3/face-search/ (consulte o relatório do Face Search).
Os avisos aqui têm um formato reduzido em comparação com os avisos do fluxo de verificação (workflow): não há node_id. O contrato de resposta documentado declara cinco campos (risk, additional_data, log_type, short_description, long_description), e o payload em tempo de execução traz também feature, que é sempre "LIVENESS" neste endpoint.
Avisos gerados
Gerado por:
FaceSearchAPIView.add_warnings (apis/views/face_search.py:250-330); derivação do status: get_face_search_status (apis/views/face_search.py:242-248), que recusa apenas nos dois riscos de lista de bloqueio.
Regras de emissão que valem a pena conhecer:
- A lista de bloqueio tem precedência sobre as duplicatas. Uma correspondência confirmada na lista de bloqueio suprime
DUPLICATED_FACE, e uma correspondência possível na lista de bloqueio suprimePOSSIBLE_DUPLICATED_FACE: você nunca recebe os dois membros de um par para a mesma faixa de confiança. additional_datareferencia apenas o primeiro rosto correspondente, mesmo quandomatches[]contém vários. Os avisos de lista de bloqueio trazem{blocklisted_session_id, blocklisted_session_number, api_service}; os avisos de duplicata trazem{duplicated_session_id, duplicated_session_number, api_service};MULTIPLE_FACES_DETECTEDtraznull. O valor deapi_servicevem em maiúsculas (por exemplo,PASSIVE_LIVENESS) ounullpara sessões de fluxo.- Rostos na lista de permissão suprimem os avisos de duplicata: uma correspondência de alta confiança na lista de permissão elimina
DUPLICATED_FACE/POSSIBLE_DUPLICATED_FACE(nunca elimina avisos de lista de bloqueio).
Textos exatos dos avisos
Validação da imagem de busca
Quando nenhum rosto é detectado emuser_image, a API rejeita a requisição com HTTP 400 e {"error": "No face detected in the image"} antes de montar um objeto face_search; por isso, um aviso NO_FACE_DETECTED nunca aparece em uma resposta bem-sucedida da Busca facial. Isso é retornado como uma string error de nível superior, e não em warnings[].
Configurações ajustáveis
As faixas de similaridade que separam correspondências confirmadas (FACE_IN_BLOCKLIST, DUPLICATED_FACE) de correspondências possíveis (POSSIBLE_FACE_IN_BLOCKLIST, POSSIBLE_DUPLICATED_FACE) são fixas internamente: o ajuste de limiar por aplicação vale para a verificação de prova de vida do fluxo, não para este endpoint. As opções que você controla por requisição são:
search_type(most_similar, padrão |blocklisted_or_approved):most_similarclassifica todos os rostos cadastrados por similaridade;blocklisted_or_approvedrestringe os candidatos a rostos da lista de bloqueio, rostos da lista de permissão, rostos de sessões aprovadas e rostos importados de perfis de usuário, classificando primeiro as entradas da lista de bloqueio.save_api_request(padrãotrue): persiste a chamada como uma sessão do tipo API e cadastra o rosto pesquisado no seu índice de busca facial. Rostos cadastrados por chamadas de Busca facial são excluídos de resultados futuros da Busca facial. Defina comofalsepara consultar sem armazenar nem cadastrar.rotate_image(padrãofalse): testa rotações de 90 graus e mantém a orientação com a melhor detecção de rosto; útil quando a orientação EXIF está ausente.
Exemplos
Correspondência na lista de bloqueio (força Declined)
Sinal de duplicidade (o status continua Approved)
Relacionados
- Relatório de Busca facial: formato completo da resposta
- Referência da API de Busca facial: parâmetros da requisição
- Avisos de Correspondência facial: avisos da comparação 1:1 entre selfie e documento (separados da Busca facial)
- Modelos de dados: Busca facial: esquema canônico