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/vectorapiYou can bring up a postgres database (ankane/pgvector) and vectorapi instance using docker compose:
docker compose up --buildTo populate the local DB instance with test data from HuggingFace (see Grafana public datasets) run:
make populate-dbSee 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"}'