Skip to main content

open-source vector database. store and retrieve embeddings for your next project!

Project description

🍋 citrus.

open-source (distributed) vector database

Installation

pip install citrusdb

Getting started

1. Create index

import citrusdb

# Initialize client
citrus = citrusdb.Client()

# Create index
citrus.create_index(
  name="example",
  max_elements=1000,            # increases dynamically as you insert more vectors
)

2. Insert elements

ids = [1, 2, 3]
documents = [
  "Your time is limited, so don't waste it living someone else's life",
  "I'd rather be optimistic and wrong than pessimistic and right.",
  "Running a start-up is like chewing glass and staring into the abyss."
]

citrus.add(index="example", ids=ids, documents=documents)

You can directly pass vector embeddings as well. If you're passing a list of strings like we have done here, ensure you have your OPENAI_API_KEY in the environment. By default we use OpenAI to to generate the embeddings. Please reach out if you're looking for support from a different provider!

3. Search

results = citrus.query(
    index="example",
    documents=["What is it like to launch a startup"],
    k=1,
    include=["document", "metadata"]
)

print(results)

You can specify if you want the associated text document and metadata to be returned. By default, only the IDs are returned.

Go launch a repl on Replit and see what result you get after running the query! result will contain the ids of the top k search hits.

Example

pokedex search

Facing issues?

Feel free to open issues on this repository! Discord server coming soon!

PS: citrus isn't distributed just yet. We're getting there though ;)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

citrusdb-0.5.4.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

citrusdb-0.5.4-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file citrusdb-0.5.4.tar.gz.

File metadata

  • Download URL: citrusdb-0.5.4.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for citrusdb-0.5.4.tar.gz
Algorithm Hash digest
SHA256 ea9a0035c104b0bfd8ad09ec660d1b29eb137c7e63dc9cca6c93aee9fad24477
MD5 bbbab0183d9f5a5e3b851d2ff6234a65
BLAKE2b-256 e6fc78ca4bea175f2e276c08a3c8afdf1a2c17856807e32bd1ba40dbf5b409d8

See more details on using hashes here.

File details

Details for the file citrusdb-0.5.4-py3-none-any.whl.

File metadata

  • Download URL: citrusdb-0.5.4-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for citrusdb-0.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2a51ffd30fcc5cf5884d8b2c132b1063f23d0a1b89c0433f23b6fda5fc4b89b9
MD5 c256114bcbd52081633a1806bdd4cdf2
BLAKE2b-256 bbd25e379be68c42c83d1420ea0305a73c67b7d481515f041ca8a24b0ce44fbb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page