Spaces:
Sleeping
Sleeping
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))) | |