Search API: Bedre ekstraktion, dynamiske benchmarks

Kvaliteten af vores Search API-uddrag er blevet optimeret langs to dimensioner: relevans og størrelse.

I september offentliggjorde vi en teknisk oversigt over Perplexity Search API-arkitekturen og udgav search_evals, vores open source-evalueringsrammework til benchmarking af søge-API'er i agentiske arbejdsprocesser. Siden da har den mest betydningsfulde investering været i uddragskvalitet, optimeret langs to dimensioner: relevans og størrelse. Returnering af det rigtige indhold i den rigtige mængde bestemmer direkte svartiden for den efterfølgende svarnøjagtighed og token-effektivitet. Arbejdet med at nå dertil indebar opbygning af nye systemer til ekstraktion, mærkning på span-niveau og evaluering, mest bemærkelsesværdigt en pipeline til span-mærkning, der identificerer, hvilke segmenter af et kildedokument der er relevante for en given forespørgsel.

Evaluering af uddrag på span-niveau

For at forbedre uddrag systematisk har vi udviklet et nyt evalueringssystem. For en given forespørgsel og et givet dokument identificerer og mærker systemet spans i dokumentet efter deres relation til forespørgslen: "vitale" spans, der skal medtages i uddraget, forskellige klasser af "irrelevante" spans, der bør udelades, duplikater og andre kategorier. Denne mærkning på span-niveau giver os mulighed for at evaluere uddragskvalitet med en præcision, der ikke tidligere var mulig, idet vi måler både det, der blev korrekt inkluderet, og det, der blev korrekt udeladt.

I praksis gør disse forbedringer os i stand til at generere mindre uddrag, der er mere relevante for forespørgslen. Vores selvforbedrende pipeline til indholdsforståelse håndterer nu et bredere udvalg af strukturerede dataformater, herunder tabeller, indlejrede lister og dynamisk gengivet indhold, som tidligere regelsæt ikke kunne parse pålideligt.

Disse forbedringer udsprang af vores egne produktionssystemer. Efterhånden som vores interne forskning drev uddragenes relevans og størrelse fremad, afslørede interne evalueringer, at mindre indholdsbudgetter faktisk gav mere nøjagtige resultater efter en række kvalitetsforbedringer. Vi foretog nogle ændringer i vores standardkonfigurationer for at afspejle vores resultater, hvilket reducerede responspayloadstørrelsen og latensen, samtidig med at der blev leveret mere nyttigt indhold pr. resultat. For udviklere omsætter mindre, mere relevante uddrag sig direkte til lavere tokonomkostninger og bedre kontekststyring for efterfølgende LLM'er.

SEAL: benchmarking af tidsfølsom hentning

SEAL-benchmarken tester, om et hentningssystem kan besvare spørgsmål, hvis korrekte svar ændrer sig over tid. Besvarelse på en pålidelig måde kræver indeksets friskhed i realtid, smartere uddragsekstraktion fra forskellige løbende opdaterede datakilder og parsing, der kan identificere den aktuelle værdi i stedet for en historisk.

Da vi kørte search_evals mod SEAL-udgivelsen den 22. februar ved hjælp af Claude Sonnet 4.5, steg Perplexitys scores, mens andre udbydere faldt på SEAL-Hard:

Vi har udvidet vores search_evals-rammework til at omfatte SEAL sammen med de benchmarks, der blev rapporteret i vores indlæg fra september. Opdaterede resultater og metoder er tilgængelige i det opdaterede repository på GitHub.

Understøttelse af flere forespørgsler

API'et understøtter nu op til 5 forespørgsler i en enkelt anmodning. Resultaterne returneres grupperet pr. forespørgsel i den samme rækkefølge, som de blev indsendt. Dette reducerer antallet af rundturstider for applikationer, der har brug for at udstede relaterede søgninger parallelt, såsom agenter, der nedbryder et komplekst spørgsmål i flere underopgaver til hentning.

Udvidet filtrering

Ud over domænefiltrering (tilladelsesliste og afvisningsliste, op til 20 domæner) og tidsmæssig filtrering understøtter API'et nu sprogfiltrering efter ISO 639-1-kode og regional søgning efter ISO-landekode. Disse kan kombineres for at afgrænse resultater præcist, f.eks. ved at begrænse til engelsksprogede resultater fra tyske domæner.

SDK og tilgængelighed

Python SDK (pip install perplexityai) giver nu indbygget understøttelse af Search API sammen med Agent API og Sonar API.

Fuld dokumentation findes på docs.perplexity.ai