agent-infra / closegate_mod.py
dipankarsarkar's picture
Publish agent-infra from ds-hf
b2bfc7d verified
Raw
History Blame Contribute Delete
2.01 kB
"""closegate: the policy gate for finance AI agents — live governance eval.
Put an agent in front of the monthly close and the risk is not 'can it match
invoices', it is 'does it respect the controls'. This Space runs closegate's
own eval harness (no LLM) over synthetic multi-entity finance data and shows the
report: matching accuracy AND policy enforcement, with verbatim rule text in the
audit trail.
Tool: https://github.com/neul-labs/closegate
"""
import os, subprocess, glob, gradio as gr
CG = os.environ.get("CLOSEGATE_DIR", "/home/user/closegate")
def run_eval():
try:
subprocess.run(["python", "-m", "eval.runner", "--dimension", "accuracy,policy"],
cwd=CG, capture_output=True, text=True, timeout=240)
except Exception as e:
return f"eval error: {e}"
reports = sorted(glob.glob(f"{CG}/evals/results/*/report.md"))
return open(reports[-1]).read() if reports else "No report produced."
HEADER = """# closegate: governance eval for finance AI agents
closegate is a policy gate + tamper-evident audit log that sits between an LLM and
your accounting systems — segregation of duties, materiality routing, and a
hash-chained audit an external auditor can replay. This Space runs closegate's
**own eval harness (no LLM)** over synthetic multi-entity ledgers and shows the
report live: reconciliation **matching accuracy** and **policy enforcement**.
🔧 [github.com/neul-labs/closegate](https://github.com/neul-labs/closegate) · 🗂️ dataset: [neullabs/closegate-recon-bench](https://huggingface.co/datasets/neullabs/closegate-recon-bench) · From [Neul Labs](https://huggingface.co/neullabs).
"""
with gr.Blocks(title="closegate — finance-agent governance eval") as demo:
gr.Markdown(HEADER)
b = gr.Button("Run the governance eval", variant="primary")
o = gr.Markdown()
b.click(run_eval, None, o)
demo.load(run_eval, None, o)
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860)