Skip to content

soufrabi/citrus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍋 citrus.

open-source (distributed) vector database

Special thanks to

DevKit

DevKit - The Essential Developer Toolkit
DSoC 2023

License: Apache 2.0 GitHub commits GitHub issues GitHub pull requests

Installation

pip install citrusdb

Getting started

1. Create index

import citrusdb

# Initialize client
citrus = citrusdb.Client()

# Create index
citrus.create_index(
  max_elements=1000,            # increases dynamically as you insert more vectors
  persist_directory="/db"       # save data and load index from disk
)

2. Insert elements

ids = [1, 2, 3]
docuemnts = [
  "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(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

result, distances = citrus.query("What is it like to launch a startup", k=1)

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

About

(distributed) vector database

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Python 100.0%