supabase / vecs

Postgres/pgvector Python Client
https://supabase.github.io/vecs/latest
Apache License 2.0
223 stars 32 forks source link

Feature Request: Progress Bars #10

Open olirice opened 1 year ago

olirice commented 1 year ago

The lack of feedback during Collection.upsert and Collection.create_index is a bad DX.

It would be great to get some progress bars but I haven't been able to get them working properly in notebooks and shell environments.

If anyone has experience adding them this would be a great community contribution

upsert

https://github.com/supabase/vecs/blob/87ed2d3d96b0a950adbcf1950c18ba691550bd47/src/vecs/collection.py#L108 but it can't always assume that vectors is sized. Maybe a runtime check to see if *vectors* has a known length and providing it to the progress bar if known would be best

create_index

https://github.com/supabase/vecs/blob/87ed2d3d96b0a950adbcf1950c18ba691550bd47/src/vecs/collection.py#L346-L350

this one is a little more involved as it'll have to introduce client side keyset pagination on the id primary key to get feedback to python

sahusiddharth commented 10 months ago

@olirice I would like to work on it.

can please point me to contributing guideline for this repo I was find it

olirice commented 10 months ago

great!

we don't have official contributing guidelines

Broadly you'll need

setup a virtualenv

python -m venv venv
source venv/bin/activate
pip install -e ".[dev,docs,text_embedding]"

install the pre-commit hooks

pre-commit install

at that point you should be able to run

pytest

and have it pass. Note: on the first run a docker container will be spinning up so it could take a couple minutes. After that It'll be much faster.

We have 100% code coverage as a requirement so any new lines/functions must be covered. You can check if what you introduce is covered using

pytest --cov=vecs --cov-report=html -vv

to generate a report, followed by

open htmlcov/index.html 

to see the coverage report

all new functions/methods should conform to the current documentation style

let me know if you have any trouble