Search API: Bolja ekstrakcija, dinamički benchmarki

Kvaliteta isječaka našeg Search API-ja optimizirana je u dvije dimenzije: relevantnost i veličina.

U rujnu smo objavili tehnički pregled arhitekture Perplexity Search API-ja i izdali search_evals, naš open-source okvir za ocjenjivanje API-ja za pretraživanje u tijek rada agentima. Od tada je najznačajnija investicija bila u kvalitetu isječaka, optimiziranu u dvije dimenzije: relevantnost i veličinu. Vraćanje pravog sadržaja u pravoj količini izravno određuje točnost naknadnih odgovora i učinkovitost tokena. Rad na tome uključivao je izgradnju novih sustava za ekstrakciju, označavanje na razini raspona i ocjenjivanje, a ponajviše cjevovod za označavanje raspona koji identificira koji segmenti izvornog dokumenta odgovaraju na određeni upit.

Ocjenjivanje isječaka na razini raspona

Kako bismo sustavno poboljšali isječke, razvili smo novi sustav ocjenjivanja. Za zadani upit i dokument, sustav identificira i označava raspone unutar dokumenta prema njihovom odnosu s upitom: "vitalne" raspone koji moraju biti uključeni u isječak, različite klase "irelevantnih" raspona koje treba isključiti, duplikate i druge kategorije. Ovo označavanje na razini raspona omogućuje nam ocjenjivanje kvalitete isječaka s razinom preciznosti koja prije nije bila moguća, mjereći i ono što je ispravno uključeno i ono što je ispravno izostavljeno.

U praksi nam ova poboljšanja omogućuju generiranje manjih isječaka koji su relevantniji za upit. Naš cjevovod za razumijevanje sadržaja koji se sam poboljšava sada podržava širi raspon formata strukturiranih podataka, uključujući tablice, ugniježđene liste i dinamički vykrisani sadržaj koji raniji skupovi pravila nisu mogli pouzdano parsirati.

Ova su poboljšanja proizašla iz naših vlastitih produkcijskih sustava. Kako su naše interne istraživačke aktivnosti poticale relevantnost i veličinu isječaka, interne procjene otkrile su da manji proračuni sadržaja zapravo daju točnije rezultate nakon niza poboljšanja kvalitete. Napravili smo neke izmjene u našim zadanim konfiguracijama kako bismo odrazili svoja otkrića, smanjujući veličinu payload odgovora i latenciju uz isporuku korisnijeg sadržaja po rezultatu. Za programere manji, relevantniji isječci izravno se prevode u niže troškove tokena i bolje upravljanje kontekstom za naknadne LLM-ove.

SEAL: ocjenjivanje vremenski osjetljivog dohvaćanja

SEAL benchmark testira može li sustav za dohvaćanje odgovoriti na pitanja čiji se točan odgovor mijenja tijekom vremena. Pouzdano odgovaranje zahtijeva ažurnost indeksa u stvarnom vremenu, pametnije izvlačenje isječaka iz različitih kontinuirano ažuriranih izvora podataka i parsiranje koje može identificirati trenutnu vrijednost umjesto povijesne.

Kada smo pokrenuli search_evals protiv SEAL izdanja od 22. veljače koristeći Claude Sonnet 4.5, Perplexity rezultati su porasli dok su drugi davatelji pali na SEAL-Hard:

Proširili smo naš search_evals okvir tako da uključuje SEAL uz benchmarke navedene u našem rujanskom postu. Ažurirani rezultati i metodologija dostupni su u ažuriranom repozitoriju na GitHubu.

Podrška za više upita

API sada podržava do 5 upita u jednom zahtjevu. Rezultati se vraćaju grupirani po upitu istim redoslijedom kojim su predani. To smanjuje broj povratnih putovanja za aplikacije koje trebaju slati povezane pretrage paralelno, poput agenata koji složeno pitanje rastavljaju na više potpodataka za dohvaćanje.

Prošireno filtriranje

Uz filtriranje domena (popis dopuštenih i popis blokiranih, do 20 domena) i filtriranje prema nedavnosti, API sada podržava filtriranje jezika prema ISO 639-1 kodu i regionalno pretraživanje prema ISO kodovima država. Oni se mogu kombinirati za precizno sužavanje rezultata, na primjer ograničavanje na rezultate na engleskom jeziku iz njemačkih domena.

SDK i dostupnost

Python SDK (pip install perplexityai) sada nudi izvornu podršku za Search API uz Agent API i Sonar API.

Potpuna dokumentacija nalazi se na docs.perplexity.ai