Arquitetando e avaliando uma API de pesquisa nativa em IA

Criando uma API de pesquisa escalável que processa 200 milhões de consultas diárias usando recuperação híbrida e curadoria inteligente de contexto para modelos de IA

AutoresPerplexity Research

A criação de uma API de pesquisa escalável e voltada para IA apresenta desafios de pesquisa únicos na intersecção da recuperação de informações, IA e design de sistemas. Ao contrário dos serviços tradicionais que operam com dados circunscritos, uma API de pesquisa deve indexar continuamente bilhões de documentos, compreender a intenção da consulta em diferentes idiomas e domínios, e apresentar resultados relevantes em milissegundos. Em um mundo de agentes de IA, uma API de pesquisa também deve curar cuidadosamente o contexto fornecido aos modelos dos desenvolvedores para garantir que esses modelos tenham um desempenho ideal e incorporem informações com a máxima precisão. A engenharia de contexto eficaz exige que a API não apenas capture a relevância em nível de documento, mas trate as seções e trechos individuais dos documentos como unidades de primeira classe por direito próprio.

Neste artigo, apresentamos o design e a avaliação da Perplexity Search API. Exploramos primeiro a arquitetura e as principais decisões técnicas por trás de nossa infraestrutura de pesquisa de produção que processa 200 milhões de consultas diárias. Nossa arquitetura combina mecanismos de recuperação híbrida, pipelines de classificação de vários estágios, indexação distribuída e análise dinâmica por meio de um módulo de compreensão de conteúdo que se autoaprimora.

Em seguida, descrevemos nossa abordagem para avaliar empiricamente o desempenho da API de pesquisa por meio de um novo framework de avaliação de código aberto. Por meio de benchmarking abrangente ao lado de APIs comerciais existentes, demonstramos um desempenho de última geração em qualidade e latência. A Perplexity Search API está disponível para desenvolvedores em todo o mundo a partir de hoje.

[Encontre o search_evals no GitHub]

Construindo um sistema de pesquisa otimizado para modelos de IA

Desde a nossa fundação, entendemos que capacidades de pesquisa robustas seriam fundamentais para viabilizar os produtos de IA que definem a categoria que queríamos lançar. Originalmente, esperávamos que essas capacidades já existissem de forma publicamente disponível. Experimentamos o portfólio de APIs de pesquisa disponíveis no final de 2022, e a primeira versão do motor de respostas da Perplexity incorporou, de fato, algumas dessas ofertas. Especificamente, analisávamos as consultas dos usuários, formulávamos e enviávamos solicitações a essas APIs e coletávamos os resultados como contexto para nosso pipeline de geração downstream.

No entanto, à medida que os usuários migravam para a Perplexity, percebemos rapidamente que essas APIs não acompanhariam nosso crescimento. Os preços que encontramos eram exorbitantes, com um dos principais provedores de API cobrando US$ 200 por mil consultas. Mas, de forma mais fatal, essas APIs legadas simplesmente não foram projetadas para os novos paradigmas de recuperação introduzidos pelos sistemas de IA de fronteira.

Uma das primeiras versões do motor de respostas da Perplexity.

Para começar, os formatos de solicitação e resposta dessas APIs legadas foram projetados para um mundo em que os humanos seriam os consumidores exclusivos dos resultados de pesquisa. Como resultado, essas APIs priorizavam resultados em nível de documento, excluindo informações mais granulares reveladas por unidades subdocumentais. O sucesso de um modelo de IA depende da qualidade e da compacidade do contexto fornecido, e vimos em primeira mão como a recuperação excessivamente ampla poderia prejudicar modelos de IA, independentemente de quão relevantes os documentos recuperados como um todo pudessem parecer. Nossas tentativas de forçar a precisão em resultados imprecisos tiveram sucesso limitado.

Observamos também que as APIs legadas eram obsoletas ou lentas demais. As APIs de pesquisa desenvolvidas de forma independente dependiam de índices incompletos e atualizados com pouca frequência. As APIs baseadas em scraping, como as várias APIs não oficiais de SERP para a Pesquisa Google, beneficiavam-se de um índice mais abrangente, mas ofereciam uma latência inaceitavelmente alta devido à ineficiência inerente à consulta de um mecanismo de pesquisa de terceiros. A alta latência tornava as APIs inadequadas para aplicativos voltados ao usuário, enquanto a obsolescência tornava os conjuntos de resultados inutilizáveis para qualquer sistema de IA que aspirasse ser preciso e confiável.

Finalmente, observamos o ecossistema de IA bifurcar-se entre pesquisa lexical e pesquisa semântica, com sistemas surgindo que eram superotimizados para uma modalidade em detrimento da outra. Vimos a ascensão de bancos de dados vetoriais que não conseguiam suportar adequadamente nem mesmo filtros booleanos simples. Os backends de pesquisa tradicionais não se saíram muito melhor, com suporte primitivo às oportunidades de classificação e recuperação semântica desbloqueadas pela IA.

Ao percebermos que tornar a Perplexity ainda melhor exigiria a construção de nossa própria infraestrutura de pesquisa dedicada, destilamos nossas observações em três critérios principais:

Integridade, frescor e velocidade: o índice de pesquisa deve ser abrangente, constantemente atualizado e projetado para latência em tempo real.

Compreensão de conteúdo granular: a fragilidade dos modelos de IA e as janelas de contexto limitadas exigem que os resultados de pesquisa sejam apresentados e classificados no nível mais granular possível.

Recuperação e classificação híbridas: tanto os pipelines de recuperação quanto os de classificação devem incorporar sinais lexicais e semânticos para que os resultados sejam úteis para a IA.

Perplexity hoje, impulsionada por nossa infraestrutura de pesquisa em escala de internet, agora disponível via Perplexity Search API.

Infraestrutura de crawling e indexação

Operar na escala da Perplexity exige uma infraestrutura capaz de mapear a web de forma abrangente e responder à sua evolução constante. Nosso índice de pesquisa rastreia mais de 200 bilhões de URLs únicos, com capacidade para rastrear muitas centenas de bilhões a mais.

Garantir que nosso índice cubra uma parcela suficientemente abrangente da internet e que cada documento reflita o estado mais recente é um feito difícil. Existe uma tensão inerente entre integridade e frescor: para um orçamento de indexação fixo, as operações de atualização para páginas existentes devem competir com as operações de indexação para novas páginas não visitadas. Equilibramos essa tensão por meio de uma combinação de escalonamento (que relaxa a restrição de otimização aumentando o orçamento de indexação) e priorização orientada por ML (que garante que cada operação de indexação seja maximamente valiosa para o índice como um todo).

Construímos um índice e um aparato de crawling em escala de exabytes que escala horizontalmente tanto em tamanho quanto em volume de consultas. Os crawlers e as frotas de indexação da Perplexity compreendem coletivamente dezenas de milhares de CPUs e centenas de terabytes de RAM, com margem considerável para maior escalonamento. Combinamos essa infraestrutura computacional com um equilíbrio de armazenamento frio e quente. Usamos modelos aprendidos e heurísticas ajustadas para determinar quais documentos devem ser mantidos quentes, priorizando documentos de domínios autoritativos, documentos que envolvem tópicos pouco cobertos e outras categorias com potencial excepcional para enriquecer nosso índice.

Essa infraestrutura permite que a Perplexity processe dezenas de milhares de operações de indexação por segundo. Mas mesmo com esse orçamento relativamente generoso, a escala da internet é vasta demais para indexar cada URL individual de forma frequente e recorrente. É aqui que entra o ML. Treinamos um modelo de ML para prever se um determinado URL candidato precisa ser indexado. O objetivo do treinamento é elaborado para garantir que calibremos nossa decisão de indexação tanto para a importância quanto para a provável frequência de atualização do URL específico. Também contamos com ML para nos dizer precisamente quando agendar a operação de indexação. Para sites com cadências rotineiras de publicação e atualização, isso nos permite adiar as operações até o ponto em que provavelmente serão mais úteis. Por meio do refinamento contínuo desses modelos de ML, conseguimos manter um índice que atende aos requisitos de integridade e frescor.

Embora nossa infraestrutura de crawling escale facilmente na horizontal, estamos cientes de que os operadores de sites enfrentam restrições técnicas diferentes. Temos o cuidado de manter uma taxa previsível e gerenciável de solicitações para qualquer domínio. O PerplexityBot, nosso crawler de pesquisa, cumpre os limites explícitos estabelecidos em arquivos robots.txt ou, na ausência de limites especificados pelo domínio, normas padrão da indústria relativas a taxas de solicitação. Também ajustamos nosso comportamento de crawling quando detectamos a indisponibilidade do site. Nosso sistema distribuído é arquitetado para aplicar esses limites mesmo em dezenas de milhares de operações simultâneas.

Compreensão de conteúdo que se autoaprimora em escala de internet

Mesmo com um dos maiores e mais recentes índices de pesquisa do planeta, a qualidade do resultado de cada consulta depende da compreensão do nosso sistema sobre o conteúdo de cada documento. Aqui, enfrentamos um desafio fundamental: a web é um lugar confuso. Nenhum conjunto fixo de regras de análise pode lidar com a variedade infinita de layouts, estruturas e estilos encontrados em toda a internet.

Resolvemos esse desafio desenvolvendo um módulo de compreensão de conteúdo que analisa sites e extrai conteúdo semanticamente significativo usando conjuntos de regras dinâmicos. Um site com muitos dados bem estruturados em formato de lista ou tabela pode se beneficiar de regras de análise e extração mais formulaicas, enquanto outro site que apresenta principalmente conteúdo gerado pelo usuário de formato livre pode exigir um conjunto de regras mais flexível. Como a web é em sua maioria estática em curtos períodos de tempo, descobrimos que a vida útil de uma determinada regra é relativamente longa. Mas, à medida que os sites evoluem com o tempo e à medida que aprendemos mais sobre as melhores maneiras de extrair informações, nossos conjuntos de regras também exigem manutenção contínua.

Para facilitar essa adaptação dinâmica, recorremos (é claro) à IA. Na escala da Perplexity, observamos uma seção transversal incrivelmente rica da web no decorrer do atendimento a milhões de consultas de usuários por hora. Isso forma a base para um loop de autoaprimoramento iterativo. Observamos o comportamento de análise e as saídas extraídas de nossos conjuntos de regras atuais em todo o nosso universo de consultas. Em seguida, usamos LLMs de fronteira para avaliar o desempenho em duas dimensões principais:

Integridade: nosso índice deve receber o máximo de conteúdo semanticamente significativo possível, evitando a extração espúria de matéria sem informação ou sem sentido.

Qualidade: nosso índice depende de conteúdo de alta qualidade tanto em substância quanto em forma. As informações devem ser capturadas de maneira que preservem a estrutura e o layout originais do conteúdo.

Observe que integridade e qualidade apresentam outra tensão inerente: otimizar manualmente para qualidade é possível, mas as regras de análise resultantes podem não conseguir capturar conteúdo crítico. Da mesma forma, poderíamos codificar manualmente regras permissivas que aplicam filtragem mínima ao conteúdo bruto, o que pode melhorar a integridade, mas às custas da qualidade. É por isso que recorremos ao autoaprimoramento orientado por IA para evoluir nosso conjunto de regras de uma forma que possa otimizar ambos ao mesmo tempo de maneira adaptável ao domínio.

Concretamente, após cada avaliação do desempenho de análise orientada por LLM, nosso sistema formula um conjunto de mudanças propostas no conjunto de regras para abordar as classes de erro mais significativas. Esses conjuntos de regras passam por validação adicional, após o que implantamos a nova versão em nosso indexador. Dado que as melhorias na lógica de análise e extração só podem beneficiar futuras operações de indexação, nossos investimentos em reindexação otimizada por ML são especialmente importantes: atualizar continuamente documentos de alto tráfego usando a versão mais recente dessa lógica garante um ciclo de autoaprimoramento rigoroso.

Essas regras são importantes não apenas para o desempenho básico de análise, mas também para a segmentação em unidades subdocumentais. Quando se trata de LLMs de fronteira, cada token de contexto é precioso. Um grande corpo de trabalho anterior documentou como o desempenho do LLM se degrada com aumentos no tamanho do contexto e a poluição do contexto com informações irrelevantes. Ter uma análise bem estruturada e abrangente nos permite decompor documentos em trechos autossustentáveis, cada um dos quais pode ser recuperado e classificado individualmente no momento da consulta.

Pipeline de recuperação e classificação

A pesquisa moderna exige garantir integridade e relevância dentro de um orçamento de latência rigoroso. O pipeline de recuperação e classificação da Perplexity alcança isso por meio de uma arquitetura de vários estágios que refina progressivamente os resultados com uma série de módulos cada vez mais sofisticados. Resolvemos potenciais gargalos escalando horizontalmente quaisquer pontos de estrangulamento até a extensão máxima possível.

O pipeline começa com a recuperação de nosso índice. Não forçamos uma escolha entre recuperação lexical e semântica. Em vez disso, consultamos o índice de pesquisa por meio de ambas as modalidades e mesclamos os resultados em um conjunto de candidatos híbrido. Nesta fase, a prioridade é a abrangência sobre a precisão - estágios subsequentes do pipeline otimizarão a precisão.

O pipeline continua com estágios de pré-filtragem, nos quais aplicamos heurísticas básicas e filtros de primeira seleção para remover conteúdo claramente não responsivo ou obsoleto do conjunto de candidatos.

Em seguida, empregamos vários estágios de classificação progressivamente avançada. Os estágios anteriores dependem de pontuadores lexicais e baseados em embeddings otimizados para velocidade. À medida que o conjunto de candidatos é gradualmente reduzido, usamos modelos de reclassificação cross-encoder mais potentes para realizar a escultura final do conjunto de resultados. Graças aos nossos numerosos investimentos em desempenho de inferência, somos capazes de aproveitar arquiteturas de modelos de última geração para esses estágios posteriores, mantendo baixa a latência geral de classificação.

Ao longo deste pipeline, recuperamos e pontuamos resultados nos níveis de documento e subdocumento. Como discutido acima, a IA requer uma engenharia de contexto cuidadosa. Nosso pipeline foi projetado para apresentar as unidades mais atômicas possíveis ao modelo, de modo que os consumidores downstream possam incorporar essas unidades precisas sem trazer contexto irrelevante de outros lugares nos documentos de origem.

Garantir alta qualidade em cada estágio deste pipeline só é possível por meio de um design conjunto com o portfólio de produtos da Perplexity. Cada detalhe da pilha de classificação é projetado para aproveitar o rico sinal produzido pelos milhões de solicitações de usuários que atendemos a cada hora do dia. A grande maioria desse sinal é automatizada, com cada resposta da Perplexity gerada fornecendo um ponto de dados empírico sobre a qualidade da pesquisa, conforme usado em um fluxo de trabalho de agente ativo. Combinamos avaliações orientadas por IA com feedback humano ao vivo para enriquecer os dados de treinamento para nossos modelos de embedding e classificação muito além do que qualquer conjunto de dados construído manualmente pode oferecer.

Essa sinergia entre pesquisa e produto é única para a Perplexity. Os mecanismos de pesquisa legados limitam-se ao sinal bruto fornecido pela telemetria de links azuis. Ofertas de pesquisa mais recentes tentaram implementar alguns desses conceitos voltados para IA, mas carecem de ambientes do mundo real que possam validar a qualidade da pesquisa e fornecer a riqueza de sinal necessária para loops de melhoria rápida. Temos a sorte de ter o ingrediente que faltava: um campo de provas ao vivo para a qualidade da pesquisa, impulsionado por LLMs de fronteira e continuamente testado em batalha por milhões de usuários curiosos em todo o mundo.

Estabelecendo uma nova fronteira para qualidade e desempenho

Após construir a Perplexity Search API e o SDK para tornar nossa infraestrutura de pesquisa disponível para desenvolvedores em todo o mundo, queríamos entender como as várias ofertas de API comerciais se comparavam em casos de uso de IA do mundo real. Tornou-se comum avaliar os próprios modelos de IA, mas precisávamos de uma reviravolta nesse padrão: avaliar a qualidade das APIs de pesquisa quando invocadas por modelos de IA.

Primeiro, olhamos para o ecossistema de código aberto para entender o estado da arte anterior. Encontramos muitos dos principais ingredientes para uma avaliação rigorosa, mas nenhum framework que integrasse esses ingredientes em uma solução de benchmarking plug-and-play. Portanto, nos propusemos a desenvolver um framework de avaliação que pudesse ser usado não apenas pela Perplexity, mas por qualquer pesquisador ou desenvolvedor que busque fazer o benchmark de APIs de pesquisa.

Usando esse framework de avaliação, comparamos rigorosamente a Perplexity Search API ao lado de outras ofertas. Otimizar o desempenho da pesquisa é complexo, com muitas compensações sutis entre qualidade e velocidade. Como uma vitória para os desenvolvedores, descobrimos que a Perplexity Search API estabelece um novo padrão de última geração tanto para qualidade quanto para latência. Os desenvolvedores não precisam mais escolher entre construir aplicativos extremamente rápidos e garantir resultados de alta qualidade: com a Perplexity, eles podem ter ambos.

Qualidade da busca versus latência no SimpleQA, FRAMES, BrowseComp e HLE.

Projetando avaliações confiáveis para fluxos de trabalho de pesquisa baseados em agentes

Começamos definindo três princípios orientadores para nosso framework de avaliação:

Espectro de complexidade: o framework de avaliação deve medir o desempenho em casos de uso de IA baseados em agentes tanto diretos quanto complexos.

Neutralidade: o framework de avaliação deve avaliar todas as APIs em pé de igualdade.

Simplicidade: embora certos casos de uso possam ser complexos, o framework em si deve ser o mais simples possível para que outros possam entendê-lo, reproduzir os resultados e estender o framework com o mínimo de tédio.

Nosso framework de avaliação leve, search_evals, atinge esses objetivos por meio de um design modular simples. Desenvolvemos dois harneses de agente de IA para capturar casos de uso de pesquisa de

Para conduzir nossas avaliações, adotamos quatro benchmarks: SimpleQA e FRAMES para pesquisa em uma única etapa, juntamente com BrowseComp e HLE para pesquisa profunda. Coletivamente, esses benchmarks fornecem medidas bem aceitas para agentes de conhecimento. Seguindo a convenção estabelecida, classificamos todos os benchmarks usando a mesma metodologia de classificador solicitado usada no trabalho original. As implementações precisas dos benchmarks (incluindo a lógica do classificador) podem ser revisadas em nosso repositório GitHub.

Projetamos o framework com a reprodutibilidade e a extensibilidade em mente. Tanto as pontuações em nível de tarefa quanto as saídas do agente subjacente são armazenadas a cada execução. Harneses adicionais, benchmarks e ofertas de API de pesquisa podem ser facilmente integrados. Pesquisadores e desenvolvedores podem ler nossos documentos no GitHub para obter mais informações sobre como estender o framework para atender às suas necessidades precisas.

Resultados da avaliação

Munidos deste framework de avaliação, decidimos avaliar nossa API de pesquisa em comparação com outras ofertas de API. Em todos os benchmarks testados, a Perplexity se destaca como a API mais rápida e de maior qualidade no mercado.

Latência de consulta nos percentis p50, p75 e p95 entre provedores de busca.

Descobrimos que nossos investimentos descritos acima na eficiência de índice, recuperação e classificação valeram muito a pena. A latência mediana da Perplexity é de 358ms, mais de 150ms à frente do segundo provedor mais rápido. A latência no 95º percentil permanece confortavelmente abaixo de 800ms. Com as longas métricas de TTFT (tempo para o primeiro token) dos modelos de fronteira atuais, cada milissegundo conta na criação de experiências de usuário encantadoras. Passamos os últimos dois anos otimizando a latência para nossos próprios usuários, e estamos satisfeitos que esses mesmos investimentos agora também beneficiarão a comunidade de desenvolvedores.

Latência da API de pesquisa

(solicitações iniciadas do AWS us-east-1)

p50

p75

p90

p95

Perplexity

358ms

443ms

604ms

763ms

Exa

1375ms

1499ms

1798ms

2188ms

Brave

513ms

637ms

728ms

808ms

Baseado em SERP*

1342ms

1586ms

1743ms

1790ms

Percentis de latência da API de Busca para solicitações iniciadas a partir da região us-east-1 da AWS.

* Muitos fornecedores de API de pesquisa usam o scraping de SERP como base para seus resultados. Para capturar o desempenho dessas abordagens, usamos uma API representativa baseada em SERP do Google oferecida pela Tavily.

Essa vantagem de velocidade não ocorre às custas da qualidade. A Perplexity Search API oferece um desempenho de última geração tanto na pesquisa em etapa única quanto em configurações de pesquisa profunda. Em cada benchmark testado, a Perplexity lidera o grupo no fornecimento de resultados de alta qualidade que podem impulsionar fluxos de trabalho de IA de complexidade variada. A margem entre a Perplexity e a melhor alternativa é especialmente pronunciada no SimpleQA e no HLE, indicando que esses resultados são robustos em todo o espectro da complexidade da tarefa.

Scores de qualidade da busca nos benchmarks de busca em uma etapa SimpleQA e FRAMES, e nos benchmarks de pesquisa profunda BrowseComp e HLE.

Assim como na latência, nossa liderança na qualidade da pesquisa deriva da nossa liderança na construção de produtos de IA encantadores e de alto tráfego. Nossos milhões de usuários usam a Perplexity para satisfazer sua curiosidade sobre todos os tópicos imagináveis, e os sinais de qualidade e relevância resultantes permitem que nossos modelos de pesquisa melhorem a cada hora que passa.

Benchmarks de qualidade da API de pesquisa

Pesquisa em etapa única

Pesquisa profunda

SimpleQA

FRAMES

BrowseComp

HLE

Perplexity

.930

.453

.371

.288

Exa

.781

.399

.265

.242

Brave

.822

.320

.221

.191

Baseado em SERP*

.890

.437

.348

.248

Scores de qualidade da API de Busca no SimpleQA, FRAMES, BrowseComp e HLE.

Ainda estamos nos primeiros dias dos mecanismos de pesquisa nativos de IA, e a arte e a ciência da medição sem dúvida evoluirão. Convidamos a comunidade a contribuir desenvolvendo métodos rigorosos e criativos para avaliar mecanismos de pesquisa na era dos agentes de IA.

O bloco de construção para o próximo capítulo da IA

O futuro dos sistemas baseados em agentes e assistentes inteligentes dependerá da disponibilidade de ricas interfaces programáticas para o conhecimento coletivo mundial. Os mecanismos de pesquisa legados de hoje saturaram o uso em aproximadamente 10¹⁰ consultas por dia, um número que provavelmente atingiu o pico. A próxima geração de sistemas de pesquisa e recuperação servirá ordens de magnitude mais solicitações, à medida que um universo cada vez maior de agentes de IA passa a depender deles para obter informações precisas em tempo real.

Nossos esforços até o momento nos posicionaram como o mecanismo de pesquisa mais rápido e com melhor desempenho acessível via API. Mas será necessária uma inovação ainda mais ambiciosa para alimentarmos o próximo capítulo da IA. Como escalamos eficientemente esses sistemas diante da demanda cada vez maior? Como esses sistemas de pesquisa podem ser otimizados à luz de novas abordagens para engenharia de contexto e pós-treinamento? E como navegamos na tensão sempre presente entre abrangência, atualidade e latência? Estas são questões em aberto que a Perplexity, com nossa combinação de presença no produto, escala e talento técnico, está posicionada de forma única para abordar.

Citação

BibTeX
@online{perplexity2025ArchitectingAndEvaluatingAnAiFirstSearchApi,
  author = {{Perplexity} and Aleksandr Bogutskii and Aleksandr Nikolenko and Aleksei Bykov and Alexander Pecheny and Alexandr Yarats and Arsenii Shevchenko and Denis Bykov and Dmitry Pervukhin and Ismail Gadzhiev and James Liounis and Kevin Hu and Kirill Priemko and Maksim Gaiduk and Maksim Morozov and Marko Kevac and Michael Liang and Mikhail Galanin and Nandor Licker and Nataliya Pevgova and Nikita Kireev and Nikolai Tretiak and Paul Schofield and Saif Ali Raja and Saleh Alghusson and Sebastian Sepulveda and Sergei Miller and Svyatoslav Feldsherov and Vitalii Polshkov and Vladimir Zaytsev and Denis Yarats},
  title = {{Architecting and evaluating an AI-first Search API}},
  date = {2025-09-25},
  url = {https://www.perplexity.ai/hub/blog/architecting-and-evaluating-an-ai-first-search-api}
}