OpenViSTAI · Agents · Blockchain · Crypto
Menu
RAG & Knowledge Systems

Citrus

Citrus is an open-source Python vector database library for creating indexes, storing documents or supplied embeddings, and retrieving nearest matches for text queries. Its README shows OpenAI generating embeddings by default when strings are added, and a Python client workflow for index creation, insertion and search.

Independent OpenViST project profile, based on linked sources.

Citrus — OpenViST project profile in RAG & Knowledge Systems.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use Citrus when you need a Python-based vector retrieval component for semantic search and can work with its documented index, insertion and query workflow.

Who it is for

  • Python developers adding semantic retrieval to an application.
  • Teams building document, FAQ or product-catalog search over stored text or embeddings.

Documented uses

  • Create an index for documents or vector embeddings.
  • Store identified text records in an index.
  • Find the nearest stored matches for a text query.
  • Return matched IDs and, when requested, document text and metadata.
Before you choose

Requirements & limits

The repository identifies Citrus as open source and specifies the Apache-2.0 license. The README installs the Python package with `pip install citrusdb`.

  • String-based insertion requires an OPENAI_API_KEY for the documented default embedding generation.
  • Precomputed vector embeddings can be supplied directly.
  • Queries return IDs by default; document text and metadata must be requested explicitly.
  • The README cautions that the project is not yet fully distributed.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Set up a document index and query it

Create an index, add text documents and request nearest matches using the README's Python workflow.

Before you start

  • Python environment with the citrusdb package installed using pip install citrusdb.
  • An OPENAI_API_KEY set in the environment when adding strings, because OpenAI generates embeddings by default; alternatively, provide vector embeddings directly.

Steps

  1. Import citrusdb and initialize a client with citrusdb.Client().

  2. Create a named index using create_index, with a max_elements value.

  3. Add documents and corresponding IDs with add.

  4. Call query with the index name, query text and desired k; include document or metadata if those fields should be returned.

Expected outcome

The query returns the IDs of the top matches by default, with document text or metadata when requested.

Guide limitations

  • The README says Citrus is not yet fully distributed.
  • The documented default embedding provider for strings is OpenAI; the README does not describe a different provider integration workflow.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
17 October 2026
Original website title
0xDebabrata/citrus · Official homepage title · retained in its source language