"""AutoRiskScoreEngine - IFRS-Ready Underwriting Built using BDR Agent Factory v1 """ import gradio as gr from agents.risk_agent import RiskCalculationAgent from agents.ifrs_agent import IFRSTaggingAgent class AutoRiskScoreEngine: def __init__(self): self.risk_agent = RiskCalculationAgent() self.ifrs_agent = IFRSTaggingAgent() def score_risk(self, policy_id: str, coverage_amount: float, loss_history: int): policy_data = {"policy_id": policy_id, "coverage_amount": coverage_amount, "loss_history": loss_history} risk_results = self.risk_agent.process(policy_data) ifrs_results = self.ifrs_agent.process(risk_results) score_text = f"""**Risk Score:** {risk_results['risk_score']:.1f}/100 **Risk Band:** {risk_results['risk_band'].upper()} **Confidence:** {risk_results['confidence']:.1%}""" justification_text = f"""**Justification:** {risk_results['justification']} **IFRS Classification:** Reserve Category: {ifrs_results['reserve_category']} Compliance Ready: {'✓' if ifrs_results['compliance_ready'] else '✗'}""" ifrs_text = f"""**IFRS Tags:** {chr(10).join('- ' + tag for tag in ifrs_results['ifrs_tags'])} **Audit Trail:** - Risk Calculation Agent: ✓ - IFRS Tagging Agent: ✓ """ return score_text, justification_text, ifrs_text app = AutoRiskScoreEngine() with gr.Blocks(title="AutoRiskScoreEngine", theme=gr.themes.Soft()) as demo: gr.Markdown(""" # ⚖️ AutoRiskScoreEngine ## IFRS-Ready Underwriting Risk Scoring **IFRS17 compliant | Automated triage | Risk segmentation** *Built using [BDR Agent Factory v1](https://huggingface.co/spaces/bdr-ai-org/BDR-Agent-Factory)* """) with gr.Row(): with gr.Column(): gr.Markdown("### 📋 Policy Information") policy_id = gr.Textbox(label="Policy ID", value="POL-2024-001") coverage_amount = gr.Number(label="Coverage Amount ($)", value=50000.00) loss_history = gr.Slider(label="Loss History Count", minimum=0, maximum=10, value=2, step=1) score_btn = gr.Button("⚖️ Calculate Risk Score", variant="primary", size="lg") with gr.Column(): gr.Markdown("### 🎯 Risk Assessment") score_output = gr.Textbox(label="Risk Score", lines=3) justification_output = gr.Textbox(label="Justification", lines=5) ifrs_output = gr.Textbox(label="IFRS Compliance", lines=6) gr.Examples( examples=[ ["POL-2024-001", 50000.00, 2], ["POL-2024-002", 100000.00, 5], ["POL-2024-003", 25000.00, 0], ], inputs=[policy_id, coverage_amount, loss_history] ) score_btn.click( fn=app.score_risk, inputs=[policy_id, coverage_amount, loss_history], outputs=[score_output, justification_output, ifrs_output] ) if __name__ == "__main__": demo.launch()