feat: automatische Wort-Kategorisierung (Batches API + Sofort-Backfill)
Feste ~20er-Taxonomie geseedet (de/en/sv, published; bestehende Kategorien werden wiederverwendet) + Tabelle category_batches. src/lib/classifyWords.js: findet in Pairs verwendete Wörter ohne Kategorie und klassifiziert sie per Haiku gegen die feste Liste. - Stundenjob über die Message Batches API (asynchron, ~50% günstiger): submit/collect-Ticks, in index.js nach Boot + stündlich. - Sofortiger synchroner One-Shot-Backfill (classifyWordsSync) für Live-Test ohne 24h-Verzug. Beides materialisiert pair_categories via derivePairCategories. POST /api/categories/auto-assign (admin): ?sync=true = Sofort-Backfill, sonst ein Batch-Tick. Entkoppelt von generate-words und Publish. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -62,5 +62,13 @@ migrate()
|
||||
// Hängengebliebene Pipeline-Läufe (z.B. nach Redeploy) wieder aufnehmen
|
||||
require('./lib/pipeline').resumePending()
|
||||
.catch(err => console.error('Pipeline-Resume fehlgeschlagen:', err));
|
||||
|
||||
// Automatische Wort-Kategorisierung (Message Batches API): kurz nach Boot + stündlich.
|
||||
// Submit/Collect-Ticks, entkoppelt von generate-words und Publish.
|
||||
const { runCategorizationTick } = require('./lib/classifyWords');
|
||||
const HOUR = 60 * 60 * 1000;
|
||||
const tick = () => runCategorizationTick().catch(err => console.error('Auto-Kategorisierung:', err.message));
|
||||
setTimeout(tick, 30_000);
|
||||
setInterval(tick, HOUR);
|
||||
})
|
||||
.catch(err => { console.error('Migration failed:', err); process.exit(1); });
|
||||
|
||||
Reference in New Issue
Block a user