ratulsur/ap-auditor
08
AP Auditor — Accounts Payable Fraud Detector
Fine-tuned Phi-3.5-mini-instruct for Accounts Payable invoice auditing. Detects fraud, duplicates, pricing errors, and compliance violations instantly.
Evaluation Results
Model Details
Detects
duplicate_invoice— same invoice submitted twiceunapproved_vendor— vendor not on approved listmissing_po_reference— no PO number attachedtax_discrepancy— wrong GST rate appliedround_number_fraud— suspiciously round amountssplit_invoice— invoices split to avoid approval thresholdprice_mismatch— amount exceeds contracted rateweekend_submission— invoice submitted on weekend
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
import torch, json, re
model = AutoModelForCausalLM.from_pretrained(
"ratulsur/ap-auditor",
torch_dtype=torch.float16,
device_map="auto",
)
tok = AutoTokenizer.from_pretrained("ratulsur/ap-auditor")
SYSTEM_PROMPT = """You are a senior Accounts Payable Auditor AI.
Output ONLY a valid JSON audit result."""
def audit(invoice: dict) -> dict:
prompt = (
f"<|system|>\n{SYSTEM_PROMPT}<|end|>\n"
f"<|user|>\nAudit this invoice:\n\n{json.dumps(invoice, indent=2)}<|end|>\n"
f"<|assistant|>\n"
)
pipe = pipeline("text-generation", model=model, tokenizer=tok,
return_full_text=False)
out = pipe(prompt, max_new_tokens=512, do_sample=False)
raw = out[0]["generated_text"].strip()
match = re.search(r"\{.*\}", raw, re.DOTALL)
return json.loads(match.group()) if match else {"error": raw}Live Demo
Try it: huggingface.co/spaces/ratulsur/ap-auditor-demo
License
Apache 2.0
