npm Security Audit + Dependabot Aktivierung
Mein organisch gewachsenes KI-Setup brauchte dringend einen Architektur-Frühjahrsputz. Dabei habe ich zwei zentrale Probleme gelöst: die Sicherheit meiner Skripte und die Qualität der Datenextraktion aus PDFs.
Automatisierte Sicherheit mit Dependabot
Bei der schnellen Iteration mit verschiedenen KI-Bibliotheken verliert man leicht den Überblick über Abhängigkeiten. Da das GitHub Secret Scanning für private Repositories ohne Enterprise-Upgrade kostenpflichtig ist, habe ich mich auf die Sicherheit meiner Open-Source-Pakete konzentriert. Zu meiner Überraschung waren die Vulnerability Alerts von Dependabot in meinen Repositories standardmäßig deaktiviert. Ich habe diese umgehend eingeschaltet und lokal einen Security Audit via npm audit durchgeführt.
Das Ergebnis war aufschlussreich: Während neuere Projekte sauber waren, wies ein älterer Assistent gleich acht Schwachstellen durch veraltete Pakete auf. In einer Welt, in der KI-Bibliotheken wöchentlich Updates erhalten, ist diese automatisierte Überwachung und Sichtbarkeit unerlässlich.
Bessere LLM-Ergebnisse durch Docling
Das zweite Problem betraf die Datenextraktion. Bisherige Standard-Bibliotheken machten aus PDF-Tabellen oft unstrukturierten Textbrei. Das führte dazu, dass die Sprachmodelle halluzinierten und ich unnötig viele Tokens für erklärendes Prompting verbrauchte.
Meine Lösung ist Docling, ein Open-Source-Projekt von IBM-Forschern. Es nutzt kleine Computer-Vision-Modelle, um das Seitenlayout zu verstehen, und wandelt komplexe PDFs nicht in reinen Text, sondern in sauberes, strukturiertes Markdown um. Anstatt Docling in jedes Tool einzeln einzubauen, habe ich einen zentralen Microservice als Docker-Container mit REST-API aufgesetzt. Alle meine KI-Tools schicken PDFs nun dorthin und erhalten Markdown zurück. Für den Notfall gibt es einen automatischen Fallback auf die alten Extraktoren.
Das wichtigste Learning: Durch das saubere Markdown-Format von Docling spare ich bei tabellenreichen PDFs nun 20 bis 40 Prozent der Tokens ein, da das LLM die Struktur ohne lange Erklärungen im System-Prompt sofort versteht.