Kleiner Disclaimer am Anfang: Im großen und ganzen finde ich KI aktuell „overhyped“. Jeder versucht mit allen Mitteln und Möglichkeiten KI in seinen Produkten zu verkaufen. Doch nur weil etwas mit KI geht, muss es nicht zwingend heißen, dass es auch mit KI gemacht werden sollte.
Nichtsdestotrotz arbeite ich als Anwendungsentwickler in einem Beruf, in dem ich das Thema nicht weg ignorieren kann. Dementsprechend habe ich mich in den letzten Wochen und Monaten auch etwas genauer damit auseinander gesetzt und einiges an Wissen angesammelt.
Für mich gilt immer die Frage: Wo kann ich KI sinnvoll einsetzen. Und ein kleines – für mich sinnvolles – Projekt möchte ich euch hier heute vorstellen.
Problem
Wie die meisten von euch bekomme ich einiges an Post und Mails mit PDFs. Seien das Rechnungen, Lieferscheine, Infos von der Gemeinde oder anderweitiges Material in Briefform.
Schon vor langer Zeit habe ich mir angewöhnt, diese Dokumente zu scannen, bzw. auf meinem NAS einzusortieren. Die Dateien werden in Ordnern mit dem Namen des Korrespondenten abgespeichert. Der Dateiname soll das Datum des Dokumentes beinhalten, um was es sich handelt und evtl. eine kleine Info (Zum Beispiel bei einer Rechnung: Was wurde gekauft?).
Das Scannen, anschließende Sichten, benennen und einsortieren der Dokumente nimmt immer etwas Zeit in Anspruch. Meist lasse ich ein paar Dokumente zusammen kommen und nehme mir dann 30-60 Minuten um sie sauber zu benennen und zu verschieben.
Eine schnellere Lösung?
Das benennen und einsortieren ist eintönig und mühsam. Eine „richtig“ automatisierte Lösung habe ich bisher nicht gefunden. Ja, ich kenne paperless, aber da hängt wieder ein recht großer „Rattenschwanz“ dran: Dokumente sind standardmäßig in einer „Blackbox“, Updates um die ich mich kümmern muss und eigentlich ist es für das was ich will zu overpowered.
Aber ich brauche ja sowieso ein paar kleine Projekte, die ich mit einem LLM-Modell abbilden kann, also bietet sich das doch an.
Umsetzung
Die Umsetzung gestaltete sich recht einfach, wenn man etwas in der Materie ist. Ich habe mir ein Python-Skript geschrieben, dass die Dokumente nacheinander an ein LLM-Modell (die KI) weitergibt. Zusammen mit einer Systemprompt in der ich genau beschreibe was ich möchte (Welches Datum, wie soll das Datum aussehen, wie soll der Dateiname aussehen, etc.).
Als Ergebnis möchte ich ein JSON-Objekt bekommen, das u. a. den vorgeschlagenen Dateinamen verwendet. Diesen Dateinamen verwende ich im weiteren Skript um die Datei um zu benennen und zu verschieben.
Der Ablauf ist also ungefähr so:
Dokument -> LLM -> JSON-Objekt mit Dateinamen -> umbenannte Datei an neuem Ort.
Als LLM bzw. KI verwende ich ollama, mit dem LLM-Modelle lokal auf dem eigenen Rechner ausgeführt werden können. Das verwendete Modell ist in meinem Fall phi4, ist aber recht einfach änderbar. Meine privaten Dokumente möchte ich nämlich nicht an irgend einen Cloud-Anbieter weitergeben, der dann womöglich seine neuen Modelle damit trainiert.
Das Ergebnis?
Überraschend gut, aber natürlich nicht perfekt. Das Modell ist relativ klein und hat schon alleine dadurch seine Grenzen. Von 10 Dateien, liegt das Modell bei ca. 2 daneben (z. B. falsches Datum, weil es die Handschrift nicht gut erkennen konnte o. ä.), was ganz ordentlich ist.
Für ~40 Dateien kann man mit ca. 30 Minuten Verarbeitungszeit rechnen, was bei einem MacBook Air mit M1-CPU meiner Meinung nach auch gar nicht so schlecht ist.
Viel schneller wäre ich manuell auch nicht gewesen und ich kann meine Zeit in der Zwischenzeit sinnvoller nutzen.
Zum Schluss muss ich die Dateien nur noch einsortieren. Als nächsten Schritt, sollten die Dateien am besten auch noch richtig einsortiert werden.
Fazit
Mit relativ wenig Aufwand (ich glaube es waren 2-3 Stunden) habe ich einen kleinen KI-Workflow geschaffen, mit dem ich mir mehr Zeit verschaffe und Namen der Dokumente nur noch kontrollieren muss. Die Dateinamen sind so wie ich es mir vorstelle und ich kann die Dateien weiterhin in meiner Gewohnten Ordnerstruktur belassen.
Und Ihr?
Wie sieht es bei euch aus? Habt ihr euch auch schon kleine Workflows gebaut? Oder generell mit dem Thema auseinander gesetzt? Sollte ich mal einen Beitrag über die Grundlagen von KI/LLM schreiben um die ganzen Schlagwörter, die man in dem Zusammenhang immer wieder hört zu erklären?
Oder konkrete Fragen? Gerne in die Kommentare damit.