Ein Artikel über Meta, den ich im Internet gelesen habe, und die Aufgabe eines Trainees bei uns in der Firma hat mich dazu gebracht mir das Thema AI Agent’s anzuschauen. Vorweg möchte ich alle die das lesen dazu motivieren, sich aktiv mit dem Thema AI auseinanderzusetzen. Ich befürchte das alle, die jetzt nicht auf den Zug aufspringen, über kurz oder lang unter die Räder ebenjenes kommen. Die Tragweite meiner Aussage ist mir durchaus bewusst. Die aktuelle Entwicklung ist menschlich keine gute wie ich finde, aber die großen Player haben die Büchse der Pandora aufgemacht, und diese werden wir alle nicht mehr schließen können. Deshalb heißt es, mitschwimmen, den Kopf über Wasser halten, sonst säuft man ab. Das zeigt das Beispiel Meta. Hier ersetzen gerade KI Agent’s 8000 Mitarbeiter und Führungskräfte. Und das innerhalb von 4 Monaten Entwicklungszeit. Ob ich mit meinen Gedanken richtig liege wird die Zeit zeigen.
Solange schwimmen wir mal los … Die Funktionalität welche die großen Firmen gerade nutzen, kann man auch selbst als DIY Bastler hervorragend verwenden. Ich will das folgend an einem Beispiel zeigen und für Anregung sorgen. Ich weiß das ihr auf allerhand großartige Ideen und pfiffige Lösungen kommt, und freue mich schon darauf mich mit euch über eure Anwendungsfälle zu Unterhalten.
Für ein Projekt an dem ich gerade arbeite benötige ich Informationen die auf kleine Karten gedruckt sind. Diese sollen ausgelesen und als JSON zur Verfügung gestellt werden. Dazu habe ich einen Agent gebaut, was recht simpel war. Zunächst einmal die Ordnerstruktur und die Dateien anlegen.

In der Datei agent.py ist das Python Script für den Agent. In .env ist der API-Key gespeichert. Diesen kann man sich unter aistudio.google.com holen.

Sobald man einen API-Key hat, kann man prüfen welche Modelle einem zur Verfügung stehen
Python:
# Test-Script zum Auflisten der Modelle
for model in client.models.list():
print(f"Name: {model.name}, Supported Methods: {model.supported_actions}")
Für Gemini 1.5 Flash beispielsweise sind die kostenlosen Limits folgendermaßen:
Rate Limit: Bis zu 15 Anfragen pro Minute (RPM).
Tageslimit: Bis zu 1.500 Anfragen pro Tag (RPD).
Token-Limit: 1 Million Token Kontextfenster.
Jetzt schreibt man einen Prompt für die Aufgabe die der Agent ausführen soll:
Prompt:
Du bist ein spezialisierter Assistent zur Datenextraktion aus Bilddateien. Deine Aufgabe ist es, Informationen von einer Rezeptkarte in ein präzises JSON-Format zu überführen.
Analyse der Bildbereiche:
Rezeptname: Befindet sich oben links in der weißen Box.
Rezeptgruppe: Befindet sich oben rechts in der weißen Box.
QR-Code: Befindet sich unten in der Mitte.
Zutaten: Liste auf der rechten Seite unter der Überschrift "Zutaten".
Optionale Zutaten: Falls vorhanden, unter der Überschrift "Optional".
Gewürze: Falls vorhanden, unter der entsprechenden Überschrift.
JSON-Strukturvorgaben:
Verwende exakt die folgende Struktur. Wenn eine Kategorie fehlt, setze null oder [].
Achte darauf, Menge und Einheit korrekt zu trennen. Falls keine Einheit angegeben ist, verwende null.
Wichtig: Gib als Antwort ausschließlich den reinen JSON-Code zurück. Keine Erklärungen, kein Markdown-Code-Block.
{
"rezeptname": "String oder null",
"rezeptgruppe": "String oder null",
"qr_code": "String oder null",
"zutaten": [],
"optional": [],
"gewuerze": []
}
Zuguterletzt fehlt noch das Python Script, wofür zusätzliche Pakete benötigt werden.
Bash:
pip install -U google-generativeai
pip install python-dotenv
pip install Pillow
Das Script schaut im Ordner img_new ob es dort Bilder gibt. Die Bilder werden geladen und an das Model übergeben. Das Ergebnis wird als JSON File gespeichert und das Bild entweder als erledigt in den vorgesehenen Ordner geschoben oder in den Error Ordner.
Das Sahnehäubchen bildet inotify welches in jedem Linux Kernel integriert ist. Um es zu nutzen verwenden wir inotify-tools
Bash:
sudo apt update
sudo apt install inotify-tools
Hiermit können wir den Agent automatisieren.
#!/bin/bash
MONITOR_DIR="/ai_agent/img_new"
inotifywait -m "$MONITOR_DIR" -e create |
while read path action file; do
echo "Neue Datei erkannt: $file"
python /ai_agent/agent.py "$path$file"
done
Sobald man eine neue Datei in den Ordner schiebt, registriert es das System und führt agent.py aus. Als Resultat erhalten wir unser JSON File.
JSON:
{
"rezeptname": "POMMES MIT QUARK-DIP",
"rezeptgruppe": "SMARTE SPAR-REZEPTE",
"qr_code": "https://scanned.page/heNp4I",
"zutaten": [
{
"menge": 1,
"einheit": "kg",
"name": "festkochende Kartoffeln"
},
{
"menge": 600,
"einheit": "g",
"name": "Quark"
},
{
"menge": null,
"einheit": null,
"name": "Zitronensaft nach Geschmack"
}
],
"optional": [
{
"menge": 2.5,
"einheit": "EL",
"name": "neutrales Öl"
},
{
"menge": 2,
"einheit": "EL",
"name": "Tomatenmark"
}
],
"gewuerze": [
"Salz",
"Pfeffer",
"Paprika edelsüß",
"Kräuter der Provence",
"Knoblauchpulver"
]
}