dschandra commited on
Commit
8875201
Β·
verified Β·
1 Parent(s): 5968a12

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -11
app.py CHANGED
@@ -1,11 +1,7 @@
1
- import json
2
  import os
3
  import gradio as gr
4
  from utils import extract_kyc_fields
5
  from simple_salesforce import Salesforce
6
- from paddleocr import PaddleOCR
7
-
8
- ocr = PaddleOCR(use_angle_cls= True, lang ='en')
9
 
10
  # ------------------------
11
  # CONFIGURATION
@@ -21,6 +17,7 @@ os.environ["OMP_NUM_THREADS"] = "1"
21
  # CONNECT TO SALESFORCE
22
  # ------------------------
23
  def connect_salesforce():
 
24
  try:
25
  sf = Salesforce(
26
  username=SF_USERNAME,
@@ -29,7 +26,7 @@ def connect_salesforce():
29
  domain="login" # Production
30
  )
31
  print("βœ… Connected to Salesforce (Production)")
32
- return {"status": "success", "env": "Production"}
33
  except Exception as e:
34
  print("❌ Production login failed:", e)
35
  try:
@@ -40,7 +37,7 @@ def connect_salesforce():
40
  domain="test" # Sandbox
41
  )
42
  print("βœ… Connected to Salesforce (Sandbox)")
43
- return {"status": "success", "env": "Sandbox"}
44
  except Exception as e2:
45
  print("❌ Sandbox login failed:", e2)
46
  return {"status": "error", "message": "Salesforce login failed"}
@@ -51,6 +48,7 @@ sf_status = connect_salesforce()
51
  # PROCESS IMAGE FUNCTION
52
  # ------------------------
53
  def process_image(image_file):
 
54
  if sf_status["status"] != "success":
55
  return {"salesforce_status": "error", "message": sf_status.get("message", "Login failed")}
56
 
@@ -62,23 +60,26 @@ def process_image(image_file):
62
  ocr_result = extract_kyc_fields(image_file.name)
63
  return {
64
  "salesforce_status": "connected",
 
65
  "ocr_result": ocr_result
66
  }
67
  except Exception as e:
68
- return {"ocr_status": "error", "message": str(e)}
69
 
70
  # ------------------------
71
  # GRADIO INTERFACE
72
  # ------------------------
73
  iface = gr.Interface(
74
  fn=process_image,
75
- inputs=gr.Image(type="filepath"), # βœ… fixed
76
  outputs=gr.JSON(),
77
  title="AI KYC OCR & Salesforce Integration",
78
  description="Upload PAN or Aadhaar card images to extract text and verify Salesforce connection."
79
  )
80
 
81
-
 
 
82
  if __name__ == "__main__":
83
- # Launch server to keep container alive
84
- iface.launch(server_name="0.0.0.0", server_port=7860)
 
 
1
  import os
2
  import gradio as gr
3
  from utils import extract_kyc_fields
4
  from simple_salesforce import Salesforce
 
 
 
5
 
6
  # ------------------------
7
  # CONFIGURATION
 
17
  # CONNECT TO SALESFORCE
18
  # ------------------------
19
  def connect_salesforce():
20
+ """Connects to Salesforce (Production first, then Sandbox fallback)"""
21
  try:
22
  sf = Salesforce(
23
  username=SF_USERNAME,
 
26
  domain="login" # Production
27
  )
28
  print("βœ… Connected to Salesforce (Production)")
29
+ return {"status": "success", "env": "Production", "sf": sf}
30
  except Exception as e:
31
  print("❌ Production login failed:", e)
32
  try:
 
37
  domain="test" # Sandbox
38
  )
39
  print("βœ… Connected to Salesforce (Sandbox)")
40
+ return {"status": "success", "env": "Sandbox", "sf": sf}
41
  except Exception as e2:
42
  print("❌ Sandbox login failed:", e2)
43
  return {"status": "error", "message": "Salesforce login failed"}
 
48
  # PROCESS IMAGE FUNCTION
49
  # ------------------------
50
  def process_image(image_file):
51
+ """Process uploaded KYC image and extract PAN/Aadhaar details"""
52
  if sf_status["status"] != "success":
53
  return {"salesforce_status": "error", "message": sf_status.get("message", "Login failed")}
54
 
 
60
  ocr_result = extract_kyc_fields(image_file.name)
61
  return {
62
  "salesforce_status": "connected",
63
+ "sf_env": sf_status.get("env"),
64
  "ocr_result": ocr_result
65
  }
66
  except Exception as e:
67
+ return {"ocr_status": "error", "message": f"OCR extraction failed: {str(e)}"}
68
 
69
  # ------------------------
70
  # GRADIO INTERFACE
71
  # ------------------------
72
  iface = gr.Interface(
73
  fn=process_image,
74
+ inputs=gr.Image(type="filepath"), # Use filepath for PaddleOCR
75
  outputs=gr.JSON(),
76
  title="AI KYC OCR & Salesforce Integration",
77
  description="Upload PAN or Aadhaar card images to extract text and verify Salesforce connection."
78
  )
79
 
80
+ # ------------------------
81
+ # LAUNCH APP
82
+ # ------------------------
83
  if __name__ == "__main__":
84
+ # Launch Gradio server
85
+ iface.launch(server_name="0.0.0.0", server_port=7860, debug=True)