LLM Einbindung in OpenRefine
Die LLM‑Extension erweitert OpenRefine um Funktionen, die große Sprachmodelle (LLMs) direkt in Datenbereinigungs- und Anreicherungs‑Workflows integrieren. Typische Einsatzszenarien sind das Extrahieren von Informationen aus Freitext, das Normalisieren uneinheitlicher Schreibweisen oder das Generieren neuer strukturierter Felder.
Installation
Die Installation erfolgt wie in der Einleitung beschrieben.
Repository: https://github.com/sunilnatraj/llm-extension
- ZIP herunterladen (vom GitHub‑Release oder Repo).
- Inhalt des ZIP‑Archivs in den OpenRefine‑Ordner
webapp/extensionsentpacken.- In diesem Verzeichnis liegen bereits einige mitgelieferte Erweiterungen.
- Nach dem Entpacken sollte ein Ordner
llm-extensionvorhanden sein.
- OpenRefine starten und ein Projekt öffnen.
- Ist die Installation erfolgreich, erscheint in der Menüleiste ein „AI“‑Button neben Extensions.
LLM‑Provider hinzufügen
Eine detaillierte Dokumentation zum hinzufügen von verschiedenen LLM-Providern und eine Erklärungen der möglichen Parameter findet sich in der Github Dokumentation. Wir wollen hier aber die wichtigsten Schritte zusammenfassen:
- In OpenRefine den AI‑Button öffnen → Manage LLM Providers.
- Hier sieht man die vorhandenen Modelle sowie Links zu Setup Guide und Feature Guide.
- Add LLM Provider auswählen und die Felder ausfüllen:
- Label: interne Bezeichnung für das Modell.
- Endpoint‑URL:
/chat/completions‑kompatibel (siehe Provider‑Guide, falls kein direkter Endpoint vorliegt). - Model name: z. B.
gpt‑…,claude‑…,llama‑…etc. - API Key: je nach Anbieter (Erstellung siehe jeweilige Provider‑/Anbieter‑Dokumentation).
- Parameter:
- Temperature & Top‑P (steuern Kreativität/Determinismus).
- Seed (optional, für reproduzierbare Ergebnisse).
- Max Tokens und Rate‑Limit‑Wartezeit (zur Steuerung von Kosten/Last).
- Test service:
- Ein kurzer Test ist möglich. Auch wenn gelegentlich eine Fehlermeldung erscheint, kann die Modellnutzung im eigentlichen Datenworkflow dennoch funktionieren.
- Save – der Provider steht nun in der Extension zur Verfügung.
Bei der Option Test service im LLM Provider Menü kommt es regelmäßig zu Fehlermeldungen. Diese sind auch möglich wenn der Service korrekt konfiguriert wurde. Um ein sachgemäßes Arbeiten des Models zu testen, sollte daher direkt eine Anwendung auf den Daten durchgeführt werden.
KI‑gestützte Extraktion/Transformation anwenden
Neue Prompts anwenden
Zum Anwendungsdialog für die AI-Extension gelangen wir über Column Dropdown → Extract using AI. Auch wenn der Name der Funktion darauf hindeutet, dass hier nur Daten mithilfe von KI-Anwendungen extrahiert werden können, ist die tatsächliche Funktionalität durch den jeweiligen Prompt gegeben.
Im Dialog kann konfiguriert werden:
- Column:
- Update existing (in dieselbe Spalte schreiben) oder
- Create new (eine neue Ergebnis‑Spalte erzeugen).
- LLM Provider: zuvor eingerichteten Dienst auswählen.
- Response format: in vielen Fällen Text (weitere Formate je nach Extension‑Stand).
- Prompt: klare Anweisung, Eingabeformat und gewünschtes Ausgabeformat definieren.
Beispiel‑Prompt (Namen normalisieren):
I will show you names in different formats. Normalize each to "GivenName Surname".
Return only "GivenName Surname". If the cell is empty, return an empty string.
Im Reiter Preview kann mit der Auswahl Generate Preview eine Vorschau des Ergebnisses des Prompts auf den ersten Wert in der Spalte erstellt werden. Anhand des Verhaltens hier kann der Prompt anschließend weiter bearbeitet werden.
Prompts werden pro Zelle als separate Anfrage ausgeführt.
Das bedeutet: Werte/Zellen können nicht innerhalb einer einzelnen AI‑Abfrage miteinander verknüpft oder über mehrere Zeilen/Spalten hinweg gemeinsam verarbeitet werden.
Typische Anwendungsfälle:
- Uneinheitliche Namensformate harmonisieren (z. B. „Surname, GivenName“ → „GivenName Surname“).
- Geburts-/Todesjahr (und ggf. -ort) aus biografischem Freitext extrahieren.
- Kurze Kategorisierung/Tagging aus Beschreibungen erzeugen.
- Adressen/Orte vornormalisieren (mit klaren Felddefinitionen im Prompt).
Best Practice: Stellen Sie sicher, dass der Prompt eindeutig das gewünschte Ziel‑Schema beschreibt (Feldreihenfolge, Trennzeichen, erlaubte/unerlaubte Werte), um konsistente Ergebnisse zu erhalten.
Prompts wiederverwenden
Im Anwendungsdialog unter Column Dropdown → Extract using AI befinden sich auch die Reiter History und Starred.
- History: bietet eine Übersicht über all bereits verwendeten Prompts mit Beschreibungen zu den jeweiligen Konfigurationen. Hier können Prompts nun entweder als Favoriten mit Stern gekennzeichnet werden oder direkt wieder geladen werden.
- Starred: zeigt die Übersicht an Prompts welche im Reiter History mit einem Stern als Favoriten gekennzeichnet wurden. Gekennzeichnete Prompts können entfernt oder direkt geladen werden.
Tipps und weitere Informationen
Prompt‑Tipps
- Explizit sein: gewünschtes Format, Beispiele, leere Fälle definieren.
- Determinismus: Temperature niedrig (z. B. 0.0–0.2) für reproduzierbare, regelnahe Outputs.
- Validierung: Antwort auf ein Feld oder ein JSON‑Snippet begrenzen (wenn unterstützt).
- Kleine Batches: erst an Teilmengen testen, dann auf den gesamten Datensatz anwenden.
Fehlerbilder & Troubleshooting
- „Test service“ meldet Fehler, aber Batch läuft: Test ist nicht immer repräsentativ; maßgeblich ist das Verhalten beim tatsächlichen Spaltenlauf.
- Uneinheitliche Outputs: Prompt präzisieren (Ausgabeformat strikt festlegen), Temperature senken, Beispiele beifügen.
- Leere Antworten: Edge‑Cases im Prompt definieren (z. B. „If input is empty, return empty string“).
- Zeitüberschreitungen: Max Tokens reduzieren, Batches verkleinern, Wartezeit erhöhen.
Qualitätssicherung & Wiederholbarkeit
- Vorher/Nachher: Bei zerstörungsfreier Arbeit neue Spalten erstellen (nicht „Update existing“), um Vergleiche zu ermöglichen.
- Facets: Nach einem AI‑Durchlauf Text Facets nutzen, um Ausreißer schnell zu erkennen.
- Undo/Redo: OpenRefine speichert jeden Schritt; misslungene Läufe können rückgängig gemacht werden.
- Rate Limits & Kosten: Große Datensätze in Batches verarbeiten; Pausen konfigurieren (Provider‑Einstellungen).
Tipp: Mit 20–50 Zeilen starten, Format & Qualität verifizieren, Prompt/Parameter anpassen und erst dann auf den gesamten Datensatz skalieren.
Datenschutz & Governance
Wichtig: Inhalt, Kosten und Datenschutz hängen vom jeweiligen LLM‑Provider ab und nicht von OpenRefine. Prüfen Sie Datenklassifizierung, Nutzungsbedingungen, Logging und Speicherorte der Anbieter. Für sensible Daten ggf. on‑prem bzw. Self‑Hosted‑Modelle oder lokal betriebene Gateways verwenden.