from ai_infra.embeddings import VectorStoreSimple vector store for semantic search. Store documents and search by meaning using embeddings. Supports multiple backends: in-memory, Chroma, FAISS. Features: - Simple API: `add()`, `search()`, `delete()` - Multiple backends: memory, chroma, faiss - Auto-embedding: Just add text, embeddings handled automatically - Metadata filtering: Filter search results by metadata
from ai_infra import Embeddings, VectorStore
# Create with embeddings
embeddings = Embeddings()
store = VectorStore(embeddings=embeddings)
# Add documents
store.add_texts(["Python is great", "JavaScript is popular"])
# Search
results = store.search("programming languages", k=2)
for result in results:
print(f"{result.score:.2f}: {result.document.text}")Example - With metadata:
store.add_texts(
texts=["Doc 1", "Doc 2"],
metadatas=[{"source": "web"}, {"source": "book"}]
)
# Filter by metadata
results = store.search("query", filter={"source": "web"})Example - Persistent storage with Chroma:
store = VectorStore(
embeddings=embeddings,
backend="chroma",
persist_directory="./my_db"
)