Login

Una biblioteca de Python ligera para construir pipelines de procesamiento de IA modulares, asíncronos y componibles, que admite el procesamiento paralelo eficiente de contenido.

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

Descripción detallada del proyecto GenAI Processors

Resumen del proyecto

GenAI Processors es una biblioteca ligera de Python para construir tuberías de procesamiento de IA modulares, asíncronas y componibles, diseñada específicamente para aplicaciones de IA generativa. Este proyecto, lanzado por Google, tiene como objetivo simplificar el proceso de desarrollo de aplicaciones de IA complejas, especialmente aquellas que necesitan procesar entradas multimodales y requieren respuestas en tiempo real.

Conceptos clave

Processor (Procesador)

En el corazón de GenAI Processors está el concepto de Processor: un bloque de construcción fundamental que encapsula una unidad de trabajo específica. Recibe un flujo de entrada, realiza una operación y emite un flujo de resultados. Cada Processor tiene una API simple y unificada:

# Cualquier clase que herede de processor.Processor e implemente esta función es un procesador
async def call(
    content: AsyncIterable[ProcessorPart]
) -> AsyncIterable[ProcessorPartTypes]

ProcessorPart (Parte del Procesador)

ProcessorPart es un envoltorio alrededor de genai.types.Part con metadatos enriquecidos, como tipo MIME, rol y atributos personalizados. Admite varios tipos de contenido (texto, imagen, audio, JSON personalizado).

Características principales

1. Diseño modular

  • Descompone tareas complejas en unidades Processor y PartProcessor reutilizables.
  • Se pueden encadenar (+) o paralelizar (//) fácilmente para crear flujos de datos y comportamientos de agente complejos.

2. Integración con la API de GenAI

  • Incluye procesadores listos para usar, como GenaiModel para llamadas a la API basadas en turnos.
  • Soporta LiveProcessor para interacciones de transmisión en tiempo real.

3. Escalabilidad

  • Crea procesadores personalizados heredando de la clase base o usando decoradores de función simples.
  • Soporta extensiones de procesadores aportadas por la comunidad.

4. Asíncrono y concurrente

  • Basado en el familiar framework asyncio de Python.
  • Coordina tareas concurrentes (incluyendo E/S de red y comunicación con subprocesos intensivos en computación).

5. Gestión de flujos

  • Proporciona utilidades para dividir, unir y fusionar flujos asíncronos de ProcessorPart.
  • Soporta procesamiento de flujos para reducir la latencia y el tiempo hasta el primer token (TTFT).

Requisitos de instalación

La biblioteca requiere Python 3.10+ o superior.

Comando de instalación:

pip install genai-processors

Ejemplo de uso

Uso básico

from genai_processors import content_api
from genai_processors import streams

# Crea un flujo de entrada (las cadenas se convertirán automáticamente en Partes)
input_parts = ["Hello", content_api.ProcessorPart("World")]
input_stream = streams.stream_content(input_parts)

# Aplica el procesador al flujo de partes e itera sobre el resultado
async for part in simple_text_processor(input_stream):
    print(part.text)

Recursos de aprendizaje

El proyecto ofrece una serie de cuadernos Colab para ayudar a los usuarios a familiarizarse con GenAI Processors (se recomienda estudiarlos en orden):

  1. Content API Colab - Explica los fundamentos de ProcessorPart, ProcessorContent y cómo crearlos.
  2. Processor Intro Colab - Introducción a los conceptos centrales de GenAI Processors.
  3. Create Your Own Processor - Un recorrido por los pasos típicos para crear un Processor o PartProcessor.
  4. Work with the Live API - Ejemplos de cómo construir procesadores en tiempo real usando la clase LiveProcessor de la API de Gemini Live.

Ejemplos de aplicaciones prácticas

1. Ejemplo Live en tiempo real

examples/realtime_simple_cli.py - Un agente Live de entrada de audio y salida de audio que integra la búsqueda de Google como herramienta. Esta es una implementación de cliente de un procesador Live, que demuestra las capacidades de transmisión y orquestación de GenAI Processors.

2. Ejemplo de agente de investigación

examples/research/README.md - Un agente de investigación construido con Processors, que incluye 3 subprocesadores, procesamiento en cadena, creación de ProcessorPart, entre otras funcionalidades.

3. Ejemplo de narración en tiempo real

examples/live/README.md - Un agente de narración en tiempo real construido con la API de Gemini Live, compuesto por dos agentes: uno para la detección de eventos y otro para la gestión del diálogo.

Estructura del proyecto

Directorio Core

El directorio core/ contiene un conjunto de procesadores básicos que se pueden usar en sus propias aplicaciones. Incluye los bloques de construcción genéricos necesarios para la mayoría de las aplicaciones en tiempo real y evolucionará con el tiempo para incluir más componentes centrales.

Directorio Contrib

El directorio contrib/ contiene extensiones de procesadores aportadas por la comunidad, utilizadas para ampliar la colección de procesadores incorporados.

Ventajas técnicas

1. Procesamiento de baja latencia

Incluso para casos de uso no basados en streaming, el procesamiento inmediato de los datos una vez que están disponibles puede reducir significativamente la latencia y el tiempo hasta el primer token (TTFT), lo cual es crucial para construir una buena experiencia de usuario.

2. Desarrollo de aplicaciones reactivas

Aunque muchas API de LLM priorizan interfaces síncronas y simplificadas, GenAI Processors, al aprovechar las características nativas de Python, proporciona un método para escribir aplicaciones reactivas sin complicar el código.

3. Capacidad de procesamiento concurrente

Los ejemplos del planificador de viajes y del agente de investigación demuestran cómo los agentes basados en turnos pueden usar las capacidades de concurrencia de GenAI Processors para mejorar la capacidad de respuesta.

Resumen

GenAI Processors ofrece a los desarrolladores un marco potente y flexible para construir aplicaciones complejas de IA generativa. Su diseño modular, capacidad de procesamiento asíncrono y profunda integración con los servicios de Google AI lo convierten en una opción ideal para el desarrollo de aplicaciones de IA modernas. Ya sea para construir sistemas de diálogo en tiempo real, tuberías de procesamiento multimodal o agentes de IA complejos, GenAI Processors proporciona las herramientas y capas de abstracción necesarias para simplificar el proceso de desarrollo.

Star History Chart