Quando você aplica um filtro de domínio na API Perplexity, a resposta pode retornar zero resultados mesmo sabendo que existe conteúdo relevante no site especificado. Isso geralmente acontece porque a API aplica um escopo de busca combinado que trata o filtro de domínio como uma restrição secundária, não como um operador de consulta primário. Neste artigo, você aprenderá a causa técnica exata desse comportamento e como ajustar suas chamadas de API para obter os resultados esperados.
Principais Conclusões: Filtro de Domínio da API Perplexity Não Retorna Resultados
- Parâmetro de requisição
search_domain: Este parâmetro restringe a busca a um domínio específico, mas também limita o índice de busca interno a apenas esse domínio, o que pode excluir o conteúdo mais relevante se o índice for esparso. - Estrutura da consulta com operador
site:: Usarsite:exemplo.comdentro da string de consulta pode conflitar com o filtro de domínio interno da API, fazendo com que a busca aplique duas restrições sobrepostas que se anulam. - Limites de taxa e cache: A API pode retornar resultados desatualizados ou vazios se o filtro de domínio causar uma falha de cache ou exceder o limite de taxa por consulta para aquele padrão de domínio específico.
Por que o Filtro de Domínio da API Perplexity Retorna Zero Resultados
A API Perplexity usa uma arquitetura de busca em dois estágios. Primeiro, ela consulta um índice web geral. Depois, aplica o filtro de domínio como uma etapa de pós-processamento nos documentos recuperados. Quando a consulta inicial ao índice não retorna documentos suficientes do domínio especificado, o filtro remove todos os resultados, deixando você com um conjunto vazio.
A causa raiz é que o parâmetro search_domain não força a API a priorizar conteúdo desse domínio. Em vez disso, ele atua como um filtro rígido após a recuperação. Se o índice retornar menos de, por exemplo, três documentos do domínio alvo, a API descarta todos eles porque não consegue formar uma resposta coerente a partir de uma amostra tão pequena.
Além disso, a API possui um mecanismo interno de deduplicação e pontuação de relevância. Documentos do mesmo domínio geralmente são classificados mais baixo se a consulta não mencionar explicitamente o nome do domínio. Isso significa que, mesmo que o domínio tenha páginas relevantes, elas podem ser superadas por resultados web gerais e nunca chegar ao estágio de filtro.
Passos para Diagnosticar e Corrigir o Problema do Filtro de Domínio
Para resolver o problema de resultados vazios, você precisa ajustar a estrutura da sua requisição à API e testar com diferentes combinações de parâmetros. Siga estes passos em ordem.
Método 1: Use o Operador site: Dentro da String de Consulta
- Remova o parâmetro
search_domain
Exclua ou comente o camposearch_domaindo corpo da sua requisição à API. Este parâmetro é a causa mais comum de resultados vazios porque aplica um pós-filtro rigoroso. - Adicione
site:exemplo.comà sua string de consulta
Adicione o operadorsite:à sua consulta. Por exemplo, altere"query": "últimas pesquisas em IA"para"query": "site:arxiv.org últimas pesquisas em IA". Isso instrui o índice a priorizar conteúdo desse domínio durante a recuperação. - Aumente o parâmetro
max_results
Definamax_resultspara um valor maior, como 10 ou 15. O valor padrão geralmente é 5, que pode ser muito baixo para consultas restritas a domínio. Um valor maior fornece mais documentos para a API trabalhar antes de aplicar a pontuação de relevância. - Teste primeiro com uma consulta ampla
Envie uma requisição sem nenhum filtro de domínio para confirmar que a API consegue recuperar resultados para o seu tópico. Se você obtiver zero resultados mesmo sem o filtro, o problema está na própria consulta, não no parâmetro de domínio.
Método 2: Combine search_domain com Domínio Explícito na Consulta
- Mantenha
search_domaindefinido para o domínio alvo
Na sua requisição à API, defina"search_domain": "exemplo.com". Este parâmetro ainda aplica o pós-filtro, mas você compensará com o próximo passo. - Adicione o nome do domínio como uma palavra-chave na consulta
Inclua o nome do domínio ou uma parte reconhecível dele na string de consulta. Por exemplo, se você está pesquisando documentação da Microsoft, use"query": "Microsoft docs Azure setup". Isso direciona o índice a recuperar documentos que mencionam o domínio. - Defina
recencycomo"day"ou"week"
Use o parâmetrorecencypara limitar os resultados a conteúdo recente. Isso pode ajudar se o domínio tiver muitas páginas antigas que o índice classifica como baixas. A API então focará em documentos mais novos e relevantes desse domínio. - Verifique os metadados
usagena resposta da API
Inspecione o objetousagena resposta da API. Ele mostra quantos documentos foram recuperados e quantos foram filtrados. Sefiltered_countfor alto eresult_countfor zero, você sabe que o filtro de domínio está muito agressivo.
Se o Filtro de Domínio Ainda Retornar Nenhum Resultado
API Retorna Array Vazio para Todos os Filtros de Domínio
Se você testar vários domínios e todos retornarem zero resultados, o problema provavelmente está na sua chave de API ou no endpoint que você está usando. Verifique se sua chave de API tem acesso ao endpoint /search e se você não está atingindo um limite de taxa. Verifique o código de status HTTP: um status 429 significa que você excedeu sua cota. Aguarde o período de redefinição ou faça upgrade do seu plano.
Outra possibilidade é que o modelo de API selecionado não suporta filtragem de domínio. O modelo sonar-pro suporta, mas o modelo sonar-small pode não suportar. Mude para sonar-pro ou sonar-medium e teste novamente.
Filtro de Domínio Funciona na Interface Web, mas Não na API
A interface web do Perplexity usa um pipeline de busca diferente da API. A interface web aplica o filtro de domínio durante o estágio de planejamento da consulta, enquanto a API aplica após a recuperação. Essa diferença arquitetônica significa que o mesmo filtro pode se comportar de maneira diferente. Para imitar o comportamento da interface web, use o operador site: dentro da string de consulta, conforme mostrado no Método 1 acima.
Você também pode tentar definir o parâmetro "focus": "web" na requisição à API. Isso instrui a API a usar o índice web geral em vez de uma base de conhecimento especializada, o que geralmente retorna mais resultados filtrados por domínio.
Métodos de Filtro de Domínio da API Perplexity: search_domain vs Operador site:
| Item | Parâmetro search_domain |
Operador site: na Consulta |
|---|---|---|
| Método de filtragem | Filtro rígido pós-recuperação | Modificador de consulta no nível do índice |
| Efeito na recuperação | Não influencia quais documentos são inicialmente recuperados | Força o índice a priorizar documentos do domínio especificado |
| Risco de resultados vazios | Alto se o domínio tiver baixa cobertura no índice | Baixo, porque o índice busca ativamente conteúdo do domínio |
| Compatibilidade com outros filtros | Pode ser combinado com recency e max_results |
Funciona com qualquer parâmetro de consulta, mas pode conflitar com search_domain |
Agora você pode diagnosticar e corrigir o problema do filtro de domínio da API Perplexity trocando o parâmetro search_domain pelo operador site: dentro da sua string de consulta. Teste sua chamada de API primeiro com uma consulta ampla e, em seguida, adicione gradualmente a restrição de domínio. Para resultados vazios persistentes, verifique as permissões da sua chave de API e a seleção do modelo. Como dica avançada, use os metadados usage na resposta da API para monitorar quantos documentos são filtrados e ajuste o valor de max_results de acordo.