Dieses Projekt demonstriert einen LLM-gesteuerten ETL-Prozess in einer .NET 8 Konsolenanwendung.
Herkömmliche ETL-Prozesse haben Schwierigkeiten mit sich ändernden CSV-Spaltennamen, aber dieser Ansatz verwendet ein LLM, um Spaltenzuordnungen zur Laufzeit zu inferieren.
Durch das Stichprobensampling der ersten Zeilen einer CSV fragt die Anwendung ein leichtgewichtiges llama3.2-3B-Modell ab, um zu identifizieren, welche CSV-Spalten einem festen Kundenschema entsprechen.
Die inferierte Zuordnung wird dann verwendet, um die gesamte CSV-Datei zu transformieren.
Der Prozess wandelt dynamische CSV-Daten in einen strukturierten Kunden-Datensatz mit den Feldern Id, Name, Email, SignupDate und IsActive um.
Die Methoden `Convert` und `Lookup` kümmern sich um die Datenharmonisierung und Typkonvertierungen, einschließlich der flexiblen Datumsanalyse.
Die Anwendung streamt die vollständige CSV-Datei, verarbeitet jede Zeile mithilfe der LLM-generierten Zuordnung und gibt zeilenweise getrennte JSON-Daten aus.
Diese Methode eliminiert die Notwendigkeit fragiler Konfigurationsdateien und geht elegant mit unordentlichen realen Daten um.
Die gesamte Lösung ist mit etwa 150 Zeilen C#-Code erstellt und nutzt Semantic Kernel und Ollama.
Dies zeigt die Leistungsfähigkeit von LLMs für die dynamische Datenintegration und bietet eine robuste und effiziente Alternative zu herkömmlichen ETL-Methoden.
dev.to
Unlock the Power of LLM-Driven ETL: Transform Variable CSV to Clean JSON with C#, Semantic Kernel & Llama 3.2-3B
