viswanani's picture
Update utils.py
468c712 verified
import fitz # PyMuPDF
import json
import os
def get_salesforce_client():
# Replace with actual authentication logic
return "FakeSFClient", None
def get_salesforce_objects(sf):
return ["Account", "Contact", "Opportunity"], None
def get_object_fields(sf, object_name):
return ["Name", "Email", "Phone"], None
def extract_text_from_pdf(pdf_path):
try:
doc = fitz.open(pdf_path)
text = ""
for page in doc:
text += page.get_text()
return text.strip(), None
except Exception as e:
return None, str(e)
def extract_key_value_pairs(pdf_path):
try:
# Dummy example; replace with NLP extraction logic
return [{"keys": ["Name", "Email"], "values": ["John Doe", "john@example.com"]}], None
except Exception as e:
return None, str(e)
def map_fields(extracted_data, object_fields):
try:
mappings = {}
confidence_scores = {}
for k in extracted_data[0]["keys"]:
match = next((f for f in object_fields if f.lower() in k.lower()), object_fields[0])
mappings[k] = match
confidence_scores[k] = 0.9
return mappings, confidence_scores, None
except Exception as e:
return None, None, str(e)
def create_record(sf, object_name, data):
return "001ABC123XYZ", None # Simulated Salesforce ID
def attach_pdf(sf, record_id, pdf_path):
return "PDF attached successfully", None
def log_failure(pdf_path, object_name, error):
with open("failures.json", "a") as f:
json.dump({"pdf": pdf_path, "object": object_name, "error": error}, f)
f.write("\n")