financial_audit_env / architecture.svg
balloonmann's picture
Upload architecture.svg
f391ca3 verified
|
Raw History Blame Contribute Delete
5.53 kB
<svg width="100%" viewBox="0 0 780 520" xmlns="http://www.w3.org/2000/svg" role="img">
<title>Financial Audit RL Environment Architecture</title>
<desc>Campaign Controller orchestrating audit specialists and training infrastructure</desc>
<defs>
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
<path d="M2 1L8 5L2 9" fill="none" stroke="#888780" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</marker>
</defs>
<!-- Controller node -->
<rect x="290" y="30" width="200" height="56" rx="8" fill="#EEEDFE" stroke="#534AB7" stroke-width="1.2"/>
<text x="390" y="54" text-anchor="middle" font-family="sans-serif" font-size="13" font-weight="600" fill="#26215C">Campaign Controller</text>
<text x="390" y="72" text-anchor="middle" font-family="sans-serif" font-size="11" fill="#534AB7">5-period orchestration</text>
<!-- Audit Specialists group box -->
<rect x="30" y="130" width="380" height="340" rx="10" fill="#E6F1FB" stroke="#185FA5" stroke-width="0.8" stroke-dasharray="5,3"/>
<text x="50" y="152" font-family="sans-serif" font-size="11" fill="#185FA5" font-weight="600">Audit Specialists</text>
<!-- Expense -->
<rect x="50" y="164" width="160" height="52" rx="6" fill="#ffffff" stroke="#378ADD" stroke-width="0.8"/>
<text x="130" y="186" text-anchor="middle" font-family="sans-serif" font-size="12" font-weight="600" fill="#0C447C">Expense Specialist</text>
<text x="130" y="202" text-anchor="middle" font-family="sans-serif" font-size="10" fill="#185FA5">policy audit · 19 claims</text>
<!-- Invoice -->
<rect x="230" y="164" width="160" height="52" rx="6" fill="#ffffff" stroke="#378ADD" stroke-width="0.8"/>
<text x="310" y="186" text-anchor="middle" font-family="sans-serif" font-size="12" font-weight="600" fill="#0C447C">Invoice Specialist</text>
<text x="310" y="202" text-anchor="middle" font-family="sans-serif" font-size="10" fill="#185FA5">3-way match · PO+GRN+INV</text>
<!-- GST -->
<rect x="50" y="234" width="160" height="52" rx="6" fill="#ffffff" stroke="#378ADD" stroke-width="0.8"/>
<text x="130" y="256" text-anchor="middle" font-family="sans-serif" font-size="12" font-weight="600" fill="#0C447C">GST Specialist</text>
<text x="130" y="272" text-anchor="middle" font-family="sans-serif" font-size="10" fill="#185FA5">book vs GSTR-2B recon</text>
<!-- Fraud -->
<rect x="230" y="234" width="160" height="52" rx="6" fill="#ffffff" stroke="#378ADD" stroke-width="0.8"/>
<text x="310" y="256" text-anchor="middle" font-family="sans-serif" font-size="12" font-weight="600" fill="#0C447C">Fraud Specialist</text>
<text x="310" y="272" text-anchor="middle" font-family="sans-serif" font-size="10" fill="#185FA5">forensic pattern detection</text>
<!-- Overseer -->
<rect x="130" y="310" width="160" height="52" rx="6" fill="#ffffff" stroke="#378ADD" stroke-width="0.8"/>
<text x="210" y="332" text-anchor="middle" font-family="sans-serif" font-size="12" font-weight="600" fill="#0C447C">Overseer</text>
<text x="210" y="348" text-anchor="middle" font-family="sans-serif" font-size="10" fill="#185FA5">review · approve · escalate</text>
<!-- Training Infrastructure group box -->
<rect x="430" y="130" width="320" height="340" rx="10" fill="#EAF3DE" stroke="#3B6D11" stroke-width="0.8" stroke-dasharray="5,3"/>
<text x="450" y="152" font-family="sans-serif" font-size="11" fill="#3B6D11" font-weight="600">Training Infrastructure</text>
<!-- Regulatory Shock -->
<rect x="450" y="164" width="270" height="52" rx="6" fill="#ffffff" stroke="#639922" stroke-width="0.8"/>
<text x="585" y="186" text-anchor="middle" font-family="sans-serif" font-size="12" font-weight="600" fill="#27500A">Regulatory Shock Engine</text>
<text x="585" y="202" text-anchor="middle" font-family="sans-serif" font-size="10" fill="#3B6D11">REG-001 / 002 / 003 mid-period</text>
<!-- Adversarial -->
<rect x="450" y="234" width="270" height="52" rx="6" fill="#ffffff" stroke="#639922" stroke-width="0.8"/>
<text x="585" y="256" text-anchor="middle" font-family="sans-serif" font-size="12" font-weight="600" fill="#27500A">Adversarial Red/Blue</text>
<text x="585" y="272" text-anchor="middle" font-family="sans-serif" font-size="10" fill="#3B6D11">5 fraud difficulty levels</text>
<!-- Self-Improvement -->
<rect x="450" y="304" width="270" height="52" rx="6" fill="#ffffff" stroke="#639922" stroke-width="0.8"/>
<text x="585" y="326" text-anchor="middle" font-family="sans-serif" font-size="12" font-weight="600" fill="#27500A">Self-Improvement</text>
<text x="585" y="342" text-anchor="middle" font-family="sans-serif" font-size="10" fill="#3B6D11">critic · regression gate</text>
<!-- GRPO Trainer -->
<rect x="450" y="374" width="270" height="52" rx="6" fill="#ffffff" stroke="#639922" stroke-width="0.8"/>
<text x="585" y="396" text-anchor="middle" font-family="sans-serif" font-size="12" font-weight="600" fill="#27500A">GRPO Trainer</text>
<text x="585" y="412" text-anchor="middle" font-family="sans-serif" font-size="10" fill="#3B6D11">Unsloth + TRL · LoRA r=16</text>
<!-- Arrows: Controller → Audit group -->
<line x1="350" y1="86" x2="220" y2="130" stroke="#888780" stroke-width="1" marker-end="url(#arrow)" fill="none"/>
<!-- Arrows: Controller → Training group -->
<line x1="430" y1="86" x2="560" y2="130" stroke="#888780" stroke-width="1" marker-end="url(#arrow)" fill="none"/>
</svg>