A high-performance synchronous vector database for similarity search
Project description
VowDB 🔥
Blazing-fast vector database for text similarity. Powered by Faiss & Sentence Transformers.
Install 💻
Grab it with pip:
pip install vowdb
Requires Python 3.8+, faiss-cpu, sentence-transformers, numpy, psutil.
Setup 🚀
Kick it off:
from vowdb import VowDB
db = VowDB(model_name="all-MiniLM-L6-v2", file_path="vectors.faiss")
Ready in ~1.2s.
Add Data 📝
Drop in texts:
# One
db.insert("Hello World", metadata={"greeting": "yes"})
# ~0.57s
# Many
texts = ["Hii", "I Am Rushikesh Sunil Kotkar!", "News article"]
metadatas = [{"greeting": "yes"}, {"category": "introduction"}, {"greeting": "no"}]
db.insert_batch(texts, metadatas)
Search 🔍
Find stuff with = style filters. Check these dope examples.
1. AND Power
db.find("hello", top_k=3, filter_query="category=news && score>0.9 && greeting=yes")
Result:
text=Hello World, dist=0.45, meta={category=news, score=0.95, greeting=yes}
2. Text Vibe
db.find("hello", top_k=3)
Results:
text=Hello World, dist=0.45, meta={category=news, score=0.95, greeting=yes}
text=Hii, dist=0.48, meta={category=greeting, score=0.6, greeting=yes}
3. Exact Match
db.find("Hello World", top_k=3, filter_query="text=Hello World")
Result:
text=Hello World, dist=0.45, meta={category=news, score=0.95, greeting=yes}
4. Prefix Hunt
db.find("Hel", top_k=3, filter_query="text=Hel")*
Results:
text=Hello World, dist=0.45, meta={category=news, score=0.95, greeting=yes}
text=Hii, dist=0.48, meta={category=greeting, score=0.6, greeting=yes}
5. Category Snap
db.find("news", top_k=3, filter_query="category=news")
Results:
text=Hello World, dist=0.45, meta={category=news, score=0.95, greeting=yes}
text=News article, dist=0.50, meta={category=news, score=0.7, greeting=no}
6. OR Flex
db.find("news", top_k=3, filter_query="category=news || category=greeting")
Results:
text=Hello World, dist=0.45, meta={category=news, score=0.95, greeting=yes}
text=Hii, dist=0.48, meta={category=greeting, score=0.6, greeting=yes}
7. Multi-Filter
db.find("news", top_k=3, filter_query="category=news && score>0.7 && greeting=yes")
Result:
text=Hello World, dist=0.45, meta={category=news, score=0.95, greeting=yes}
8. Score Range
db.find("news", top_k=3, filter_query="score=0.6-0.8")
Results:
text=Hii, dist=0.48, meta={category=greeting, score=0.6, greeting=yes}
text=News article, dist=0.50, meta={category=news, score=0.7, greeting=no}
9. Skip Some
db.find("news", top_k=3, filter_query="text!=Hii && category!=introduction")
Results:
text=Hello World, dist=0.45, meta={category=news, score=0.95, greeting=yes}
text=News article, dist=0.50, meta={category=news, score=0.7, greeting=no}
10. Name Drop
db.find("Rushikesh", top_k=3)
Result:
text=I Am Rushikesh Sunil Kotkar!, dist=0.20, meta={category=introduction, score=0.9}
11. Text or Score
db.find("Hel", top_k=3, filter_query="text=Hel || score>=0.9")*
Results:
text=Hello World, dist=0.45, meta={category=news, score=0.95, greeting=yes}
text=I Am Rushikesh Sunil Kotkar!, dist=0.20, meta={category=introduction, score=0.9}
Save/Load 💾
Keep or get data:
db.save()
db.load()
Info 🌟
Version: 0.1.3
Author: Rushikesh Sunil Kotkar
License: MIT
GitHub: https://github.com/rushikeshkotkar04/vowdb
PyPI: Fast text similarity with slick = queries.
Contribute 🤝
Got ideas? Issues? PRs?
Hit up: https://github.com/rushikeshkotkar04/vowdb
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vowdb-0.1.4.tar.gz.
File metadata
- Download URL: vowdb-0.1.4.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ab5ff4907d23a96d69b81cdab04b8349893d5ef9c42fd1da242aba3c13bab2c
|
|
| MD5 |
c1eb21c1a5e5c34957ae832d143ec959
|
|
| BLAKE2b-256 |
0f7546f2f29f161cba839c902a52ac3b2db63b74dfc38184ec50db5930550a99
|
File details
Details for the file vowdb-0.1.4-py3-none-any.whl.
File metadata
- Download URL: vowdb-0.1.4-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca0340a1b9d65a48f1e0b000bd20a89a87d22dce167787a1f4448337714f709d
|
|
| MD5 |
edf3ac26fef6364a544331b6e8ce5b04
|
|
| BLAKE2b-256 |
b429f35bb805926bdc572a28b78afbe305d1bee86be7f6a73735e815f9721fd6
|