Login

モジュール化され、非同期で構成可能なAI処理パイプラインを構築するための軽量なPythonライブラリ。効率的な並列コンテンツ処理をサポートします。

Apache-2.0Python 1.4kgoogle-geminigenai-processors Last Updated: 2025-07-14

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ノートブックを提供しています(順序通りに学習することをお勧めします)。

  1. Content API Colab - ProcessorPartProcessorContentの基本とそれらの作成方法を説明します。
  2. Processor Intro Colab - GenAI Processorsのコアコンセプトの紹介。
  3. Create Your Own Processor - ProcessorまたはPartProcessorを作成するための典型的な手順のウォークスルー。
  4. 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は開発プロセスを簡素化するために必要なツールと抽象化レイヤーを提供します。

Star History Chart