検索API:抽出精度の向上と動的ベンチマーク

検索APIのスニペット品質が、関連性とサイズという2つの側面から最適化されました。

9月、私たちはPerplexity Search APIアーキテクチャの技術概要を公開し、エージェント型ワークフローにおける検索APIのベンチマークを行うためのオープンソースの評価フレームワークであるsearch_evalsをリリースしました。それ以来、私たちはスニペットの品質向上に最も注力しており、関連性とサイズという2つの側面から最適化を進めてきました。適切な量の適切なコンテンツを返すことは、下流タスクにおける回答の精度とトークンの効率性に直接的に影響します。この目標を達成するために、抽出、スパンレベルのラベリング、評価のための新しいシステムを構築しました。特に、ソースドキュメントのどのセグメントが特定のクエリに対応しているかを識別するスパンラベリングパイプラインの開発が重要な役割を果たしました。

スパンレベルでのスニペット評価

スニペットを体系的に改善するため、私たちは新しい評価システムを設計しました。特定のクエリとドキュメントに対して、このシステムはドキュメント内の各スパンをクエリとの関係性に基づいて識別し、ラベル付けを行います。具体的には、スニペットに含めるべき「重要な」スパンや、除外すべき様々な種類の「無関係な」スパン、重複、その他のカテゴリを分類します。このスパンレベルのラベリングにより、以前は不可能だった精度でスニペットの品質を評価できるようになり、適切に含まれた情報と、適切に除外された情報の両方を測定できるようになりました。

実用面では、これらの改善により、クエリに対してより関連性の高い、より小さなスニペットを生成することが可能になりました。自己改善型のコンテンツ理解パイプラインは、従来のルールセットでは確実に解析できなかったテーブル、ネストされたリスト、動的にレンダリングされるコンテンツなど、より広範な構造化データ形式を扱えるようになりました。

これらの改善は、私たち自身のプロダクションシステムから得られたものです。社内の研究を通じてスニペットの関連性とサイズの最適化を進める中で、一連の品質改善を経て、コンテンツ量を絞り込む方が、結果としてより正確な回答が得られることが判明しました。この知見に基づき、デフォルト設定に修正を加えた結果、応答のペイロードサイズとレイテンシを削減しつつ、各結果からより有益なコンテンツを提供できるようになりました。開発者にとっては、より小さく関連性の高いスニペットは、直接的にトークンコストの低減と、下流のLLMにおけるコンテキスト管理の改善につながります。

SEAL: 時間的制約のある検索のベンチマーク

SEALベンチマークは、検索システムが時間の経過とともに正解が変化するような質問に回答できるかをテストするものです。これに確実に対応するには、リアルタイムのインデックスの鮮度、継続的に更新される様々なデータソースからのよりスマートなスニペット抽出、そして過去のデータではなく現在の値を識別できる解析能力が必要です。

Claude Sonnet 4.5を使用して2月22日リリースのSEALでsearch_evalsを実行したところ、SEAL-Hardにおいて他のプロバイダーのスコアが低下する中で、Perplexityのスコアは向上しました:

私たちはsearch_evalsフレームワークを拡張し、9月の投稿で報告したベンチマークに加えてSEALを含めました。最新の結果と手法は、GitHubの更新されたリポジトリでご確認いただけます。

マルチクエリのサポート

APIは、1つのリクエストで最大5つまでのクエリをサポートするようになりました。結果は送信時と同じ順序で、クエリごとにグループ化されて返されます。これにより、複雑な質問を複数の検索サブタスクに分解するエージェントのように、関連する検索を並行して実行する必要があるアプリケーションのラウンドトリップ数を削減できます。

フィルタリングの拡充

ドメインフィルタリング(許可リストおよび拒否リスト、最大20ドメイン)と最新性フィルタリングに加え、APIはISO 639-1コードによる言語フィルタリングと、ISO国コードによる地域検索をサポートしました。これらを組み合わせることで、ドイツのドメインからの英語の結果のみに限定するなど、結果を正確に絞り込むことが可能です。

SDKと利用可能性

Python SDK(pip install perplexityai)は、Agent APIおよびSonar APIに加え、Search APIのネイティブサポートを提供するようになりました。

詳細なドキュメントはdocs.perplexity.aiでご覧いただけます。