一個輕量級的 Python 庫,用於構建模組化、非同步和可組合的 AI 處理管道,支援高效的並行內容處理
GenAI Processors 專案詳細介紹
專案概述
GenAI Processors 是一個輕量級的 Python 函式庫,用於建構模組化、非同步和可組合的 AI 處理管道,專為生成式 AI 應用程式而設計。該專案由 Google 推出,旨在簡化複雜 AI 應用程式的開發過程,特別是那些需要處理多模態輸入並要求即時響應的應用程式。
核心概念
Processor(處理器)
GenAI Processors 的核心是 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
# 創建輸入流(字串會自動轉換為 Parts)
input_parts = ["Hello", content_api.ProcessorPart("World")]
input_stream = streams.stream_content(input_parts)
# 將處理器應用於部件流並迭代結果
async for part in simple_text_processor(input_stream):
print(part.text)
學習資源
專案提供了一系列 Colab 筆記本來幫助使用者熟悉 GenAI Processors(建議按順序學習):
- 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 建構的即時解說代理,由兩個代理組成:一個用於事件檢測,另一個用於管理對話。
專案結構
Core 目錄
core/
目錄包含一組基本處理器,可以在您自己的應用程式中使用。包括大多數即時應用程式所需的通用建構塊,並將隨著時間的推移不斷發展以包含更多核心組件。
Contrib 目錄
contrib/
目錄包含社群貢獻的處理器擴展,用於擴展內建處理器集合。
技術優勢
1. 低延遲處理
即使對於非流式用例,一旦數據可用就立即處理可以顯著減少延遲和首個令牌時間(TTFT),這對於建構良好的使用者體驗至關重要。
2. 響應式應用程式開發
雖然許多 LLM API 優先考慮同步、簡化的介面,GenAI Processors 透過利用原生 Python 特性,為編寫響應式應用程式提供了一種方法,而不會使程式碼變得更複雜。
3. 並發處理能力
旅行規劃器和研究代理範例展示了基於回合的代理如何使用 GenAI Processors 的並發功能來提高響應性。
總結
GenAI Processors 為開發者提供了一個強大而靈活的框架,用於建構複雜的生成式 AI 應用程式。其模組化設計、非同步處理能力和與 Google AI 服務的深度整合,使其成為開發現代 AI 應用程式的理想選擇。無論是建構即時對話系統、多模態處理管道還是複雜的 AI 代理,GenAI Processors 都能提供必要的工具和抽象層來簡化開發過程。