宣布推出 GenAI Processors:构建强大而灵活的 Gemini 应用

2025年7月10日
Andre Elisseeff Software Engineer
Alexey Guseynov Software Engineer
Oskar Bunyan Software Engineer
Shrestha Basu Mallick Group Product Manager

通常,使用大型语言模型 (LLM) 构建复杂 AI 应用给人的感觉就像是拼接一张复杂的拼图,特别是构建那些用于处理多模态输入且需要实时响应的应用。您需要将不同的数据处理步骤、异步 API 调用和自定义逻辑拼凑在一起。复杂性越高,代码就越脆弱、越难以维护。

今天,我们将推出 GenAI Processors,这是 Google DeepMind 开发的一个全新开源 Python 库,旨在简化这些挑战,使其有结构可循。GenAI Processors 可提供一个抽象层,为从输入处理和预处理到模型调用和输出处理之间的所有步骤定义一致的 Processor 接口。

GenAI Processors 的核心逻辑是将所有输入和输出视为 ProcessorParts 的异步流(即双向流)。您可以将其视为与相关元数据一起流经流水线的标准化数据片段(例如,一段音频、转录文本、图像帧)。这种基于流的 API 允许无缝链接,以及组合从低级数据操作到高级模型调用的不同操作。

GenAI Processors library
GenAI Processors 库旨在优化 Processor 的并发执行。计算图表中的所有祖先实体时,此执行流程示例中的任何部分均可并发生成,例如“c'12”可以与“a’1”并发生成。该流程可维持输出流的顺序(相对于输入流),并会被执行以尽可能缩短首次令牌时间(尽可能选择“a12”到“d12”)。这种并发优化是在后台完成的:将 Processor 应用于输入流将尽可能自动触发此并发执行。

例如,您只需几行代码,即可使用 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)
Python

您还可以使用 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()):
     …
Python

我们预计,对于积极主动的 LLM 应用的需求会越来越大,其中响应能力至关重要。即便对于非流式用例,在数据可用后立即进行处理也能显着缩短延迟和首次令牌时间 (TTFT),这对于打造良好的用户体验来说至关重要。虽然许多 LLM API 优先考虑简化的同步式接口,但通过利用原生 Python 功能,GenAI Processors 可提供一种编写响应式应用的方法,而不会使代码变得更加复杂。行程规划和研究代理示例演示了基于回合的代理可如何使用 GenAI Processors 的并发功能来提高响应速度。


核心设计原则

GenAI Processors 的核心是 Processor 的概念:这是一个封装了特定工作单元的基本构建块。它可接收输入流,执行操作,并输出结果流。这个简单、一致的 API 是 GenAI Processors 库的强大功能和灵活性的基石。

以下是核心设计决策及其可为开发者带来的好处:

  • 模块化设计:将复杂的工作流分解为独立的 Processor 单元。这可确保代码的可重用性、可测试性,并大幅简化复杂流水线的维护。

  • 异步与并发:充分利用 Python 的异步 IO 来高效处理 I/O 绑定和计算绑定任务。这使得响应式应用能够脱离手动线程或复杂的并发管理。

  • 与 Gemini API 集成:GenaiModel(用于回合制交互)和 LiveProcessor(用于实时流式传输)等专用处理器可简化与 Gemini API 的交互,包括 Live API 的复杂性。这可减少样板并加速集成。

  • 可扩展:通过从基类沿用或使用装饰器轻松创建自定义 Processor。将您自己的数据处理逻辑、外部 API 或专用操作无缝集成到流水线中。

  • 统一的多模式处理:ProcessorPart 封装容器可提供一致的接口,用于处理流水线内的各种数据类型(文本、图像、音频、JSON 等)。

  • 流操作实用程序:用于拆分、连接和合并异步流的内置实用程序。这可提供对复杂流水线内数据流的精细控制。


开始构建

开始使用 GenAI Processors 是一件非常轻松的事。您可以使用 pip 来安装它:

pip install genai-processors
Python

为了帮助您熟悉 GenAI Processors 库,我们提供了一系列 Colab 笔记,以引导您了解核心概念,并演示如何构建各种类型的 Processor 和应用。我们建议从内容 API ColabProcessor 简介 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。