Oven logo

Oven

vecs0.4.5

Published

pgvector client

pip install vecs

Package Downloads

Weekly DownloadsMonthly Downloads

Authors

Project URLs

Requires Python

Dependencies

    vecs

    Python version test status Pre-commit Status

    PyPI version License Download count


    Documentation: https://supabase.github.io/vecs/latest/

    Source Code: https://github.com/supabase/vecs


    vecs is a python client for managing and querying vector stores in PostgreSQL with the pgvector extension. This guide will help you get started with using vecs.

    If you don't have a Postgres database with the pgvector ready, see hosting for easy options.

    Installation

    Requires:

    • Python 3.7+

    You can install vecs using pip:

    pip install vecs
    

    Usage

    Visit the quickstart guide for more complete info.

    import vecs
    
    DB_CONNECTION = "postgresql://<user>:<password>@<host>:<port>/<db_name>"
    
    # create vector store client
    vx = vecs.create_client(DB_CONNECTION)
    
    # create a collection of vectors with 3 dimensions
    docs = vx.get_or_create_collection(name="docs", dimension=3)
    
    # add records to the *docs* collection
    docs.upsert(
        records=[
            (
             "vec0",           # the vector's identifier
             [0.1, 0.2, 0.3],  # the vector. list or np.array
             {"year": 1973}    # associated  metadata
            ),
            (
             "vec1",
             [0.7, 0.8, 0.9],
             {"year": 2012}
            )
        ]
    )
    
    # index the collection for fast search performance
    docs.create_index()
    
    # query the collection filtering metadata for "year" = 2012
    docs.query(
        data=[0.4,0.5,0.6],              # required
        limit=1,                         # number of records to return
        filters={"year": {"$eq": 2012}}, # metadata filters
    )
    
    # Returns: ["vec1"]