Ao definir um filtro de recência na API Perplexity para limitar resultados à última semana ou mês, a API pode ainda retornar fontes antigas. Isso anula o propósito do filtro e pode fazer sua aplicação parecer desatualizada. O problema é causado por como a API lida com o parâmetro de recência em combinação com certos domínios de pesquisa e versões de modelo. Este artigo explica a causa raiz do filtro não funcionar e fornece uma correção passo a passo para garantir que a API retorne apenas fontes recentes.
Principais Conclusões: Filtro de Recência da API Perplexity Não Funciona
- Parâmetro recency no corpo da requisição: Deve ser definido com um valor válido como “day”, “week”, “month” ou “year” para limitar a idade das fontes.
- Parâmetro search_domain: Deve ser definido como “internet” ou deixado vazio para que a recência seja aplicada; o domínio “academic” ignora a recência.
- Verificação da versão do modelo: Use o modelo “sonar-pro” ou “sonar-small” para comportamento consistente de recência; modelos antigos podem ignorar o parâmetro.
Por que o Filtro de Recência da API Perplexity Falha
A API Perplexity aceita um parâmetro recency no corpo da requisição que deve restringir as fontes a uma janela de tempo específica. Quando esse parâmetro não funciona, uma de três condições geralmente é responsável.
Primeiro, o parâmetro recency diferencia maiúsculas de minúsculas e deve ser um dos valores exatos de string: day, week, month ou year. Qualquer outro valor ou um erro de digitação faz com que a API ignore completamente o filtro e retorne todas as fontes, independentemente da idade.
Segundo, o parâmetro search_domain pode substituir o filtro de recência. Quando search_domain é definido como academic, a API pesquisa em artigos acadêmicos e bancos de dados que podem não ter datas de publicação confiáveis. Nesse modo, o filtro de recência não é aplicado, e a API retorna quaisquer fontes que correspondam à consulta, independentemente da data de publicação.
Terceiro, versões antigas do modelo da API Perplexity não suportam o parâmetro de recência. Os modelos sonar-pro e sonar-small suportam filtragem por recência. Modelos antigos como pplx-7b-online ou pplx-70b-online ignoram o parâmetro silenciosamente.
Passos para Fazer o Filtro de Recência Funcionar Corretamente
Siga estes passos em ordem para garantir que suas chamadas à API respeitem o filtro de recência. Cada passo aborda uma das causas raiz descritas acima.
- Verifique o valor do parâmetro recency
Abra o corpo da sua requisição e localize o camporecency. Confirme que o valor é exatamente um dos seguintes:day,week,monthouyearem minúsculas. Corrija quaisquer erros de digitação ou maiúsculas/minúsculas. Exemplo:"recency": "week". - Defina search_domain como internet ou remova-o
Se sua requisição incluirsearch_domain, defina-o comointernetou remova o parâmetro completamente. Não useacademicse precisar de filtragem por recência. Exemplo:"search_domain": "internet". - Atualize o modelo para sonar-pro ou sonar-small
Altere o campomodelem sua requisição parasonar-proousonar-small. Estes são os modelos atuais que suportam filtragem por recência. Exemplo:"model": "sonar-pro". - Envie uma requisição de teste
Envie uma consulta simples como “últimas notícias sobre IA” comrecencydefinido comoday. Inspecione a resposta e verifique os camposcreated_atoupublished_dateem cada objeto de fonte. Todas as datas devem estar dentro das últimas 24 horas. - Registre a resposta para depuração
No código da sua aplicação, registre a resposta completa da API após cada requisição. Procure pelo arraysourcese verifique o campopublished_datede cada fonte. Se alguma fonte for mais antiga que a janela de recência, o filtro ainda não está funcionando.
Se o Filtro de Recência Ainda Retornar Fontes Antigas
“Estou usando sonar-pro mas ainda vejo fontes antigas”
O modelo sonar-pro suporta filtragem por recência, mas também possui um comportamento de fallback. Se a API não encontrar fontes recentes suficientes para uma consulta, ela pode incluir fontes mais antigas para atingir o número mínimo de fontes. Isso é proposital para evitar respostas vazias. Para mitigar isso, torne sua consulta mais específica para o período recente. Por exemplo, em vez de “tendências de machine learning”, use “tendências de machine learning 2024”.
“O parâmetro recency está definido, mas a resposta da API não tem o campo published_date”
Algumas fontes na resposta podem não ter o campo published_date. Isso acontece quando a fonte é um PDF, uma postagem em fórum ou uma página sem um carimbo de data/hora claro de publicação. A API ainda inclui essas fontes mesmo que sejam antigas porque não consegue determinar sua idade. Nesse caso, filtre as fontes em sua aplicação verificando se o campo published_date existe e se está dentro da janela desejada.
“Estou usando o domínio acadêmico e preciso de artigos recentes”
O domínio acadêmico não suporta filtragem por recência porque muitos artigos acadêmicos não possuem datas de publicação confiáveis. Para obter fontes acadêmicas recentes, use o domínio internet e adicione a palavra “recente” ou o ano atual à sua consulta. Por exemplo, “estudos recentes sobre computação quântica 2024”. Isso força a API a pesquisar na web geral por artigos recentes que mencionem trabalhos acadêmicos.
| Item | Funciona com Recência | Ignora Recência |
|---|---|---|
| Modelo | sonar-pro, sonar-small | pplx-7b-online, pplx-70b-online |
| Domínio de pesquisa | internet (ou nenhum domínio) | academic |
| Valor de recency | day, week, month, year | qualquer outro valor ou erro de digitação |
A conclusão é direta. Para corrigir o filtro de recência na API Perplexity, use o modelo sonar-pro ou sonar-small, defina search_domain como internet e passe um valor válido de recency. Se ainda vir fontes antigas, adicione um pós-filtro em sua aplicação que verifique o campo published_date. Para uso avançado, considere definir o valor de recency como day e anexar o ano atual à sua consulta para restringir ainda mais os resultados.