Sa-m commited on
Commit
2588eaf
·
verified ·
1 Parent(s): e582db7

Update login_module/chat.py

Browse files
Files changed (1) hide show
  1. login_module/chat.py +37 -6
login_module/chat.py CHANGED
@@ -13,22 +13,53 @@ load_dotenv()
13
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
14
  text_model = genai.GenerativeModel("gemini-2.5-flash")
15
 
16
- # --- Helper Functions (Logic from Streamlit Chat) ---
17
 
18
- def file_processing_chat(pdf_file_path):
 
19
  """Processes the uploaded PDF file."""
20
- if not pdf_file_path:
 
 
 
21
  return ""
 
22
  try:
23
- with open(pdf_file_path, "rb") as f:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  reader = PyPDF2.PdfReader(f)
25
  text = ""
26
  for page in reader.pages:
27
  text += page.extract_text()
28
  return text
29
- except Exception as e:
30
- print(f"Error processing PDF: {e}")
 
31
  return ""
 
 
 
 
 
 
 
 
 
32
 
33
  def getallinfo_chat(data):
34
  """Formats resume data."""
 
13
  genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
14
  text_model = genai.GenerativeModel("gemini-2.5-flash")
15
 
 
16
 
17
+
18
+ def file_processing_chat(pdf_file_obj): # Take the Gradio file object
19
  """Processes the uploaded PDF file."""
20
+ # --- CORRECTION: Handle the Gradio file object correctly ---
21
+ # Check if the input is None or falsy
22
+ if not pdf_file_obj:
23
+ print("No file object provided to file_processing_chat.")
24
  return ""
25
+
26
  try:
27
+ # Determine the correct file path from the Gradio object
28
+ # Gradio File component usually provides an object with a 'name' attribute
29
+ # containing the path to the temporary file.
30
+ if hasattr(pdf_file_obj, 'name'):
31
+ # This is the standard way for Gradio File uploads
32
+ file_path = pdf_file_obj.name
33
+ else:
34
+ # Fallback: If it's already a string path (less common in recent Gradio)
35
+ # or if the structure is different, try using it directly.
36
+ # Converting to string is a safe fallback.
37
+ file_path = str(pdf_file_obj)
38
+ print(f"File object does not have 'name' attribute. Using str(): {file_path}")
39
+
40
+ print(f"Attempting to process file at path: {file_path}")
41
+
42
+ # --- Use the file path with PyPDF2 ---
43
+ # Open the file using the resolved path string
44
+ with open(file_path, "rb") as f: # Open in binary read mode
45
  reader = PyPDF2.PdfReader(f)
46
  text = ""
47
  for page in reader.pages:
48
  text += page.extract_text()
49
  return text
50
+ except FileNotFoundError:
51
+ error_msg = f"File not found at path: {file_path}"
52
+ print(error_msg)
53
  return ""
54
+ except PyPDF2.errors.PdfReadError as e:
55
+ error_msg = f"Error reading PDF file {file_path}: {e}"
56
+ print(error_msg)
57
+ return ""
58
+ except Exception as e: # Catch other potential errors during file handling
59
+ error_msg = f"Unexpected error processing PDF from object {pdf_file_obj}: {e}"
60
+ print(error_msg)
61
+ return ""
62
+
63
 
64
  def getallinfo_chat(data):
65
  """Formats resume data."""