name: mondgeschichten-ingest-stufe3
description: "#zeitlos — der fehlende Pipeline-Schritt: chat_history.jsonl → nomic-embed-text → Qdrant docs_crumbforest (ingest_mondgeschichten.py)"
metadata:
node_type: memory
type: project
originSessionId: c7f9bbe0-de0f-488c-be2f-724f5799be7c
modified: 2026-07-25T19:58:27.236Z


Die mondgeschichten-Pipeline hatte eine Lücke: Stufe 3 (Qdrant-Ingest) existierte nirgends. Weder im mondgeschichten-Repo (moon_storyteller.py liest/webt nur) noch in CrumbPapers (parse_chat_history.sh sagt selbst „kein qdrant"). Am 2026-07-25 gebaut und einmal komplett durchgelaufen.

Die Pipeline (jetzt vollständig):

chat_history.jsonl → parse_chat_history.sh → blog_DATE_de.json (Fossilien)   [Stufe 1-2, nullfeld]
chat_history.jsonl → nomic-embed-text (Ollama) → Qdrant docs_crumbforest      [Stufe 3, crumbdesktop]  ← NEU
docs_crumbforest → moon_storyteller.py → Einschlafgeschichte + StrudelJS       [Stufe 4]

Das Werkzeug: ingest_mondgeschichten.py — liegt zeitlos im mondgeschichten-Repo (git.crumbforest.org/branko/mondgeschichten). Eigenschaften:
- pro Q&A ein Qdrant-Punkt; content = „Krümel fragte: … / antwortete: …"
- Embedding lokal über nomic-embed-text (Ollama, 768-dim) — #ohne Cloud
- additiv (rührt ozmai_chunks nicht an) & idempotent: Point-IDs = UUID5(namespace, timestamp|question) → Re-Ingest dupliziert nicht, ergänzt nur Fehlendes
- nur stdlib (kein pip), pure REST gegen Ollama + Qdrant
- --dry-run / --limit N fĂźr sicheres Vortasten
- payload: source, content, question, answer, character_id/name, lang, date, timestamp, channel_id: mondgeschichten

Erstlauf-Beleg: Teil-Kopie (150) → volle Kopie neu → 391 Punkte, green, 0 fehlgeschlagen. Idempotenz bestätigt (150 nicht dupliziert).

Zugang (Kodex): Läuft auf crumbdesktop (Qdrant+Ollama an localhost). Dorthin nur per human loop — siehe [[kodex-m4-zugang-ueber-nullfeld]]. Quelle chat_history.jsonl von nullfeld per scp auf crumbdesktop holen, dann Skript mit CHAT_HISTORY=~/chat_history.jsonl laufen lassen.

Why: Der Schritt existierte nirgends und musste erfunden werden — ohne Node erfindet ihn der nächste Krümel wieder neu.
How to apply: docs_crumbforest neu befüllen/auffrischen → ingest_mondgeschichten.py (idempotent, gefahrlos wiederholbar). Verwandt: [[kernelcrumb-v0]] (der Qdrant), [[sternenkarte-constellation]] (der andere Vektor aus demselben chat_history.jsonl), [[ozm-nexus-obsidian-equilibrium]] (#ohne/lokal), [[playbooks-fuer-kruemel-zeitlos]].