Skip to content

Signals & capabilities

signals is CiteNexus’s capability gate. It decides which indexes are built when you ingest and which retrievers run when you ask. Declaring fewer signals is how you keep ingest cheap and retrieval fast — you only build what you’ll use.

In Python that gate is declarative: one list on the constructor. Go and JavaScript have no config layer, so the gate is the call graph — you build the index you want by calling its builder, and skip the rest.

from citenexus import CiteNexus
# Dense + lexical only. No graph, community, structure, or wiki index is built or queried.
rag = CiteNexus("./citenexus-data", embedder=..., generator=..., signals=["embedding", "text"])
rag.ingest(text="The employee shall not disclose confidential information.", document_id="nda")
print(rag.ask("Can the employee disclose confidential information?").evidence.decision)
# answered

Signal is a closed set (from citenexus.config.signals import Signal):

Signal Builds at ingest Enables retriever Go / JS counterpart
embedding vectors in the vector store Vector (dense) — also needs an embedder Ask / ask (and AskWith / askWith)
text lexical / BM25 index Lexical (BM25 / full-text) bm25.Rank / bm25
structure the structure index Structure structure.BuildStructure / buildStructure
graph the entity graph (slow path) Graph graph.BuildComentionGraph / buildComentionGraph
community graph communities (slow path) Graph — none
wiki the distilled wiki (slow path) Wiki — none

embedding, text, and structure are computed inline during ingest(). The slow-path signals — graph, community, wiki — require distillation, so ingest() only marks the graph dirty and upserts one wiki page; the graph is rebuilt lazily on the read path.

The durable queue that would take this work off the ingest call is already wired into IngestPipeline, but CiteNexus.__init__ has no queue= parameter, so that branch is not reachable from the client today — see bulk & batch ingest. Declare these signals only when you want graph/wiki navigation over your evidence.