概要
プロジェクトのREADMEでは、PaperQAはPaperQA2として説明されています。科学文献に特化したPythonパッケージで、検索拡張生成を行います。PDF、テキスト、Microsoft Office文書、ソースコードファイルを受け付けるため、科学的予測モデルではなく、研究ワークフローにおける文書検索とエビデンスの統合に適しています。ユーザーはpqaコマンドラインインターフェースから利用するか、Python APIを独自のアプリケーションに組み込めます。
文書に記載されたエージェントのワークフローでは、ローカルの文書インデックスを検索し、候補文書をチャンク化して埋め込み、関連する箇所を取得したうえで、言語モデルを使って質問に対するエビデンスの関連性を評価し、要約します。選択された要約をもとに、本文中の引用を含む回答が生成されます。検索を調整するため、エージェントはこれらの処理を繰り返したり、順序を変えて実行したりできます。Pythonの応答には、回答、整形済みの回答、質問、エビデンスのコンテキストが含まれます。文書の選択を明示的に制御したいユーザーは、エージェントによるオーケストレーションを使わずに、Docsを通じて文書を追加・検索することもできます。
PaperQAはCrossrefやSemantic Scholarなどの外部プロバイダーから論文メタデータも取得し、後続のクエリではローカルインデックスを再利用します。言語モデルと埋め込みは、LiteLLMベースのインターフェースを通じて設定できます。文書には、ローカルでホストするモデルや別のベクトルストアの選択肢も記載されています。これらの依存関係はリポジトリ自体とは別です。LLMサービスまたはローカルサーバーが必要であり、READMEは、公開パッケージにFutureHouse内部の論文アクセスツールがすべて含まれているわけではないと注意を促しています。ユーザーは自分でPDFを用意する必要があるため、発表済みの研究結果が任意のローカル文献コレクションにおける性能を示すものだと想定すべきではありません。
主な機能
- エージェント型の検索、エビデンス収集、回答生成に対応し、ツールを繰り返し呼び出したり、異なる順序で呼び出したりできます。
- 段落の検索に続いて、LLMベースの関連性評価と文脈に沿った要約を行い、本文中の引用を含む回答を支援します。
- ローカルの全文インデックスを後続のクエリで再利用でき、文書の追加時には同期できます。
- 複数のプロバイダーから論文メタデータを自動取得します。これには引用情報と、クイックスタートで説明されている撤回チェックが含まれます。
- PDF、テキスト、Microsoft Office文書、ソースコードを取り込めます。図や表に対応するリーダーも文書に記載されています。
- LLM、埋め込み、ベクトルストアを設定でき、同期・非同期のPythonインターフェースと手動の`Docs`ワークフローも利用できます。
用途
- 評価方法の提案:厳選したローカル論文コレクションに対して、焦点を絞った化学文献の質問を行い、その後、引用された箇所を原文書と照合します。
- 評価方法の提案:文書に記載された`contracrow`設定を使い、提供された論文に特定の科学的主張と矛盾するエビデンスが含まれているかを調べます。
- 評価方法の提案:Python APIを文献レビューのワークフローに組み込み、生成された回答と、それを裏付けるエビデンスの要約の両方を保存して、研究者が確認できるようにします。
使い方
- リポジトリのREADMEを読み、CLI、エージェント型Python API、手動の
Docsワークフローから利用方法を選びます。提供されたパッケージのメタデータでは、Python 3.11以降が必要です。 - paper-qaパッケージについて、READMEのインストール案内に従います。文献コレクションにOffice文書やPDFのメディア要素が含まれる場合は、オプションのリーダー依存関係を確認してください。
- 文書に記載された設定を使って、LLMプロバイダーと埋め込みを構成します。プロバイダーの要件はリンク先のLiteLLMプロバイダー文書で確認するか、READMEにあるローカルサーバーの例に従ってください。
- 小規模で関連性の高い論文コレクションを用意し、そのディレクトリを指定します。文書に記載された
pqaの質問応答ワークフロー、またはPythonのaskインターフェースを使って、インデックスを構築しエビデンスを取得します。 - 整形済みの回答、引用、エビデンスのコンテキストを元文書と照合します。評価を行う場合は、設定を統制して代表的な質問を繰り返し、コレクションを拡大する前に、裏付けのない主張や見落とされたエビデンスを記録してください。