metal-kompanion/docs/embeddings-and-storage.md

27 lines
887 B
Markdown

# Embedding Backends & Storage Options
## Embeddings
- **Local**: Ollama + llama.cpp gguf (e.g., nomic-embed-text, all-MiniLM-gguf).
- **Remote**: OpenAI text-embedding-3-small/large; SentenceTransformers via Python service.
### Abstraction
`IEmbedder` interface with `embed(texts: string[], model?: string) -> {model, vectors}`.
## Storage
- **SQLite + FAISS** (local, simple)
- **Postgres + pgvector** (robust, SQL)
- **Qdrant** (fast ANN, tags)
- **Chroma** (lightweight)
### Abstraction
`IVectorStore` with `upsert`, `query`, `delete`, supports `namespace`, `metadata` filter and TTL.
## Selection Matrix
- If offline-first: SQLite+FAISS + local embedder.
- If multi-host: Postgres+pgvector or Qdrant.
## Next Steps
- Implement `IEmbedder` adapters (Ollama, OpenAI).
- Implement `IVectorStore` adapters (SQLite+FAISS, pgvector, Qdrant).
- Wire to MCP tools in `kom.memory.v1`.