Distopia22 commited on
Commit
f2fd281
Β·
1 Parent(s): 7d58419

Fix: File upload configuration for Hugging Face deployment

Browse files
Files changed (1) hide show
  1. app.py +30 -19
app.py CHANGED
@@ -66,17 +66,25 @@ def upload_file_analysis(file, api_url, progress=gr.Progress()):
66
  if file is None:
67
  return "⚠️ Please upload a TXT file first."
68
 
69
- progress(0, desc="Uploading file...")
70
 
71
  try:
72
- # Read file content
73
- file_content = file.read()
 
 
 
 
 
 
 
 
74
 
75
  progress(0.3, desc="Sending file to API...")
76
 
77
  # Prepare multipart form data
78
  files = {
79
- 'file': (file.name, file_content, 'text/plain')
80
  }
81
 
82
  response = requests.post(
@@ -105,6 +113,8 @@ def upload_file_analysis(file, api_url, progress=gr.Progress()):
105
  return f"❌ **HTTP Error {e.response.status_code}**\n\n{e.response.text}"
106
  except requests.exceptions.RequestException as e:
107
  return f"❌ **Request Error**\n\n{str(e)}"
 
 
108
  except Exception as e:
109
  return f"❌ **Unexpected Error**\n\n{str(e)}"
110
 
@@ -124,19 +134,6 @@ def format_file_upload_response(result):
124
 
125
  output += "---\n\n"
126
 
127
- # CPT Codes
128
- output += "### πŸ’Ό CPT Procedure Codes\n\n"
129
- cpt_codes = result.get("cpt_codes", [])
130
-
131
- if cpt_codes:
132
- for idx, code in enumerate(cpt_codes, 1):
133
- output += f"**{idx}.** `{code}`\n\n"
134
- output += f"\n**Explanation:** {result.get('cpt_explanation', 'N/A')}\n\n"
135
- else:
136
- output += "*No CPT codes identified*\n\n"
137
-
138
- output += "---\n\n"
139
-
140
  # ICD Codes
141
  output += "### πŸ₯ ICD-10 Diagnostic Codes\n\n"
142
  icd_codes = result.get("icd_codes", [])
@@ -148,6 +145,19 @@ def format_file_upload_response(result):
148
  else:
149
  output += "*No ICD-10 codes identified*\n\n"
150
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  return output
152
 
153
  def generate_empty_response():
@@ -269,7 +279,7 @@ with gr.Blocks(css=load_css(), theme=gr.themes.Soft(), title="Medical Coding (IC
269
  file_upload = gr.File(
270
  label="Upload TXT File",
271
  file_types=[".txt"],
272
- type="binary",
273
  elem_classes="file-upload"
274
  )
275
 
@@ -376,5 +386,6 @@ if __name__ == "__main__":
376
  demo.launch(
377
  server_name="0.0.0.0",
378
  server_port=7860,
379
- share=False
 
380
  )
 
66
  if file is None:
67
  return "⚠️ Please upload a TXT file first."
68
 
69
+ progress(0, desc="Reading file...")
70
 
71
  try:
72
+ # Read file content based on type
73
+ if isinstance(file, str):
74
+ # File path string
75
+ with open(file, 'r', encoding='utf-8') as f:
76
+ file_content = f.read()
77
+ filename = os.path.basename(file)
78
+ else:
79
+ # File object
80
+ file_content = file.decode('utf-8') if isinstance(file, bytes) else file
81
+ filename = "uploaded_file.txt"
82
 
83
  progress(0.3, desc="Sending file to API...")
84
 
85
  # Prepare multipart form data
86
  files = {
87
+ 'file': (filename, file_content.encode('utf-8'), 'text/plain')
88
  }
89
 
90
  response = requests.post(
 
113
  return f"❌ **HTTP Error {e.response.status_code}**\n\n{e.response.text}"
114
  except requests.exceptions.RequestException as e:
115
  return f"❌ **Request Error**\n\n{str(e)}"
116
+ except UnicodeDecodeError:
117
+ return "❌ **File Encoding Error**\n\nPlease ensure the file is a valid TXT file with UTF-8 encoding."
118
  except Exception as e:
119
  return f"❌ **Unexpected Error**\n\n{str(e)}"
120
 
 
134
 
135
  output += "---\n\n"
136
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  # ICD Codes
138
  output += "### πŸ₯ ICD-10 Diagnostic Codes\n\n"
139
  icd_codes = result.get("icd_codes", [])
 
145
  else:
146
  output += "*No ICD-10 codes identified*\n\n"
147
 
148
+ output += "---\n\n"
149
+
150
+ # CPT Codes
151
+ output += "### πŸ’Ό CPT Procedure Codes\n\n"
152
+ cpt_codes = result.get("cpt_codes", [])
153
+
154
+ if cpt_codes:
155
+ for idx, code in enumerate(cpt_codes, 1):
156
+ output += f"**{idx}.** `{code}`\n\n"
157
+ output += f"\n**Explanation:** {result.get('cpt_explanation', 'N/A')}\n\n"
158
+ else:
159
+ output += "*No CPT codes identified*\n\n"
160
+
161
  return output
162
 
163
  def generate_empty_response():
 
279
  file_upload = gr.File(
280
  label="Upload TXT File",
281
  file_types=[".txt"],
282
+ type="filepath",
283
  elem_classes="file-upload"
284
  )
285
 
 
386
  demo.launch(
387
  server_name="0.0.0.0",
388
  server_port=7860,
389
+ share=False,
390
+ show_error=True
391
  )