emcf/thepipe

Get clean data from tricky documents, powered by vision-language models ⚡

thepipe – AI強化ドキュメント抽出

機能
thepipe(thepipe-apiパッケージ経由でインストール)は、PDF、Wordドキュメント、PowerPoint、ノートブック、オーディオ/ビデオ、画像、ZIP、さらにはディレクトリ全体といった雑多なファイルを、クリーンなMarkdown、テーブル、画像に変換します。また、画像のみのスキャンに対してOCRを実行し、ユーザーが提供したPydanticスキーマに一致する構造化データを抽出することも可能です。

仕組み

  • コアとなるscrape_file関数はファイルを読み込み、必要に応じてページ画像をOpenAIマルチモーダルモデルなどのビジョン言語モデル(VLM)に送信し、チャンク(text、オプションのimages、メタデータを含むオブジェクト)のリストを返します。
  • チャンク化は、ページ、長さ、Markdownセクション、キーワード、またはオプションのsentence-transformersエクストラをインストールした場合はセマンティックな変化に基づいて行うことができます。実験的なエージェント型チャンカーは、LLMを使用して分割位置を決定します。
  • オーディオ/ビデオの場合、オプションのopenai-whisperエクストラがメディアを文字起こしし、代表的なフレームを抽出します。
  • 抽出されたチャンクは、OpenAIスタイルのチャットメッセージ(chunks_to_messages)に変換したり、LlamaIndexのDocumentオブジェクト(Chunk.to_llamaindex)に変換したりできます。
  • 構造化抽出は、OpenAIの構造化出力機能を活用します。Pydanticモデルを渡すと、ライブラリが検証済みのインスタンスを返します。

主な特徴

  • マルチモーダルAIスクレイピング – OpenAI互換のあらゆるクライアント(OpenAI、OpenRouter、ローカルOpenLLMなど)で動作します。
  • プラグイン可能なエクストラ – 軽量なデフォルトインストール。[audio]、[semantic]、[llama-index]、または[gpu]を追加して、Whisper、sentence-transformers、LlamaIndexサポート、または完全なGPUアクセラレーションを利用できます。
  • CLI – thepipe <source>。APIキー、モデル選択、テキストのみの出力、インクルード正規表現、冗長性フラグをサポートします。
  • 統合準備完了 – 出力はLLMに直接供給したり、ベクトルDB(ChromaDB、LlamaIndexなど)に保存したり、RAGパイプラインで使用したりできます。

典型的な使用例

from thepipe.scraper import scrape_file
from openai import OpenAI

client = OpenAI()                     # OpenAI互換のクライアント
chunks = scrape_file(
    "paper.pdf",
    openai_client=client,
    model="gpt-5.6-luna",
    include_input_images=True,
)

# チャットプロンプトとしてLLMに送信
from thepipe.core import chunks_to_messages
messages = [{"role": "user", "content": [{"type": "text", "text": "Summarize this paper."}]}]
messages += chunks_to_messages(chunks)
response = client.chat.completions.create(model="gpt-5.6-luna", messages=messages)

インストール

pip install thepipe-api               # CPUのみのベース
pip install thepipe-api[audio]        # オーディオ/ビデオ用Whisper
pip install thepipe-api[semantic]     # セマンティックチャンク化用sentence-transformers
pip install thepipe-api[llama-index]  # LlamaIndex変換サポート
pip install thepipe-api[gpu]          # PyTorch + 完全なGPUスタック

(GPUを多用するエクストラの場合、先にPyTorchインデックスからCPUホイールをインストールする必要があるかもしれません。)

使用すべき場面

  • PDF、スライド、またはスキャン画像から、Markdown対応のクリーンなテキストが必要な場合。
  • 下流のパイプラインがマルチモーダルLLMやベクトルストアに依存している場合。
  • 多くの個別のツールを組み合わせることなく、オーディオ/ビデオの文字起こしと構造化データ抽出の両方を処理できる単一のライブラリが必要な場合。

制限事項

  • VLMベースのスクレイピングには、OpenAI互換のAPIキー(または自己ホスト型のVLMエンドポイント)が必要です。
  • GPUアクセラレーションはオプションです。CPUのみの実行は、視覚的に重いワークロードでは遅くなります。
  • 一部の機能(セマンティック/エージェント型チャンク化、構造化抽出)には追加の依存関係が必要です。

上記の情報は、プロジェクトのREADMEから直接引用しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト