Bader Alabddan
Complete AutoRiskScoreEngine vertical
3f61ff7
"""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()