Cloaked AI was designed to easily interoperate with a wide range of vector databases. This is possible because the encrypted embeddings are simple drop-in replacements for their unencrypted counterparts.
We have several examples of integrating with common vector databases below. In many cases, these examples start with the database’s own Getting Started guide and simply add the encryption step when inserting data.
We provide a Python example of integrating both Cloaked AI and Cloaked Search with Elasticsearch. This hybrid search use case allows a single query to rank based on both keywords and similar embeddings while protecting the sensitive data in both keyword and vector indices.
We provide a GitHub repository showing how to integrate Cloaked AI with Marqo and query encrypted embeddings.
We provide a Python example of integrating both Cloaked AI and Cloaked Search with OpenSearch. This is a hybrid search example similar to the Elasticsearch one and provides the same security benefits while retaining full search capabilities.
We provide a Jupyter notebook and Python example showing how to conduct a search on encrypted data in Pinecone as well as a walkthrough video providing additional details about the notebook. This example also shows how you can use standard encryption to protect the metadata associated with vectors (such as the text that generated the vector) so that the metadata can be secured then decrypted when returned with vectors in response to a query.
We provide a Rust example showing how to use Cloaked AI with Qdrant to encrypt and query embeddings.
We provide a Python example of integrating Cloaked AI with Weaviate, showing how to insert encrypted embeddings and still perform queries on them. It also demonstrates how metadata can be encrypted and stored securely with each vector, then decrypted when results are returned by search; it uses standard encryption for the text associated with the embeddings, and deterministic encryption for additional fields used to filter queries.
Note: this example builds off of Weaviate’s “Bring your own vectors” example, as we do not currently support their vectorizer model of inserting data.
Was this page helpful?