Pular para o conteúdo principal

Visão geral

O Face Search emite um pequeno conjunto de avisos para que sua equipe saiba por que uma busca retornou Approved 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 suprime POSSIBLE_DUPLICATED_FACE: você nunca recebe os dois membros de um par para a mesma faixa de confiança.
  • additional_data referencia apenas o primeiro rosto correspondente, mesmo quando matches[] 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_DETECTED traz null. O valor de api_service vem em maiúsculas (por exemplo, PASSIVE_LIVENESS) ou null para 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 em user_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_similar classifica todos os rostos cadastrados por similaridade; blocklisted_or_approved restringe 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ão true): 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 como false para consultar sem armazenar nem cadastrar.
  • rotate_image (padrão false): 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

Tipos de aviso

Última modificação em 1 de novembro de 2026