Evidence-first, multilingual, S3-native RAG for domains where a wrong answer is worse than no answer.
Project description
CiteNexus
Multilingual RAG that answers only when the evidence is strong.
Evidence-first, multilingual, S3-native RAG for domains where a wrong answer is worse than no answer (legal, medical, finance/compliance, enterprise search). CiteNexus answers only from retrieved evidence — every claim is grounded in a bbox-cited source passage, and it refuses or states uncertainty when evidence is weak, missing, or conflicting. The guarantee is "no ungrounded claim," not "zero hallucination."
The library bundles no models — embedding, LLM, reranker, and vision are injected endpoints. CiteNexus owns orchestration, storage, retrieval, fusion, grounding, and evaluation.
CiteNexus supports pluggable vector databases. Storage is two protocols —
VectorStore (dense) and TextSearch (lexical) — and each backend is a named
(vector, text) pair:
| Backend | Vector | Text | When |
|---|---|---|---|
| Lance (recommended) | LanceVectorStore |
LanceTextSearch (BM25-lite) |
Zero infra, S3-native: point at a bucket and go |
| Postgres | PostgresVectorStore (pgvector) |
PostgresTextSearch (native tsvector) |
You already run Postgres — pip install 'citenexus[postgres]', set vector_store.backend: "postgres" |
| Yours | implement VectorStore |
implement TextSearch |
Qdrant, Weaviate, Elasticsearch, Tantivy, … |
The seams are independent: mix LanceDB vectors with an Elasticsearch
text_search=, or let one Postgres serve both.
from citenexus import CiteNexus, S3
rag = CiteNexus(
S3(bucket="my-bucket"),
embedder=my_embedding_endpoint,
generator=my_llm_endpoint,
)
rag.ingest("policy.pdf") # any supported input type
answer = rag.ask("Can the employee disclose this information?")
print(answer) # grounded answer; .sources are bbox-cited
See the workspace root README for the full polyglot (python/ golang/ js/ rust/) layout.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file citenexus-0.2.1.tar.gz.
File metadata
- Download URL: citenexus-0.2.1.tar.gz
- Upload date:
- Size: 296.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3abdb09db92bdbba878074f0c3c1c77e4487c9d8255f42b13b18bcbab5ed1a2d
|
|
| MD5 |
4fffba480184da3a5d1106e601c279bd
|
|
| BLAKE2b-256 |
19663a9052a274b61369277506db081219b7aad151eb90e45340c33d8f1bdb9c
|
File details
Details for the file citenexus-0.2.1-py3-none-any.whl.
File metadata
- Download URL: citenexus-0.2.1-py3-none-any.whl
- Upload date:
- Size: 145.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89cc85875f0084abb37f95af9a1478579c6ad1c453d50d1f5c26a742318ac503
|
|
| MD5 |
3d5416eef58b2b9c12626597322c461f
|
|
| BLAKE2b-256 |
302ee848bcd867e1c319d75ff37679674303818c805eb715ba53904728788d14
|