72 lines
2.5 KiB
Markdown
72 lines
2.5 KiB
Markdown
# Lyra Core — Project Summary
|
||
|
||
## v0.4 (2025-10-03)
|
||
|
||
### 🧠 High-Level Architecture
|
||
- **Lyra Core (v0.3.1)** — Orchestration layer.
|
||
- Accepts chat requests (`/v1/chat/completions`).
|
||
- Routes through Cortex for subconscious annotation.
|
||
- Stores everything in Mem0 (no discard).
|
||
- Fetches persona + relevant memories.
|
||
- Injects context back into LLM.
|
||
|
||
- **Cortex (v0.3.0)** — Subconscious annotator.
|
||
- Runs locally via `llama.cpp` (Phi-3.5-mini Q4_K_M).
|
||
- Strict JSON schema:
|
||
```json
|
||
{
|
||
"sentiment": "positive" | "neutral" | "negative",
|
||
"novelty": 0.0–1.0,
|
||
"tags": ["keyword", "keyword"],
|
||
"notes": "short string"
|
||
}
|
||
```
|
||
- Normalizes keys (lowercase).
|
||
- Strips Markdown fences before parsing.
|
||
- Configurable via `.env` (`CORTEX_ENABLED=true|false`).
|
||
- Currently generates annotations, but not yet persisted into Mem0 payloads (stored as empty `{cortex:{}}`).
|
||
|
||
- **Mem0 (v0.4.0)** — Persistent memory layer.
|
||
- Handles embeddings, graph storage, and retrieval.
|
||
- Dual embedder support:
|
||
- **OpenAI Cloud** (`text-embedding-3-small`, 1536-dim).
|
||
- **HuggingFace TEI** (gte-Qwen2-1.5B-instruct, 1536-dim, hosted on 3090).
|
||
- Environment toggle for provider (`.env.openai` vs `.env.3090`).
|
||
- Memory persistence in Postgres (`payload` JSON).
|
||
- CSV export pipeline confirmed (id, user_id, data, created_at).
|
||
|
||
- **Persona Sidecar**
|
||
- Provides personality, style, and protocol instructions.
|
||
- Injected at runtime into Core prompt building.
|
||
|
||
---
|
||
|
||
### 🚀 Recent Changes
|
||
- **Mem0**
|
||
- Added HuggingFace TEI integration (local 3090 embedder).
|
||
- Enabled dual-mode environment switch (OpenAI cloud ↔ local TEI).
|
||
- Fixed `.env` line ending mismatch (CRLF vs LF).
|
||
- Added memory dump/export commands for Postgres.
|
||
|
||
- **Core/Relay**
|
||
- No major changes since v0.3.1 (still routing input → Cortex → Mem0).
|
||
|
||
- **Cortex**
|
||
- Still outputs annotations, but not yet persisted into Mem0 payloads.
|
||
|
||
---
|
||
|
||
### 📈 Versioning
|
||
- **Lyra Core** → v0.3.1
|
||
- **Cortex** → v0.3.0
|
||
- **Mem0** → v0.4.0
|
||
|
||
---
|
||
|
||
### 📋 Next Steps
|
||
- [ ] Wire Cortex annotations into Mem0 payloads (`cortex` object).
|
||
- [ ] Add “export all memories” script to standard workflow.
|
||
- [ ] Consider async embedding for faster `mem.add`.
|
||
- [ ] Build visual diagram of data flow (Core ↔ Cortex ↔ Mem0 ↔ Persona).
|
||
- [ ] Explore larger LLMs for Cortex (Qwen2-7B, etc.) for richer subconscious annotation.
|