Google GenAI Processors: Python向けオープンソースライブラリでAIアプリ開発を加速
背景
AIアプリケーション開発では、テキスト・音声・画像といったマルチモーダル入力をリアルタイムに処理しつつ、複数の前処理・モデル呼び出し・後処理ステップを組み合わせる必要があります。しかし、これらを個別に実装すると、非同期処理や依存関係の管理が煩雑になり、コードの可読性・保守性が低下しがちです 。
コアコンセプト:Processor
インターフェース
-
ストリームベースの抽象化
すべての入出力を双方向ストリーム(ProcessorParts
)として扱い、データチャンク(テキストのトークン、音声フレーム、画像フレームなど)とメタデータを一貫して流す API 設計です 。 -
統一的パイプライン定義
入力 → 前処理 → モデル呼び出し → 出力処理 を、同じProcessor
タイプで表現。これにより、複数のステップを「+
演算子」で直感的に連結できます 。
主な特徴
-
非同期・並列実行の自動化
- Python の
asyncio
を活用し、依存関係を解析して可能な部分を並行処理。 - 出力ストリームの順序を保ちながら、最小の「Time To First Token」を実現。
- ユーザーが意識せずとも、高スループットを確保 。
- Python の
-
Gemini API とのシームレス統合
- Gemini Live API をはじめ、Google の各種 GenAI 関連 API 呼び出し用のビルトイン
Processor
を用意。 - 音声認識・合成、映像ストリーミング、対話エージェント構築が簡単に開始可能 。
- Gemini Live API をはじめ、Google の各種 GenAI 関連 API 呼び出し用のビルトイン
-
拡張性
- コア機能を集めた
core/
ディレクトリと、コミュニティ拡張用のcontrib/
ディレクトリを分離。 - ユーザー独自の
Processor
実装や、既存の組み合わせによるカスタマイズをサポート 。
- コア機能を集めた
-
マルチモーダル対応
テキスト、音声、画像はもちろん、任意のバイナリデータを「パート」として扱い、同じ流れの中で混在処理できます 。
シンプルな利用例
from genai_processors.core import audio_io, live_model, video
# 音声入力→リアルタイム音声認識+映像フレーム処理→Gemini Live
pipeline = audio_io.Input() + live_model.GeminiLive() + video.Output()
async for output_part in pipeline.run(input_stream):
process(output_part)
このように、+
演算子で結合した pipeline
を run
するだけで、バックグラウンドで並列実行が最適化されます 。
アーキテクチャと並行最適化
- 各
ProcessorPart
の依存グラフを自動解析し、全ての前駆ノードが完成した段階で該当部分を即並列実行。 - 出力順序は入力順序に忠実に保持しつつ、可能な限り早いトークン生成を優先。
- 実装は内部的にタスクスケジューラを用い、ユーザーは非同期コードを書く必要がありません 。
今後の展望とコミュニティ
- 現状:Python のみ対応(v1.0 相当の早期段階)。
- 予定:より多彩な
Processor
の提供、ドキュメント強化、他言語対応の可能性。 - 貢献:GitHub 上で Issue/PR を歓迎。
リポジトリ:https://github.com/google-gemini/genai-processors
- Acknowledgments:Juliette Love、KP Sawhney、Antoine He など、多数のエンジニア・PM チームによる共同開発成果です 。