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.
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_KEYfor 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.
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
citrusdbpackage installed usingpip install citrusdb. - An
OPENAI_API_KEYset in the environment when adding strings, because OpenAI generates embeddings by default; alternatively, provide vector embeddings directly.
Steps
Import
citrusdband initialize a client withcitrusdb.Client().Create a named index using
create_index, with amax_elementsvalue.Add documents and corresponding IDs with
add.Call
querywith the index name, query text and desiredk; includedocumentormetadataif 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.
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

