17c7f5033f
Decision (Q15 resolved): start with text-only via TEI + bge-m3 in Phase 3.1, prepare data shapes so Phase 3.2 (visual collection via infinity + jina-clip-v2) is a pure additive operation — no rename, no schema migration, no n8n rewiring. Concretely: - Qdrant collection renamed nexa_knowledge → nexa_knowledge_text (1024-dim for bge-m3) with modality-aware payload (modality, source_type, media_uri, graph_iri, content_hash, context). Visual placeholder schema committed alongside (qdrant_schema_visual.json, 768-dim, jina-clip-v2). - Image attachments captured in 3.1 are recorded in GraphDB as nexa:Note with nexa:modality "image" + nexa:pendingVisualIndex true; the 3.2 backfill workflow picks them up and embeds. No data lost between phases — the queue is the GraphDB itself. - RDF schema (docs/08) gains nexa:modality, nexa:mediaUri, nexa:vectorCollection, nexa:pendingVisualIndex from day one. - docs/02 roadmap split: 3.1 = text RAG (Path A), 3.2 = visual collection (Path C), 3.4 = Ontotext GraphDB. - docs/09 grows a "Phase add-on: visual collection (Phase 3.2)" section with the TEI→infinity swap, second collection create, LiteLLM second model registration, and the SPARQL-driven backfill query. - New open questions: Q16 (queue ergonomics + does SAIA already proxy an embed model?), Q17 (reuse Immich's CLIP for photo-library queries?). - docs/03 + CLAUDE.md updated so future runs use the new collection names and don't re-decide the staging.
49 lines
2.6 KiB
Markdown
49 lines
2.6 KiB
Markdown
# 02 — Roadmap & Phases
|
|
|
|
Iterative build-out, value-first. Each phase is shippable on its own.
|
|
|
|
## Phase 1 — The Spine (connectivity)
|
|
|
|
**Focus:** datapath between Memos, n8n and SAIA.
|
|
**Milestone:** Nexa replies on Memos and answers simple questions.
|
|
|
|
- [ ] **1.1 Memos ↔ n8n bridge** — webhook ingress, content filter, comment-back.
|
|
- [ ] **1.2 SAIA integration** — call LiteLLM proxy from n8n; chat via Memos comments.
|
|
- [ ] **1.3 Git-sync** — periodic export of n8n workflows into this repo.
|
|
|
|
## Phase 2 — Senses (input channels)
|
|
|
|
**Focus:** e-mail filter and the Work-vs-Personal router.
|
|
**Milestone:** Nexa distinguishes work tasks from personal tasks without manual tags.
|
|
|
|
- [ ] **2.1 Email butler** — filter & summarize the ~20 daily personal mails.
|
|
- [ ] **2.2 RSS morning digest** — curated daily summary in Memos.
|
|
- [ ] **2.3 Bluesky antenna** — store liked posts as knowledge snippets.
|
|
|
|
## Phase 3 — Memory (Qdrant & RAG)
|
|
|
|
**Focus:** Qdrant + graph layer for retrieval-augmented answers.
|
|
**Milestone:** RAG works — Nexa answers from archived notes; images captured today are queued for visual indexing later.
|
|
|
|
- [ ] **3.1 Text RAG (Path A)** — TEI + `bge-m3`, single Qdrant collection `nexa_knowledge_text`. `#nexa:ask` reads it before answering. Image attachments are *recorded* as `nexa:Note` with `pendingVisualIndex` but not embedded yet.
|
|
- [ ] **3.2 Visual collection (Path C)** — swap TEI → infinity, add `jina-clip-v2`, create `nexa_knowledge_visual`, backfill all queued image notes. RAG workflow gets a parallel branch for visual hits. See [09 § "Phase add-on: visual collection"](./09-deployment.md#phase-add-on-visual-collection-phase-32).
|
|
- [ ] **3.3 S3 long-term archive** — Qdrant snapshots (both collections) to the S3 server.
|
|
- [ ] **3.4 Ontotext GraphDB** — SPARQL pillar; structural queries combined with vector hits in `#nexa:ask`. See [08](./08-graphrag-architecture.md).
|
|
|
|
## Phase 4 — Motor (organization & action)
|
|
|
|
**Focus:** calendar integration and time-boxing.
|
|
**Milestone:** Nexa proactively proposes morning focus slots in the work calendar.
|
|
|
|
- [ ] **4.1 Nextcloud Tasks sync** — bidirectional status sync (Memos ↔ NC Tasks).
|
|
- [ ] **4.2 Time-boxing agent** — calendar-aware slot suggestions.
|
|
- [ ] **4.3 Karakeep curation** — automated review cycle for saved links.
|
|
|
|
## Phase 5 — Daily integration (polish)
|
|
|
|
**Focus:** Home Assistant Voice and monitoring.
|
|
**Milestone:** Nexa speaks via HA-Voice and surfaces critical system states proactively.
|
|
|
|
- [ ] **5.1 HA Voice** — Wake-word integration, Wyoming protocol.
|
|
- [ ] **5.2 System monitoring** — Proxmox / Backrest alerts into the Memos system feed via ntfy.
|