モジュール化され、非同期で構成可能なAI処理パイプラインを構築するための軽量なPythonライブラリ。効率的な並列コンテンツ処理をサポートします。
GenAI Processors プロジェクト詳細紹介
プロジェクト概要
GenAI Processorsは、生成AIアプリケーション向けに設計された、モジュール式、非同期、構成可能なAI処理パイプラインを構築するための軽量Pythonライブラリです。このプロジェクトはGoogleによって立ち上げられ、特にマルチモーダル入力の処理やリアルタイム応答を必要とする複雑なAIアプリケーションの開発プロセスを簡素化することを目的としています。
コアコンセプト
Processor(プロセッサー)
GenAI Processorsの中核をなすのは、特定の作業単位をカプセル化する基本的な構成要素であるProcessorの概念です。Processorは入力ストリームを受け取り、操作を実行し、結果ストリームを出力します。各Processorは、シンプルで統一されたAPIを持っています。
# processor.Processorを継承し、この関数を実装するすべてのクラスがプロセッサーとなります。
async def call(
content: AsyncIterable[ProcessorPart]
) -> AsyncIterable[ProcessorPartTypes]
ProcessorPart(プロセッサーパート)
ProcessorPartは、genai.types.Part
をラップするもので、MIMEタイプ、ロール、カスタム属性などの豊富なメタデータを持っています。様々なコンテンツタイプ(テキスト、画像、音声、カスタムJSON)をサポートしています。
主要機能
1. モジュール設計
- 複雑なタスクを再利用可能な
Processor
およびPartProcessor
ユニットに分解します。 - 複雑なデータフローやエージェントの振る舞いを構築するために、簡単に連結(
+
)または並列化(//
)できます。
2. GenAI APIとの統合
- ターンベースのAPI呼び出しに使用する
GenaiModel
のような、すぐに使えるプロセッサーが含まれています。 - リアルタイムストリーミングインタラクションをサポートする
LiveProcessor
。
3. 拡張性
- 基底クラスを継承するか、シンプルな関数デコレーターを使用してカスタムプロセッサーを作成できます。
- コミュニティが貢献したプロセッサー拡張をサポートします。
4. 非同期と並行処理
- Pythonの使い慣れた
asyncio
フレームワークに基づいています。 - 並行タスク(ネットワークI/Oや計算集約型サブスレッドとの通信を含む)を調整します。
5. ストリーム管理
ProcessorPart
の非同期ストリームを分割、結合、マージするためのユーティリティを提供します。- レイテンシと最初のトークンまでの時間(TTFT)を削減するためのストリーミング処理をサポートします。
インストール要件
このライブラリにはPython 3.10以降のバージョンが必要です。
インストールコマンド:
pip install genai-processors
使用例
基本的な使用法
from genai_processors import content_api
from genai_processors import streams
# 入力ストリームを作成(文字列は自動的にPartに変換されます)
input_parts = ["Hello", content_api.ProcessorPart("World")]
input_stream = streams.stream_content(input_parts)
# プロセッサーをPartストリームに適用し、結果をイテレートします。
async for part in simple_text_processor(input_stream):
print(part.text)
学習リソース
プロジェクトでは、ユーザーがGenAI Processorsに慣れるのに役立つ一連のColabノートブックを提供しています(順序通りに学習することをお勧めします)。
- Content API Colab -
ProcessorPart
、ProcessorContent
の基本とそれらの作成方法を説明します。 - Processor Intro Colab - GenAI Processorsのコアコンセプトの紹介。
- Create Your Own Processor -
Processor
またはPartProcessor
を作成するための典型的な手順のウォークスルー。 - Work with the Live API -
LiveProcessor
クラスを使用してGemini Live APIからリアルタイムプロセッサーを構築する例。
実際のアプリケーション例
1. リアルタイムLiveの例
examples/realtime_simple_cli.py
- 音声入力・音声出力のLiveエージェントで、Google検索をツールとして統合しています。これはLiveプロセッサーのクライアントサイド実装であり、GenAI Processorsのストリーミングとオーケストレーション機能を示しています。
2. 研究エージェントの例
examples/research/README.md
- Processorsを使用して構築された研究エージェントで、3つのサブプロセッサー、チェーン処理、ProcessorPart
の作成などの機能が含まれています。
3. リアルタイム解説の例
examples/live/README.md
- Gemini Live APIを使用して構築されたリアルタイム解説エージェントで、イベント検出用と会話管理用の2つのエージェントで構成されています。
プロジェクト構造
Coreディレクトリ
core/
ディレクトリには、独自のアプリケーションで使用できる基本的なプロセッサーのセットが含まれています。ほとんどのリアルタイムアプリケーションに必要な一般的な構成要素が含まれており、時間とともに進化してより多くのコアコンポーネントを含むようになるでしょう。
Contribディレクトリ
contrib/
ディレクトリには、組み込みプロセッサーコレクションを拡張するための、コミュニティが貢献したプロセッサー拡張が含まれています。
技術的利点
1. 低レイテンシ処理
非ストリーミングのユースケースであっても、データが利用可能になり次第すぐに処理することで、レイテンシと最初のトークンまでの時間(TTFT)を大幅に削減できます。これは、優れたユーザーエクスペリエンスを構築するために不可欠です。
2. レスポンシブなアプリケーション開発
多くのLLM APIが同期的な簡素化されたインターフェースを優先する一方で、GenAI ProcessorsはネイティブPython機能を活用することで、コードを複雑にすることなくレスポンシブなアプリケーションを記述する方法を提供します。
3. 並行処理能力
旅行プランナーや研究エージェントの例は、ターンベースのエージェントがGenAI Processorsの並行処理機能を使用して応答性を向上させる方法を示しています。
まとめ
GenAI Processorsは、複雑な生成AIアプリケーションを構築するための強力で柔軟なフレームワークを開発者に提供します。そのモジュール設計、非同期処理能力、およびGoogle AIサービスとの深い統合により、現代のAIアプリケーション開発にとって理想的な選択肢となっています。リアルタイム会話システム、マルチモーダル処理パイプライン、複雑なAIエージェントのいずれを構築する場合でも、GenAI Processorsは開発プロセスを簡素化するために必要なツールと抽象化レイヤーを提供します。