VectorAPI is a service for managing vector collections and performing vector similarity queries using a PostgreSQL vector database with the pgvector
extension. Utilizes fastapi
for the HTTP API, pgvector
and SQLAlchemy for the vector database side and relies on pytorch
for computing embeddings.
To get started with the VectorAPI, run:
docker run -p 8889:8889 -e DB_URL=postgresql+asyncpg://<user>:<password>@<host>:<port>/<dbname> grafana/vectorapi
You can bring up a postgres database (ankane/pgvector
) and vectorapi instance using docker compose:
docker compose up --build
To populate the local DB instance with test data from HuggingFace (see Grafana public datasets) run:
make populate-db
See API docs for more details.
curl -X POST "http://localhost:8889/v1/embeddings" \
-H "Content-Type: application/json" \
-d '{"input":"I enjoy taking long walks along the beach.", "model":"BAAI/bge-small-en-v1.5"}'
- Create a collection
curl -X POST "http://localhost:8889/v1/collections/create" \
-H "Content-Type: application/json" \
-d '{"collection_name":"my_collection", "dimension":384}'
- Add a vector to the collection
curl -X POST "http://localhost:8889/v1/collections/my_collection/upsert" \
-H "Content-Type: application/json" \
-d '{"id":"abc1", "metadata":{"key":"value"}, "input":"I enjoy taking long walks along the beach."}'
curl -X POST "http://localhost:8889/v1/collections/my_collection/search" \
-H "Content-Type: application/json" \
-d '{"input":"beach walks"}'