Skip to main content

Financial Compliance Assistant

The Financial Compliance Assistant is a specialized RAG system designed for financial institutions to help compliance officers navigate complex regulatory requirements and ensure adherence to financial regulations.

Overview

User Story: Financial Compliance Assistant for Bank

Key Features

  • Regulatory Terminology Expansion: Automatically expands queries with compliance-specific terms and abbreviations
  • Authority-Weighted Reranking: Prioritizes official regulatory guidance from authoritative sources
  • Legal Disclaimers: Automatically includes appropriate legal disclaimers with all responses
  • Escalation Detection: Identifies queries requiring human compliance officer review
  • Audit Logging: Maintains comprehensive audit trails for compliance tracking
  • Compliance Validation: Validates responses for accuracy and regulatory compliance

Supported Regulation Types

  • AML (Anti-Money Laundering): SAR filing, suspicious activity monitoring, AML programs
  • KYC (Know Your Customer): Customer identification, due diligence, verification
  • BSA (Bank Secrecy Act): CTR reporting, recordkeeping requirements
  • Sanctions: OFAC compliance, SDN list screening, blocked transactions
  • Tax Compliance: FATCA, CRS, foreign account reporting

Quick Start

Basic Usage

import asyncio
from packages.agents.compliance_agent import ComplianceAgent

async def main():
# Initialize agent
agent = ComplianceAgent()

# Define user context
user_context = {
"user_id": "compliance_officer_001",
"user_role": "compliance_officer",
"department": "risk_management",
"regulation_type": "AML",
"jurisdiction": "US"
}

# Query
query = "What are the SAR filing requirements?"

# Handle query
response = await agent.handle_compliance_query(query, user_context)

print(f"Answer: {response['answer']}")
print(f"Legal Disclaimers: {response['legal_disclaimers']}")

asyncio.run(main())

API Usage

curl -X POST http://localhost:8000/compliance/query \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-token" \
-d '{
"query": "What are the SAR filing requirements?",
"regulation_type": "AML",
"jurisdiction": "US",
"compliance_level": "high"
}'

Architecture

Components

  1. ComplianceConfig: Configuration for compliance-specific settings
  2. ComplianceQueryExpander: Expands queries with regulatory terminology
  3. ComplianceReranker: Reranks results with regulatory authority weighting
  4. ComplianceSystem: Main orchestration system
  5. ComplianceAgent: High-level agent interface
  6. ComplianceAPI: FastAPI endpoints

Data Files

  • data/compliance_knowledge_base.json: Regulatory documents and guidance
  • data/regulatory_terminology.json: Regulatory terminology mappings
  • data/compliance_abbreviations.json: Compliance abbreviation definitions

Configuration

Default Configuration

from packages.rag.compliance_config import ComplianceConfig

config = ComplianceConfig(
llm_model="gpt-4-turbo-preview",
llm_temperature=0.02, # Very low for accuracy
retrieval_k=30, # More candidates
rerank_k=10,
compliance_level="high",
enable_legal_disclaimers=True,
enable_audit_logging=True
)

Custom Configuration

config = ComplianceConfig(
llm_temperature=0.01, # Even lower
retrieval_k=50, # More retrieval
max_cost_per_query=0.30 # Higher cost limit
)

Response Structure

{
"query_id": "comp_1234567890",
"answer": "Detailed compliance response...",
"regulatory_context": {
"regulation_type": "AML",
"jurisdiction": "US",
"compliance_level": "high"
},
"legal_disclaimers": [
"This information is for general guidance only",
"Specific situations may require legal counsel"
],
"regulatory_citations": ["FinCEN", "SEC"],
"compliance_recommendations": [
"Ensure your AML program is up to date"
],
"related_regulations": ["BSA", "KYC"],
"escalation_required": false,
"processing_time_ms": 1250.5
}

Examples

AML Query

query = "What are the suspicious transaction reporting requirements?"
user_context = {"regulation_type": "AML"}
response = await agent.handle_compliance_query(query, user_context)

KYC Query

query = "What are the customer verification requirements?"
user_context = {"regulation_type": "KYC"}
response = await agent.handle_compliance_query(query, user_context)

Sanctions Query

query = "What are the OFAC sanctions compliance requirements?"
user_context = {"regulation_type": "Sanctions"}
response = await agent.handle_compliance_query(query, user_context)

API Endpoints

/compliance/query - Process Compliance Query

Handles compliance queries with regulatory focus.

Request:

{
"query": "What are the SAR filing requirements?",
"regulation_type": "AML",
"jurisdiction": "US",
"compliance_level": "high"
}

Response: Full compliance response with legal disclaimers and citations.

/compliance/search - Search Compliance Documents

Searches the compliance knowledge base.

Request:

{
"query": "suspicious activity reporting",
"filters": {"regulation_type": "AML"},
"top_k": 10
}

Response: List of matching compliance documents.

/compliance/regulatory-lookup - Look Up Regulation

Looks up specific regulatory information.

Request:

{
"regulation": "SAR",
"jurisdiction": "US"
}

Response: Regulatory details and status.

/compliance/health - Health Check

Checks compliance service health.

/compliance/regulations/types - Get Regulation Types

Returns available regulation types.

/compliance/jurisdictions - Get Jurisdictions

Returns available jurisdictions.

/compliance/regulatory-authorities - Get Authorities

Returns recognized regulatory authorities.

Escalation Handling

Queries are automatically escalated for:

  • Requests for legal advice
  • References to specific cases
  • High-risk terms (fraud, criminal, terrorism)
  • Unclear or conflicting regulations
  • Emergency situations
if response['escalation_required']:
print(f"Escalation Reason: {response['escalation_info']['reason']}")
print(f"Priority: {response['escalation_info']['priority']}")

Audit Logging

All compliance queries are automatically logged:

{
"query_id": "comp_1234567890",
"timestamp": "2024-10-08T12:00:00Z",
"user_id": "user_123",
"user_role": "compliance_officer",
"query": "What are the SAR filing requirements?",
"response_length": 1500,
"escalation_required": false
}

Testing

Run compliance tests:

pytest tests/test_compliance_assistant.py -v

Run example:

python examples/compliance_assistant_example.py

Documentation

Integration

Add to FastAPI App

from packages.rag.compliance_api import router as compliance_router

app.include_router(compliance_router)

Use in Production

from packages.agents.compliance_agent import ComplianceAgent
from packages.rag.compliance_config import ComplianceConfig

config = ComplianceConfig(
enable_audit_logging=True,
compliance_level="high"
)

agent = ComplianceAgent(config)

Best Practices

  1. Always provide complete user context with role, department, and regulation type
  2. Review legal disclaimers before displaying to users
  3. Handle escalations appropriately by routing to human compliance officers
  4. Monitor audit logs for compliance tracking and reporting
  5. Keep knowledge base updated with latest regulatory guidance

Support

License

MIT License - See LICENSE file for details.