Spaces:
Sleeping
Sleeping
Commit
Β·
f2fd281
1
Parent(s):
7d58419
Fix: File upload configuration for Hugging Face deployment
Browse files
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="
|
| 70 |
|
| 71 |
try:
|
| 72 |
-
# Read file content
|
| 73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 74 |
|
| 75 |
progress(0.3, desc="Sending file to API...")
|
| 76 |
|
| 77 |
# Prepare multipart form data
|
| 78 |
files = {
|
| 79 |
-
'file': (
|
| 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="
|
| 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 |
)
|