通常,使用大型语言模型 (LLM) 构建复杂 AI 应用给人的感觉就像是拼接一张复杂的拼图,特别是构建那些用于处理多模态输入且需要实时响应的应用。您需要将不同的数据处理步骤、异步 API 调用和自定义逻辑拼凑在一起。复杂性越高,代码就越脆弱、越难以维护。
今天,我们将推出 GenAI Processors,这是 Google DeepMind 开发的一个全新开源 Python 库,旨在简化这些挑战,使其有结构可循。GenAI Processors 可提供一个抽象层,为从输入处理和预处理到模型调用和输出处理之间的所有步骤定义一致的 Processor
接口。
GenAI Processors 的核心逻辑是将所有输入和输出视为 ProcessorParts
的异步流(即双向流)。您可以将其视为与相关元数据一起流经流水线的标准化数据片段(例如,一段音频、转录文本、图像帧)。这种基于流的 API 允许无缝链接,以及组合从低级数据操作到高级模型调用的不同操作。
例如,您只需几行代码,即可使用 Gemini Live API 轻松构建能够实时处理音频和视频流的“实时代理”。在下面的示例中,请注意如何使用 +
运算符组合输入源和处理步骤,从而创建清晰的数据流(前往 GitHub 查看完整代码):
from genai_processors.core import audio_io, live_model, video
# Input processor: combines camera streams and audio streams
input_processor = video.VideoIn() + audio_io.PyAudioIn(...)
# Output processor: plays the audio parts. Handles interruptions and pauses
# audio output when the user is speaking.
play_output = audio_io.PyAudioOut(...)
# Gemini Live API processor
live_processor = live_model.LiveProcessor(...)
# Compose the agent: mic+camera -> Gemini Live API -> play audio
live_processor = live_model.LiveProcessor(...)
live_agent = input_processor + live_processor + play_output
async for part in live_agent(streams.endless_stream()):
# Process the output parts (e.g., print transcription, model output, metadata)
print(part)
您还可以使用 GenAI Processors 库的双向流功能和 Google Speech API,利用基于文本的标准 LLM 构建自己的实时代理(前往 GitHub 查看完整代码):
from genai_processors.core import genai_model, realtime, speech_to_text, text_to_speech
# Input processor: gets input from audio in (mic) and transcribes into text
input_processor = audio_io.PyAudioIn(...) + speech_to_text.SpeechToText(... )
play_output = audio_io.PyAudioOut(...)
# Main model that will be used to generate the response.
genai_processor = genai_model.GenaiModel(...),
# TTS processor that will be used to convert the text response to audio. Note
# the rate limit audio processor that will be used to stream back small audio
# chunks to the client at the same rate as how they are played back.
tts = text_to_speech.TextToSpeech(...) + rate_limit_audio.RateLimitAudio(...)
# Creates an agent as:
# mic -> speech to text -> text conversation -> text to speech -> play audio
live_agent = (
input_processor
+ realtime.LiveModelProcessor(turn_processor=genai_processor + tts)
+ play_output
)
async for part in live_agent(streams.endless_stream()):
…
我们预计,对于积极主动的 LLM 应用的需求会越来越大,其中响应能力至关重要。即便对于非流式用例,在数据可用后立即进行处理也能显着缩短延迟和首次令牌时间 (TTFT),这对于打造良好的用户体验来说至关重要。虽然许多 LLM API 优先考虑简化的同步式接口,但通过利用原生 Python 功能,GenAI Processors 可提供一种编写响应式应用的方法,而不会使代码变得更加复杂。行程规划和研究代理示例演示了基于回合的代理可如何使用 GenAI Processors 的并发功能来提高响应速度。
GenAI Processors 的核心是 Processor
的概念:这是一个封装了特定工作单元的基本构建块。它可接收输入流,执行操作,并输出结果流。这个简单、一致的 API 是 GenAI Processors 库的强大功能和灵活性的基石。
以下是核心设计决策及其可为开发者带来的好处:
Processor
单元。这可确保代码的可重用性、可测试性,并大幅简化复杂流水线的维护。异步 IO
来高效处理 I/O 绑定和计算绑定任务。这使得响应式应用能够脱离手动线程或复杂的并发管理。GenaiModel
(用于回合制交互)和 LiveProcessor
(用于实时流式传输)等专用处理器可简化与 Gemini API 的交互,包括 Live API 的复杂性。这可减少样板并加速集成。ProcessorPart
封装容器可提供一致的接口,用于处理流水线内的各种数据类型(文本、图像、音频、JSON 等)。开始使用 GenAI Processors 是一件非常轻松的事。您可以使用 pip 来安装它:
pip install genai-processors
为了帮助您熟悉 GenAI Processors 库,我们提供了一系列 Colab 笔记,以引导您了解核心概念,并演示如何构建各种类型的 Processor 和应用。我们建议从内容 API Colab 和 Processor 简介 Colab 开始。
您还可以探索代码库中的 examples/ 目录,查看各种实际演示,了解如何构建更复杂的应用,例如研究代理和实时评论代理。
GenAI Processors 目前处于早期阶段,我们相信它能提供坚实的基础,助力解决 AI 应用中复杂的工作流和编排挑战。虽然 Google GenAI SDK 支持多种语言,但 GenAI Processors 目前仅支持 Python。
core/ 目录包含各种基本 Processor。我们积极鼓励社区为 contrib/ 目录中更专业的功能做贡献。我们很高兴与开发者社区合作,以扩展 GenAI Processors 库,并构建更复杂的 AI 系统。
准备好构建更强大、响应速度更快的 Gemini 应用了吗?
欢迎前往 GitHub 了解 GenAI Processors 代码库:https://github.com/google-gemini/genai-processors
我们期待看到您构建的作品!
GenAI Processors 是一整支出色团队的奉献和辛勤工作的成果。我们要感谢以下个人,他们发挥了关键作用,将这个库变成了现实:Juliette Love、KP Sawhney、Antoine He、Will Thompson、Arno Eigenwillig、Ke Wang、Parth Kothari、Tim Blyth、Philipp Schmid、Patrick Löber、Omar Sanseviero、Alexey Kolganov、Adam Langley、Evan Senter、Seth Odoom、Thierry Coppey 和 Murat Ozturk。
Unlock Gemini’s reasoning: A step-by-step guide to logprobs on Vertex AI
Simplify your Agent "vibe building" flow with ADK and Gemini CLI
Build with Veo 3, now available in the Gemini API