Download README.md from Angshul/Bayesian_LangGraph: direct link, hf CLI and curl.
- Browser
- Download file 4.16 kB
-
https://huggingface.co/Angshul/Bayesian_LangGraph/resolve/main/README.md
- Command line
-
hf download hf://Angshul/Bayesian_LangGraph/README.md
-
curl -L -o README.md https://huggingface.co/Angshul/Bayesian_LangGraph/resolve/main/README.md
license: mit
tags:
- langgraph
- rag
- bayesian
- probabilistic
- uncertainty
- retrieval
Bayesian LangGraph RAG
A corrected, Hugging Face-ready Bayesian RAG implementation using a real LangGraph StateGraph.
The original repository used a custom Python loop under the LangGraph name and could erase its final SMC posterior through final-step resampling. This version separates retrieval inference from orchestration and uses the graph:
START -> retrieve -> assess -> (generate | abstain) -> END
The retriever uses the generalized-Bayesian posterior
p(d | q) ∝ p(d) (similarity(q,d) + eps)^tau
with a Beta reliability prior plus authority and freshness metadata.
What was corrected
- Replaced the custom pseudo-LangGraph runtime with an actual
StateGraph. - Removed Colab-only setup, Drive mounts, repository cloning, and import-time execution.
- Fixed all-
-inflog-weight normalization. - Fixed final-step resampling so the posterior cannot be reset to uniform.
- Added proposal-density correction to the reusable SMC implementation.
- Removed deterministic identical-particle demos as evidence of inference quality.
- Replaced hard-coded "Bayes wins" benchmark flags with end-to-end document retrieval and grounded answering.
- Added uncertainty-aware abstention for missing evidence and unresolved source conflicts.
- Added reproducible RAG evaluation with a plain TF-IDF baseline.
Install
pip install -e .
No GPU is required. The default generator is extractive and citation-grounded; a model-backed generator can be supplied if desired.
Quick start
from bayesian_langgraph import DocumentRecord, BayesianIndex, BayesianRAGGraph
docs = [
DocumentRecord(
id="official",
title="Current portal policy",
text="The current HR portal is PeopleHub.",
source="official",
metadata={"reliability_alpha": 18, "reliability_beta": 2, "authority": 0.98, "freshness": 1.0},
),
DocumentRecord(
id="legacy",
title="HR portal guide",
text="The HR portal is WorkSphere.",
source="legacy-cache",
metadata={"reliability_alpha": 6, "reliability_beta": 6, "authority": 0.45, "freshness": 0.18},
),
]
graph_rag = BayesianRAGGraph(BayesianIndex(docs))
print(graph_rag.invoke("What is the current HR portal?"))
RAG validation
Run:
PYTHONPATH=src:. python evaluation/rag_benchmark.py
The committed result is in artifacts/rag_benchmark_results.json.
| Suite | System | Recall@1 | MRR | Answer accuracy | Abstention accuracy | End-to-end accuracy |
|---|---|---|---|---|---|---|
| Clean RAG (8 QA) | Bayesian | 1.000 | 1.000 | 1.000 | n/a | 1.000 |
| Clean RAG (8 QA) | Plain TF-IDF | 1.000 | 1.000 | 1.000 | n/a | 1.000 |
| Conflict/missing RAG (18 QA) | Bayesian | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| Conflict/missing RAG (18 QA) | Plain TF-IDF | 0.250 | 0.611 | 0.250 | 0.333 | 0.278 |
These are controlled end-to-end repository tests, not a claim of universal RAG accuracy.
Framework-level LangGraph RAG test
evaluation/framework_rag_benchmark.py executes every case through the compiled LangGraph graph itself. The validated topology is:
START -> retrieve -> assess -> {generate | abstain} -> END.
It was validated against langgraph 1.2.16 with langchain-core 1.6.11. Results: 8/8 clean cases and 18/18 conflict/missing-evidence cases passed end-to-end. The committed output is artifacts/framework_rag_benchmark_results.json.
Run it with:
PYTHONPATH=src:. python evaluation/framework_rag_benchmark.py
Layout
src/bayesian_langgraph/core.py— posterior retrieval, abstention, grounded answerersrc/bayesian_langgraph/graph.py— actual LangGraphStateGraphsrc/bayesian_langgraph/smc.py— corrected importance-weighted SMC utilityevaluation/rag_benchmark.py— controlled retrieval/grounding benchmarkevaluation/framework_rag_benchmark.py— compiledStateGraphRAG benchmarktests/— regression and graph-integration testsVALIDATION.md— exact framework/version validation record