vinid / omnivector

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OmniVector

Documentation Status

OmniVector provides a simple interface to vector databases. We integrate the main functionalities of different vector dbs, generally indexing and searching, into a single interface. This allows us to easily switch between different vector dbs.

db = WeaviateDB()  # or PineconeDB() or LanceDB()

encoder = SentenceTransformerEmbedder("paraphrase-MiniLM-L6-v2", device="cpu")
docs = ["the cat is on the table", "the table is on the cat", "the dog is mining bitcoins"]


ids = list(range(4, len(docs) + 4))
embeddings = encoder.embed(docs)

db.create_index()
db.add(ids, docs, embeddings)
search_vector = encoder.embed(["the dog is mining bitcoins"])[0]
print(db.vector_search(search_vector, k=1))

Features

  • The AbstractDB requires setting OMNIVECTOR_CONFIG env variable to a config file (an example is in config.yaml)

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

About

License:MIT License


Languages

Language:Python 100.0%