27 lines
887 B
Markdown
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`.
|