GenAI Processors ist eine Open-Source-Python-Bibliothek, die von Google DeepMind entwickelt wurde und sich auf die effiziente parallele Verarbeitung von multimodalen Inhalten konzentriert. Sie basiert auf dem asyncio-Framework von Python und bietet eine modulare, wiederverwendbare Prozessorschnittstelle, die die Entwicklung komplexer KI-Anwendungen vereinfacht. Benutzer können diese Bibliothek zur Verarbeitung von Text-, Audio-, Video- und anderen Datenströmen verwenden und nahtlos in die Gemini-API integrieren. Sie unterstützt die Verarbeitung von Datenströmen in Echtzeit und rundenbasierte Interaktionen, wodurch sie sich für die Entwicklung von KI-Anwendungen eignet, die schnelle Reaktionszeiten erfordern. Der Code wird auf GitHub gehostet und die Community kann Prozessormodule beisteuern, um die Funktionalität zu erweitern. Das Projekt verwendet die Apache 2.0-Lizenz, die für Entwickler geeignet ist, um schnell KI-Anwendungen zu erstellen, die in Produktionsumgebungen verfügbar sind.
Funktionsliste
- asynchrone ParallelverarbeitungBasierend auf Python asyncio unterstützt es die effiziente Handhabung von E/A und rechenintensiven Aufgaben.
- Modulares ProzessordesignProcessor: Stellt Prozessor- und PartProzessor-Einheiten bereit, die komplexe Datenströme kombinieren oder parallelisieren können.
- Gemini-API-IntegrationEingebautes GenaiModel und LiveProcessor zur Unterstützung von rundenbasierten und Echtzeit-Streaming-Interaktionen.
- multimodale FlussverarbeitungUnterstützt das Aufteilen, Zusammenführen und Verarbeiten von Text-, Audio-, Video- und anderen Datenströmen.
- Interaktive Unterstützung in EchtzeitLiveProcessor verarbeitet Audio- und Videoströme in Echtzeit und eignet sich daher für die Entwicklung von Echtzeit-KI-Agenten.
- Erweiterung des GemeinschaftsbeitragsErweiterungen zur Unterstützung von Benutzern, die benutzerdefinierte Prozessoren zum contrib/-Verzeichnis hinzufügen.
- WerkzeugintegrationEingebaute Tools wie die Google-Suche verbessern die kontextbezogenen Verarbeitungsmöglichkeiten des KI-Agenten.
Hilfe verwenden
Einbauverfahren
GenAI Processors erfordert Python 3.10 oder höher. Hier sind die detaillierten Installationsschritte:
- Einrichten der Umgebung::
- Stellen Sie sicher, dass Python 3.10+ auf Ihrem System installiert ist.
- Installieren Sie Git, um das Code-Repository zu klonen.
sudo apt update && sudo apt install python3.10 git
- Klon-Lager::
- Klonen Sie das GenAI Processors Repository von GitHub.
git clone https://github.com/google-gemini/genai-processors cd genai-processors
- Installation von Abhängigkeiten::
- Verwenden Sie pip, um die erforderlichen Abhängigkeiten zu installieren, einschließlich pyaudio, google-genai und termcolor.
pip install --upgrade pyaudio genai-processors google-genai termcolor
- API-Schlüssel konfigurieren::
- Holen Sie sich den API-Schlüssel für Google AI Studio.
- Setzen von Umgebungsvariablen
GOOGLE_API_KEY
im Gesang antwortenGOOGLE_PROJECT_ID
.
export GOOGLE_API_KEY="你的API密钥" export GOOGLE_PROJECT_ID="你的项目ID"
Verwendung
Das Herzstück der GenAI-Prozessoren ist das Prozessor-Modul, das für die Verarbeitung von Eingabe- und Ausgabeströmen verwendet wird. Nachfolgend finden Sie einen detaillierten Ablauf der Hauptfunktionen:
1. eine einfache Textverarbeitung erstellen
- FunktionalitätTextverarbeitung: Verarbeitet Texteingaben und gibt Ergebnisse aus.
- Arbeitsablauf::
- Importieren Sie das Modul und erstellen Sie einen Eingabestrom.
- ausnutzen
stream_content
Konvertiert Text in einen ProcessorPart-Stream. - Wenden Sie den Prozessor an und gehen Sie die Ausgabe durch.
from genai_processors import content_api, streams input_parts = ["Hello", content_api.ProcessorPart("World")] input_stream = streams.stream_content(input_parts) async for part in simple_text_processor(input_stream): print(part.text)
- WirkungVerarbeitet und druckt den eingegebenen Text Stück für Stück, geeignet für einfache Textaufgaben.
2. den Aufbau von Audio- und Video-Agenten in Echtzeit
- FunktionalitätLiveProcessor: Verarbeitet Audio- und Videoströme in Echtzeit über den LiveProcessor.
- Arbeitsablauf::
- Initialisieren Sie ein Audio-Eingabegerät (z.B. PyAudio).
- Konfigurieren Sie den Videoeingang (z. B. Kamera oder Bildschirmstream).
- Verwenden Sie LiveProcessor, um die Gemini Live API aufzurufen.
- Kombinierte Eingabe-, Verarbeitungs- und Ausgabemodule.
from genai_processors.core import audio_io, live_model, video import pyaudio pya = pyaudio.PyAudio() input_processor = video.VideoIn() + audio_io.PyAudioIn(pya, use_pcm_mimetype=True) live_processor = live_model.LiveProcessor(api_key="你的API密钥", model_name="gemini-2.5-flash-preview-native-audio-dialog") play_output = audio_io.PyAudioOut(pya) live_agent = input_processor + live_processor + play_output async for part in live_agent(text.terminal_input()): print(part)
- WirkungErmöglicht die Verarbeitung von Mikrofon- und Kameraeingaben durch die Gemini-API zur Ausgabe von Audio, das für Echtzeit-Dialogagenten geeignet ist.
3. die Generierung von Forschungsthemen
- FunktionalitätGenerierung von Forschungsthemen auf der Grundlage von Benutzereingaben.
- Arbeitsablauf::
- ausnutzen
topic_generator.py
Beispiel für die Konfiguration von GenaiModel. - Legen Sie Modellparameter wie die Anzahl der Themen und das Ausgabeformat fest.
- Geben Sie eine Suchanfrage ein, um eine Liste von Themen im JSON-Format zu erhalten.
from genai_processors.examples.research.processors import topic_generator processor = topic_generator.TopicGenerator(api_key="你的API密钥") async for part in processor(["研究AI在医疗领域的应用"]): print(part.text)
- ausnutzen
- WirkungGenerieren Sie eine bestimmte Anzahl von Forschungsthemen und deren Beziehung zum Input, die für akademische Forschungsszenarien geeignet sind.
4. benutzerdefinierte Verarbeiter
- FunktionalitätErstellen von benutzerdefinierten Prozessoren zur Bearbeitung bestimmter Aufgaben.
- Arbeitsablauf::
- Beratung
create_your_own_processor.ipynb
Notizbuch. - Definieren Sie die Klasse Processor und erben Sie von
processor.Processor
. - realisieren
call
Methode verarbeitet den Eingabestrom. - Hinzufügen von benutzerdefinierten Prozessoren in die Pipeline.
- Beratung
- WirkungBenutzer können die Funktionalität nach Bedarf erweitern, z. B. um bestimmte Dateiformate zu verarbeiten oder andere APIs zu integrieren.
laufendes Beispiel
- CLI-Beispiel in Echtzeit::
- in Bewegung sein
realtime_simple_cli.py
Erstellen Sie einen Audio-Dialog-Agenten.
python3 examples/realtime_simple_cli.py
- Spracheingabe, das System wandelt die Stimme in Text um, verarbeitet sie und gibt eine Sprachantwort aus.
- in Bewegung sein
- Reiseplan CLI::
- in Bewegung sein
trip_request_cli.py
Erstellen Sie einen Reiseplan.
python3 examples/trip_request_cli.py
- Geben Sie Ihr Ziel und Ihre Daten ein, um einen detaillierten Plan zu erhalten.
- in Bewegung sein
caveat
- Vergewissern Sie sich, dass der API-Schlüssel gültig ist, damit die Anfrage nicht fehlschlägt.
- Sie können dies während der Fehlersuche einstellen
--debug=True
Logbuch ansehen. - Die Echtzeitverarbeitung erfordert eine stabile Netzwerk- und Hardwareunterstützung.
Anwendungsszenario
- Dialog-Agenten in Echtzeit
- BeschreibungenEntwicklung von sprach- oder videogesteuerten KI-Assistenten, die Benutzereingaben in Echtzeit verarbeiten und sich für den Kundendienst oder virtuelle Assistenten eignen.
- Unterstützung der akademischen Forschung
- BeschreibungenGenerieren von Forschungsthemen oder Analysieren von Literatur, geeignet für Studenten und Forscher, um ihre Gedanken schnell zu ordnen.
- Multimodale Verarbeitung von Inhalten
- BeschreibungenVerarbeitet Audio- und Videoströme, um Untertitel oder Echtzeit-Erzählungen zu erzeugen, die für Live-Streaming oder Videoanalysen geeignet sind.
- Automatisierte Arbeitsabläufe
- BeschreibungenErstellen von automatisierten Verarbeitungspipelines zur Verarbeitung von Stapeldaten, die für die Datenverarbeitung in Unternehmen geeignet sind.
QA
- Welche Voraussetzungen sind erforderlich?
- Erfordert Python 3.10+, Installation der Bibliotheken pyaudio und google-genai, Einrichtung eines Google-API-Schlüssels.
- Wie kann ich den Verarbeitungsablauf debuggen?
- Wenn Sie das Skript ausführen, fügen Sie
--debug=True
sehen Sie sich die Protokollausgabe an und überprüfen Sie die Eingangs- und Ausgangsströme.
- Wenn Sie das Skript ausführen, fügen Sie
- Welche Datentypen werden unterstützt?
- Unterstützt Text, Audio, Video und benutzerdefinierte Datenströme, die von ProcessorPart verarbeitet werden können.
- Wie kann ich Code beisteuern?
- Beratung
CONTRIBUTING.md
übermitteln Sie einen benutzerdefinierten Prozessor im Verzeichnis contrib/.
- Beratung