AgentSea.VectorStore.Qdrant (agentsea_embeddings v0.1.0)

Copy Markdown

A Qdrant AgentSea.VectorStore over its REST API (Req) — a managed/remote alternative to the in-memory and pgvector stores.

The "store" is a config map (base url + collection + optional api key), so it drops into AgentSea.Embeddings like the others. Similarity is cosine; record :text and :metadata ride along in the point payload.

Per the behaviour, the callbacks raise on transport/API errors (like the pgvector store's Postgrex.query!). Note Qdrant point ids must be unsigned integers or UUIDs.

Setup

store = AgentSea.VectorStore.Qdrant.store(url: "http://localhost:6333", collection: "docs")
:ok = AgentSea.VectorStore.Qdrant.ensure_collection(store, 1536)

AgentSea.Embeddings.new(store_mod: AgentSea.VectorStore.Qdrant, store: store, embedder: ...)

Summary

Functions

Create the collection if absent, with the given vector size and distance (default Cosine).

Build a store. Options: :collection (required), :url, :api_key, :adapter.

Types

store()

@type store() :: %{
  url: String.t(),
  collection: String.t(),
  api_key: String.t() | nil,
  adapter: (... -> any()) | nil
}

Functions

ensure_collection(store, dimensions, opts \\ [])

@spec ensure_collection(store(), pos_integer(), keyword()) :: :ok

Create the collection if absent, with the given vector size and distance (default Cosine).

store(opts)

@spec store(keyword()) :: store()

Build a store. Options: :collection (required), :url, :api_key, :adapter.