Find possible records
A user asks a question. Your existing SQL, keyword search, vector database, or RAG framework returns candidates. At this point they are possible matches, not established truth.
PAIL adds one evidence checkpoint. Your files, database, retriever, and chosen model can remain in place.
A user asks a question. Your existing SQL, keyword search, vector database, or RAG framework returns candidates. At this point they are possible matches, not established truth.
PAIL identifies the requested transaction, order, customer, case, trace, time, and source boundary. Unrelated neighbors are not allowed to redefine the question.
PAIL checks whether the rows agree on fields that matter to the question. A disagreement is kept as evidence instead of being averaged into a ranking score.
Verified facts are packaged with their sources. Conflicts are reported. Missing evidence produces a refusal. Only a verified packet is eligible for AI generation.
CRM, payment, ERP, observability, and document systems remain the sources of record.
SQL, FTS, vectors, LangChain, or another search layer locates possible evidence.
Checks identity, relation, conflict, provenance, unsafe fields, and packet completeness.
The model writes from verified facts; a human resolves conflicts and uncertain cause.
PAIL can read local files itself or receive candidate documents from an existing RAG application.
question
-> your_retriever.search()
-> pail.verify(candidates)
-> VERIFIED_PACKET
? your_llm.generate(packet)
: show_conflict_or_refusal()
The public demo uses synthetic data and exposes no protected runtime rules.