docs: sez. 11.11 istanza frigate (embedding llama.cpp) + bump v2.7.0

This commit is contained in:
Matteo Benedetto
2026-08-18 22:48:50 +02:00
parent 2626649e5a
commit 94e9bb44b1
2 changed files with 40 additions and 1 deletions
+39
View File
@@ -434,6 +434,45 @@ pi-local). Script: estrazione `/tmp/extract_qmem3.py` + ripristino
3. Testare le migrazioni su una collection di test con dati REALI (non solo 3. Testare le migrazioni su una collection di test con dati REALI (non solo
record creati dopo il backfill) record creati dopo il backfill)
### 11.11 Istanza frigate (copia del Memory Gateway, embedding via llama.cpp)
> Deploy 2026-08-18 — copia del server memoria su frigate.vpn (10.8.0.18),
> con embedding forniti dal router llama.cpp locale (niente Ollama).
**Stack** (`/home/enne2/memory-frigate/`):
- Qdrant 1.19: container `memory-frigate-qdrant`, bind 127.0.0.1:6333/6334,
API key + JWT RBAC
- Gateway: container `memory-frigate-gateway`, bind 10.8.0.18:8082 (VPN),
collection `memories`
- Embedding: **llama.cpp router** (`llama-router-vulkan.service`, porta 8081)
con modello `bge-m3` (Q8_0, 1024-dim, `doof-ferb/bge-m3-gguf`)
**Config gateway** (env): `EMBED_API=llamacpp`, `EMBED_URL=http://host.docker.internal:8081`,
`EMBED_MODEL=bge-m3`, `EMBED_API_KEY=sta.cippa` (chiave router).
**Modello embedding nel router** (`models.ini`):
```ini
[bge-m3]
model = /home/enne2/dev/vulkan.cpp/models/bge-m3-Q8_0.gguf
alias = bge-m3
embedding = true
ctx-size = 8192
pooling = cls
embd-normalize = 2
gpu-layers = 0 ; CPU: evita contesa GPU con i modelli di generazione
```
Dopo modifiche a models.ini: `systemctl --user restart llama-router-vulkan`.
**Backend embedding nel gateway** (v2.7.0): `EMBED_API=ollama|llamacpp`
(OpenAI-compatible `/v1/embeddings` con Bearer key); `EMBED_URL` sostituisce
`OLLAMA_URL` (alias retrocompatibile).
**Config estensione per usare frigate**: `~/.config/pi-qmem/config.json`
`{"url": "http://10.8.0.18:8082", "apiKey": "<API_KEYS da .env>"}`.
**Nota**: istanza indipendente (collection vuota). Per replicare i dati da
brain: snapshot Qdrant + restore (sez. 4) o re-embedding dei record.
### 11.5 project_id obbligatorio ### 11.5 project_id obbligatorio
- Dal gateway v2.4.0 / estensione v1.4.0: `project_id` è **obbligatorio** in `POST /v1/memories` (Pydantic `min_length=1`) e nello schema del tool `qmem_store` (Type.String, non più Optional) - Dal gateway v2.4.0 / estensione v1.4.0: `project_id` è **obbligatorio** in `POST /v1/memories` (Pydantic `min_length=1`) e nello schema del tool `qmem_store` (Type.String, non più Optional)
+1 -1
View File
@@ -158,7 +158,7 @@ async def lifespan(_app: FastAPI):
_http = None _http = None
app = FastAPI(title="Memory Gateway", version="2.6.0", lifespan=lifespan) app = FastAPI(title="Memory Gateway", version="2.7.0", lifespan=lifespan)
qdrant = QdrantClient(url=QDRANT_URL, api_key=QDRANT_API_KEY) qdrant = QdrantClient(url=QDRANT_URL, api_key=QDRANT_API_KEY)
# Request ID: generato per richiesta, loggato nell'audit e restituito in header # Request ID: generato per richiesta, loggato nell'audit e restituito in header