konverter
v0.1.2
Published
Wandelt Tabellen (Excel/CSV/JSON) ins tokensparendste Format fürs LLM — lokal & modellbewusst. CLI + Browser-Tool.
Maintainers
Readme
Konverter
Wandelt Tabellen-Dateien in das tokensparendste Format fürs LLM um — und zeigt schwarz auf weiß, wie viele Token (und damit Geld) du sparst.
Läuft vollständig lokal — als Browser-Tool und als CLI für Automatisierung/CI. Deine Datei verlässt nie deinen Rechner: kein Upload, kein Server, keine Netzwerkaufrufe. Auch die Token-Zählung passiert lokal.
Idee in einem Satz
Dieselben Daten kosten je nach Format sehr unterschiedlich viele Token. JSON wiederholt jeden Schlüssel in jeder Zeile; CSV/TOON/Markdown sind oft deutlich schlanker. Der Konverter probiert alle Formate durch, zählt mit dem echten Tokenizer des Zielmodells und wählt automatisch das sparsamste — typisch 40–60 % weniger Token bei gleicher Aussage.
Was reingeht / rauskommt
- Eingabe:
.xlsx/.xls,.csv,.json(tabellarisch: eine Liste flacher Objekte). Mehrere Tabellenblätter werden unterstützt. - Ausgabe: JSON · CSV · Markdown · TOON — das schlankste ist mit ★ markiert und vorausgewählt.
- Modelle: GPT-4o, GPT-4/3.5, Llama 3, Llama 2 (exakter lokaler Tokenizer) sowie Claude (lokale Schätzung, mit „≈" gekennzeichnet — kein API-Call).
Geltungsbereich & Grenzen
Konverter arbeitet in einer semantischen Domäne: tabellarische Daten (flache Datensätze — Kopfzeile + Zeilen). Intern wird jede Eingabe in ein gemeinsames Tabellen-Modell überführt (eine kanonische Zwischendarstellung) und daraus ins Zielformat kodiert.
Daraus folgt, was bewusst nicht unterstützt wird bzw. wo eine Konversion vereinfacht — offen benannt statt versteckt:
- Verschachtelte Daten (Objekte/Arrays in Zellen) werden mit klarer Meldung abgewiesen, nicht heimlich plattgeklopft.
- Typen über Formatgrenzen: JSON und Excel kennen Zahl/Boolean; CSV, Markdown und TOON sind
textuell — ein
truewird dort zum Texttrue. JSON↔CSV ist für Strings und Zahlen verlustfrei, Boolean ist die benannte Grenze. - Excel-Eigenheiten: Datumszellen werden zu ISO-Text normalisiert; Formeln werden als Werte gelesen, nie ausgeführt; reine Anzeige-Formatierung (Währung, Tausenderpunkte) entfällt — der Rohwert bleibt (fürs LLM kompakter und rechenbar).
Kurz: innerhalb tabellarischer Daten verlustfrei bis auf die genannten Typgrenzen — alles andere wird ehrlich abgewiesen statt verfälscht.
Lokal starten
npm ci --ignore-scripts # reproduzierbarer Install aus dem Lockfile, ohne postinstall-Scripts
npm run dev # Browser-Entwicklungs-Server (Vite)
npm run build # Web-Produktions-Build nach dist/
npm run build:cli # CLI-Build nach dist-cli/cli.jsCLI (Automatisierung / CI)
Gleiche Engine wie das Browser-Tool, für die Kommandozeile. Verhält sich wie ein normales
Unix-Werkzeug: Ergebnis nach stdout (pipebar), Infos nach stderr, Fehler mit Exit-Code ≠ 0.
So läuft es unverändert in jeder CI/Automatisierung — etwa als npx konverter …-Schritt in einer GitHub-Action.
npm run build:cli # baut dist-cli/cli.js
npm link # optional: macht den Befehl `konverter` global verfügbar
konverter daten.xlsx # → das schlankste Format nach stdout
konverter daten.json -o daten.csv # in eine Datei schreiben
konverter *.csv -m claude --report # mehrere Dateien (zusammengeführt), für Claude, mit Spar-Anzeige
cat export.json | konverter --from json # aus einer Pipe lesen| Flag | Bedeutung | Standard |
|------|-----------|----------|
| -f, --format | auto | json | csv | markdown | toon | auto (das schlankste) |
| -m, --model | gpt-4o | gpt-4 | llama-3 | llama-2 | claude | gpt-4o |
| -o, --out | Zieldatei | sonst stdout |
| --from | Eingabeformat erzwingen (für stdin) | aus Endung erkannt |
| --report | Spar-Statistik (nach stderr) | aus |
| --safe-csv | CSV-Formel-Zellen entschärfen (sicheres Öffnen in Excel) | aus |
Sicherheit & Datenschutz
- Lokal-only: keine Daten verlassen den Browser-Tab.
- Keine Formel-Ausführung: Excel-Formeln werden als Werte gelesen, nie ausgewertet.
- Härtung der Parser: Größen-Limit (50 MB), Zeilen-/Spalten-Limits gegen DoS/Zip-Bombs, Prototype-Pollution-Schutz bei JSON.
- Originalgetreue Ausgabe: Zellwerte werden standardmäßig nicht verändert. Für sicheres Öffnen
einer heruntergeladenen CSV in Excel entschärft das CLI-Flag
--safe-csvformel-artige Zellen (Opt-in).
Aufbau
src/
table.ts internes Tabellen-Modell (abhängigkeitsfrei) + Sicherheits-Limits + dedupeNames
parse/ Eingabe-Parser → Table[]
csv.ts Trennzeichen-Erkennung, RFC4180-Parse, konservative Zahl-Erkennung
json.ts tabellarisches JSON, weist Verschachteltes ab
xlsx.ts Excel (nur per dynamic import geladen)
index.ts Dispatcher (kindFromName) + textToTables
formats/ Ausgabe-Encoder (json | csv | markdown | toon), reine Funktionen + encodeWorkbook
tokens.ts Modell-Registry + Lazy-geladene Tokenizer (lokal)
convert.ts Orchestrierung: alle Formate kodieren, Token zählen, schlankstes wählen
main.ts Browser-UI
cli.ts Kommandozeile (Node): liest Dateien, ruft dieselbe Engine
Konfiguration:
vite.config (implizit, via index.html) Web-Build
vite.cli.config.ts CLI-Build → dist-cli/cli.jsLizenz
MIT — siehe LICENSE.
