Search API: Bessere Extraktion, dynamische Benchmarks

Die Qualität unserer Search API-Snippets wurde entlang zweier Dimensionen optimiert: Relevanz und Größe.

Im September haben wir einen technischen Überblick über die Architektur der Perplexity Search API veröffentlicht und search_evals herausgegeben, unser Open-Source-Evaluierungsframework für das Benchmarking von Such-APIs in agentischen Workflows. Seitdem galt unsere wichtigste Investition der Snippet-Qualität, die entlang zweier Dimensionen optimiert wurde: Relevanz und Größe. Die Rückgabe des richtigen Inhalts in der richtigen Menge bestimmt direkt die Genauigkeit nachgelagerter Antworten und die Token-Effizienz. Die Arbeit hierfür umfasste die Entwicklung neuer Systeme zur Extraktion, zur Labeling auf Spannen-Ebene sowie zur Evaluierung, insbesondere eine Pipeline zur Spannen-Labeling, die identifiziert, welche Segmente eines Quelldokuments auf eine bestimmte Anfrage reagieren.

Evaluierung von Snippets auf Spannen-Ebene

Um Snippets systematisch zu verbessern, haben wir ein neues Evaluierungssystem entwickelt. Für eine gegebene Anfrage und ein Dokument identifiziert und labelt das System Spannen innerhalb des Dokuments basierend auf ihrer Beziehung zur Anfrage: "vitale" Spannen, die im Snippet enthalten sein müssen, verschiedene Klassen von "irrelevanten" Spannen, die ausgeschlossen werden sollten, Duplikate sowie weitere Kategorien. Dieses Labeling auf Spannen-Ebene ermöglicht es uns, die Snippet-Qualität mit einer bisher nicht erreichten Präzision zu bewerten, indem wir sowohl messen, was korrekt einbezogen als auch was korrekt weggelassen wurde.

In der Praxis ermöglichen uns diese Verbesserungen, kleinere Snippets zu generieren, die für die Anfrage relevanter sind. Unsere selbstoptimierende Pipeline zum Inhaltsverständnis verarbeitet nun eine breitere Palette an strukturierten Datenformaten, einschließlich Tabellen, verschachtelter Listen und dynamisch gerenderter Inhalte, die von früheren Regelsätzen nicht zuverlässig geparst werden konnten.

Diese Verbesserungen ergaben sich aus unseren eigenen Produktionssystemen. Während unsere interne Forschung die Relevanz und Dimensionierung von Snippets vorantrieb, zeigten interne Evaluierungen, dass geringere Inhaltsbudgets nach einer Reihe von Qualitätsverbesserungen tatsächlich genauere Ergebnisse lieferten. Wir haben einige Änderungen an unseren Standardkonfigurationen vorgenommen, um unsere Erkenntnisse widerzuspiegeln, wodurch die Größe des Antwort-Payloads und die Latenz reduziert wurden, während gleichzeitig nützlichere Inhalte pro Ergebnis bereitgestellt werden. Für Entwickler führen kleinere, relevantere Snippets direkt zu niedrigeren Token-Kosten und einem besseren Kontextmanagement für nachgelagerte LLMs.

SEAL: Benchmarking zeitkritischer Abrufe

Der SEAL-Benchmark testet, ob ein Abrufsystem Fragen beantworten kann, deren korrekte Antwort sich im Laufe der Zeit ändert. Eine zuverlässige Beantwortung erfordert Echtzeit-Indexfrische, intelligentere Snippet-Extraktion aus verschiedenen, kontinuierlich aktualisierten Datenquellen sowie eine Analyse, die den aktuellen Wert anstelle eines historischen Werts identifizieren kann.

Als wir search_evals gegen die SEAL-Version vom 22. Februar unter Verwendung von Claude Sonnet 4.5 ausführten, stiegen die Perplexity-Werte, während andere Anbieter bei SEAL-Hard zurückfielen:

Wir haben unser search_evals-Framework erweitert, um SEAL neben den in unserem September-Beitrag genannten Benchmarks einzubeziehen. Aktualisierte Ergebnisse und Methoden sind im aktualisierten Repository auf GitHub verfügbar.

Unterstützung für mehrere Anfragen

Die API unterstützt jetzt bis zu 5 Anfragen in einer einzigen Anforderung. Die Ergebnisse werden pro Anfrage gruppiert in der Reihenfolge zurückgegeben, in der sie eingereicht wurden. Dies reduziert Roundtrips für Anwendungen, die zugehörige Suchanfragen parallel ausgeben müssen, wie beispielsweise Agenten, die eine komplexe Frage in mehrere Abruf-Teilaufgaben zerlegen.

Erweiterte Filterung

Zusätzlich zur Domain-Filterung (Zulassungsliste und Sperrliste, bis zu 20 Domains) und Aktualitätsfilterung unterstützt die API jetzt die Sprachfilterung nach ISO 639-1-Code sowie die regionale Suche nach ISO-Ländercode. Diese können kombiniert werden, um Ergebnisse präzise einzugrenzen, beispielsweise durch die Beschränkung auf englischsprachige Ergebnisse aus deutschen Domains.

SDK und Verfügbarkeit

Das Python SDK (pip install perplexityai) bietet nun native Unterstützung für die Search API neben der Agent API und der Sonar API.

Die vollständige Dokumentation finden Sie unter docs.perplexity.ai