# 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`.