Login

Uma biblioteca Python leve para construir pipelines de processamento de IA modulares, assíncronos e combináveis, com suporte para processamento de conteúdo paralelo eficiente.

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

Detalhes do Projeto GenAI Processors

Visão Geral do Projeto

GenAI Processors é uma biblioteca Python leve para construir pipelines de processamento de IA modulares, assíncronos e composíveis, projetados especificamente para aplicações de IA generativa. Lançado pelo Google, este projeto visa simplificar o processo de desenvolvimento de aplicações de IA complexas, especialmente aquelas que precisam lidar com entradas multimodais e exigem respostas em tempo real.

Conceitos Centrais

Processor (Processador)

No coração do GenAI Processors está o conceito de Processor: um bloco de construção fundamental que encapsula uma unidade de trabalho específica. Ele recebe um fluxo de entrada, executa operações e produz um fluxo de saída. Cada Processor possui uma API simples e unificada:

# Qualquer classe que herde de processor.Processor e implemente esta função é um processador
async def call(
    content: AsyncIterable[ProcessorPart]
) -> AsyncIterable[ProcessorPartTypes]

ProcessorPart (Parte do Processador)

ProcessorPart é um invólucro em torno de genai.types.Part, com metadados ricos como tipo MIME, função e atributos personalizados. Suporta vários tipos de conteúdo (texto, imagem, áudio, JSON personalizado).

Principais Recursos

1. Design Modular

  • Decompõe tarefas complexas em unidades Processor e PartProcessor reutilizáveis
  • Pode ser facilmente encadeado (+) ou paralelizado (//) para criar fluxos de dados complexos e comportamentos de agente

2. Integração com a API GenAI

  • Inclui processadores prontos para uso, como GenaiModel para chamadas de API baseadas em turnos
  • Suporta LiveProcessor para interações de streaming em tempo real

3. Extensibilidade

  • Crie processadores personalizados herdando de classes base ou usando decoradores de função simples
  • Suporta extensões de processadores contribuídas pela comunidade

4. Assíncrono e Concorrente

  • Baseado na estrutura asyncio familiar do Python
  • Coordena tarefas concorrentes (incluindo E/S de rede e comunicação com sub-threads intensivas em computação)

5. Gerenciamento de Fluxo

  • Fornece utilitários para dividir, unir e mesclar fluxos assíncronos de ProcessorPart
  • Suporta processamento de streaming para reduzir a latência e o tempo para o primeiro token (TTFT)

Requisitos de Instalação

A biblioteca requer Python versão 3.10+.

Comando de instalação:

pip install genai-processors

Exemplo de Uso

Uso Básico

from genai_processors import content_api
from genai_processors import streams

# Cria um fluxo de entrada (strings são automaticamente convertidas em Parts)
input_parts = ["Hello", content_api.ProcessorPart("World")]
input_stream = streams.stream_content(input_parts)

# Aplica o processador ao fluxo de partes e itera sobre os resultados
async for part in simple_text_processor(input_stream):
    print(part.text)

Recursos de Aprendizagem

O projeto oferece uma série de notebooks Colab para ajudar os usuários a se familiarizarem com o GenAI Processors (sugere-se estudar em ordem):

  1. Content API Colab - Explica os fundamentos de ProcessorPart, ProcessorContent e como criá-los
  2. Processor Intro Colab - Uma introdução aos conceitos centrais do GenAI Processors
  3. Create Your Own Processor - Um passo a passo típico para criar seu próprio Processor ou PartProcessor
  4. Work with the Live API - Um exemplo de como construir processadores em tempo real a partir da API Gemini Live usando a classe LiveProcessor

Exemplos de Aplicação Prática

1. Exemplo de Live em Tempo Real

examples/realtime_simple_cli.py - Um agente Live de áudio de entrada e áudio de saída que integra a Pesquisa Google como ferramenta. Esta é uma implementação cliente de um processador Live, demonstrando as capacidades de streaming e orquestração do GenAI Processors.

2. Exemplo de Agente de Pesquisa

examples/research/README.md - Um agente de pesquisa construído usando Processors, incluindo 3 sub-processadores, processamento encadeado, criação de ProcessorPart, entre outras funcionalidades.

3. Exemplo de Narração em Tempo Real

examples/live/README.md - Um agente de narração em tempo real construído usando a API Gemini Live, composto por dois agentes: um para detecção de eventos e outro para gerenciamento de diálogo.

Estrutura do Projeto

Diretório Core

O diretório core/ contém um conjunto de processadores básicos que podem ser usados em suas próprias aplicações. Inclui blocos de construção genéricos necessários para a maioria das aplicações em tempo real e evoluirá ao longo do tempo para incluir mais componentes centrais.

Diretório Contrib

O diretório contrib/ contém extensões de processadores contribuídas pela comunidade, usadas para estender a coleção de processadores embutidos.

Vantagens Técnicas

1. Processamento de Baixa Latência

Mesmo para casos de uso não-streaming, o processamento imediato dos dados assim que disponíveis pode reduzir significativamente a latência e o tempo para o primeiro token (TTFT), o que é crucial para construir uma boa experiência do usuário.

2. Desenvolvimento de Aplicações Responsivas

Embora muitas APIs LLM priorizem interfaces síncronas e simplificadas, o GenAI Processors, ao aproveitar os recursos nativos do Python, oferece uma maneira de escrever aplicações responsivas sem tornar o código mais complexo.

3. Capacidade de Processamento Concorrente

Os exemplos de planejador de viagens e agente de pesquisa demonstram como os agentes baseados em turnos podem usar os recursos de concorrência do GenAI Processors para melhorar a responsividade.

Resumo

GenAI Processors oferece aos desenvolvedores uma estrutura poderosa e flexível para construir aplicações complexas de IA generativa. Seu design modular, capacidade de processamento assíncrono e profunda integração com os serviços de IA do Google o tornam uma escolha ideal para o desenvolvimento de aplicações de IA modernas. Seja para construir sistemas de diálogo em tempo real, pipelines de processamento multimodal ou agentes de IA complexos, o GenAI Processors fornece as ferramentas e camadas de abstração necessárias para simplificar o processo de desenvolvimento.

Star History Chart