VectorStore
What it is
- A minimal in-memory vector store backed by Qdrant (via
qdrant-client). - Stores texts + metadata alongside provided embedding vectors and supports cosine-similarity search.
Public API
class VectorStore(dimension: int = 1536)- Creates an in-memory Qdrant collection named
"documents"with cosine distance and given vector dimension.
- Creates an in-memory Qdrant collection named
VectorStore.add_texts(texts, metadatas=None, embeddings=None) -> List[str]- Upserts a batch of points containing:
payload["text"]= original text- additional payload fields from corresponding metadata dict
- Requires
embeddings(no embedding generation is performed). - Returns string IDs for inserted items.
- Upserts a batch of points containing:
VectorStore.similarity_search(query_embedding, k: int = 4) -> List[dict]- Queries the collection with a provided embedding vector.
- Returns a list of dicts:
{"text": ..., "metadata": ..., "score": ...}.
Configuration/Dependencies
- Dependency:
qdrant-client- Install:
pip install qdrant-client
- Install:
- Storage: in-memory Qdrant instance (
QdrantClient(":memory:")) - Collection:
- name:
"documents" - distance: cosine
- vector size:
dimensionpassed to constructor
- name:
Usage
from naas_abi_core.services.agent.beta.VectorStore import VectorStore
store = VectorStore(dimension=3)
texts = ["hello world", "goodbye world"]
metadatas = [{"source": "a"}, {"source": "b"}]
embeddings = [
[1.0, 0.0, 0.0],
[0.9, 0.1, 0.0],
]
ids = store.add_texts(texts=texts, metadatas=metadatas, embeddings=embeddings)
results = store.similarity_search(query_embedding=[1.0, 0.0, 0.0], k=2)
print(ids)
print(results)
Caveats
add_texts(...)raisesValueErrorifembeddingsis not provided.- The Qdrant collection is always created in
__init__with a fixed name ("documents"); data is not persisted (in-memory only). - IDs are auto-assigned sequential integers starting from
0and returned as strings.