SMART_KYC_OCR / app.py
gopichandra's picture
Update app.py
e3cb5a5 verified
raw
history blame
1.41 kB
import os
import gradio as gr
from utils import extract_kyc_fields, connect_salesforce, create_kyc_record
# Connect Salesforce on startup
SF = connect_salesforce()
def process_image(image_file, agent_id_optional):
if not image_file:
return {"status": "error", "message": "No image uploaded"}
if not SF:
return {"status": "error", "message": "Salesforce connection failed"}
kyc_data = extract_kyc_fields(image_file)
agent_id = agent_id_optional.strip() if agent_id_optional else None
sf_result = create_kyc_record(
SF,
kyc_data,
file_name=os.path.basename(image_file),
agent_id=agent_id or None, # only send if provided
)
return {"ocr_result": kyc_data, "salesforce_result": sf_result}
iface = gr.Interface(
fn=process_image,
inputs=[
gr.Image(type="filepath", label="Upload PAN / Aadhaar"),
gr.Textbox(label="Agent Salesforce ID (optional)", placeholder="Enter Agent__c Id (optional)")
],
outputs=gr.JSON(),
title="AI KYC OCR β†’ Salesforce (KYC_Record__c)",
description=(
"Uploads a PAN/Aadhaar image, extracts fields, and creates a KYC_Record__c with:\n"
"Aadhaar_Name__c, Aadhaar_DOB__c, Aadhaar_Number__c, Pan_Name__c, Pan_DOB__c, PAN_Number__c."
)
)
if __name__ == "__main__":
iface.launch(server_name="0.0.0.0", server_port=int(os.getenv("PORT", 7860)))