Login

Une bibliothèque Python légère pour construire des pipelines de traitement d'IA modulaires, asynchrones et composables, prenant en charge un traitement de contenu parallèle efficace.

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

Présentation détaillée du projet GenAI Processors

Aperçu du projet

GenAI Processors est une bibliothèque Python légère conçue pour construire des pipelines de traitement d'IA modulaires, asynchrones et composables, spécialement conçue pour les applications d'IA générative. Ce projet a été lancé par Google dans le but de simplifier le processus de développement d'applications d'IA complexes, en particulier celles qui nécessitent de traiter des entrées multimodales et exigent des réponses en temps réel.

Concepts clés

Processor (Processeur)

Au cœur de GenAI Processors se trouve le concept de Processor : un bloc de construction fondamental qui encapsule une unité de travail spécifique. Il reçoit un flux d'entrée, exécute une opération et produit un flux de sortie. Chaque Processor possède une API simple et unifiée :

# Toute classe héritant de processor.Processor et implémentant cette fonction est un processeur
async def call(
    content: AsyncIterable[ProcessorPart]
) -> AsyncIterable[ProcessorPartTypes]

ProcessorPart (Partie de Processeur)

ProcessorPart est un wrapper autour de genai.types.Part, doté de métadonnées riches telles que le type MIME, le rôle et les attributs personnalisés. Il prend en charge divers types de contenu (texte, image, audio, JSON personnalisé).

Fonctionnalités clés

1. Conception modulaire

  • Décompose les tâches complexes en unités Processor et PartProcessor réutilisables.
  • Peut être facilement chaîné (+) ou parallélisé (//) pour créer des flux de données et des comportements d'agent complexes.

2. Intégration avec l'API GenAI

  • Inclut des processeurs prêts à l'emploi, tels que GenaiModel pour les appels d'API basés sur des tours.
  • Prend en charge LiveProcessor pour les interactions de streaming en temps réel.

3. Extensibilité

  • Permet de créer des processeurs personnalisés en héritant des classes de base ou en utilisant de simples décorateurs de fonction.
  • Prend en charge les extensions de processeurs contribuées par la communauté.

4. Asynchrone et concurrence

  • Basé sur le framework asyncio familier de Python.
  • Coordonne les tâches concurrentes (y compris les E/S réseau et la communication avec les sous-threads gourmands en calcul).

5. Gestion des flux

  • Fournit des utilitaires pour diviser, joindre et fusionner des flux asynchrones de ProcessorPart.
  • Prend en charge le traitement en continu (streaming) pour réduire la latence et le temps du premier jeton (TTFT).

Exigences d'installation

Cette bibliothèque nécessite Python 3.10+.

Commande d'installation :

pip install genai-processors

Exemple d'utilisation

Utilisation de base

from genai_processors import content_api
from genai_processors import streams

# Crée un flux d'entrée (les chaînes de caractères sont automatiquement converties en Parts).
input_parts = ["Hello", content_api.ProcessorPart("World")]
input_stream = streams.stream_content(input_parts)

# Applique le processeur au flux de parties et itère sur les résultats.
async for part in simple_text_processor(input_stream):
    print(part.text)

Ressources d'apprentissage

Le projet propose une série de notebooks Colab pour aider les utilisateurs à se familiariser avec GenAI Processors (il est recommandé de les suivre dans l'ordre) :

  1. Colab de l'API de Contenu - Explique les bases de ProcessorPart, ProcessorContent et comment les créer.
  2. Colab d'Introduction aux Processeurs - Introduction aux concepts fondamentaux de GenAI Processors.
  3. Créez votre propre Processeur - Explication pas à pas des étapes typiques pour créer un Processor ou un PartProcessor.
  4. Travailler avec l'API Live - Exemple de construction de processeurs en temps réel à partir de l'API Gemini Live à l'aide de la classe LiveProcessor.

Exemples d'applications pratiques

1. Exemple Live en temps réel

examples/realtime_simple_cli.py - Un agent Live d'entrée audio-sortie audio, intégrant la recherche Google comme outil. Il s'agit d'une implémentation client d'un processeur Live, démontrant les capacités de streaming et d'orchestration de GenAI Processors.

2. Exemple d'agent de recherche

examples/research/README.md - Un agent de recherche construit avec des Processeurs, incluant 3 sous-processeurs, le traitement en chaîne, la création de ProcessorPart, etc.

3. Exemple de commentaire en temps réel

examples/live/README.md - Un agent de commentaire en temps réel construit avec l'API Gemini Live, composé de deux agents : un pour la détection d'événements et un autre pour la gestion de la conversation.

Structure du projet

Répertoire Core

Le répertoire core/ contient un ensemble de processeurs de base que vous pouvez utiliser dans vos propres applications. Il inclut les blocs de construction génériques nécessaires à la plupart des applications en temps réel et évoluera au fil du temps pour inclure davantage de composants essentiels.

Répertoire Contrib

Le répertoire contrib/ contient des extensions de processeurs contribuées par la communauté, destinées à étendre la collection de processeurs intégrés.

Avantages techniques

1. Traitement à faible latence

Même pour les cas d'utilisation non-streaming, le traitement immédiat des données dès qu'elles sont disponibles peut réduire considérablement la latence et le temps du premier jeton (TTFT), ce qui est crucial pour une bonne expérience utilisateur.

2. Développement d'applications réactives

Bien que de nombreuses API LLM privilégient des interfaces synchrones et simplifiées, GenAI Processors offre un moyen d'écrire des applications réactives en tirant parti des fonctionnalités natives de Python, sans complexifier le code.

3. Capacité de traitement concurrent

Les exemples d'agent de planification de voyage et d'agent de recherche montrent comment les agents basés sur des tours peuvent utiliser les capacités de concurrence de GenAI Processors pour améliorer la réactivité.

Conclusion

GenAI Processors offre aux développeurs un cadre puissant et flexible pour la construction d'applications d'IA générative complexes. Sa conception modulaire, ses capacités de traitement asynchrone et son intégration profonde avec les services Google AI en font un choix idéal pour le développement d'applications d'IA modernes. Qu'il s'agisse de construire des systèmes de dialogue en temps réel, des pipelines de traitement multimodal ou des agents d'IA complexes, GenAI Processors fournit les outils et les couches d'abstraction nécessaires pour simplifier le processus de développement.

Star History Chart