Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -93,31 +93,11 @@ def analyze(
|
|
| 93 |
"- Creatinine: 0.7 β 1.3 mg/dL (Adult Male), 0.6 β 1.1 mg/dL (Adult Female)\n"
|
| 94 |
"- Glucose (Fasting): 70 β 100 mg/dL (Adults)\n"
|
| 95 |
"- CRP: 0.3 β 10 mg/L (Adults)\n"
|
| 96 |
-
"- Hemoglobin (Hb): 13.5 β 17.5 g/dL (Adult Male), 12.0 β 15.5 g/dL (Adult Female)\n"
|
| 97 |
-
"- Hematocrit (Hct): 41 β 53% (Adult Male), 36 β 46% (Adult Female)\n"
|
| 98 |
"- MCV: 80 β 100 fL (Adults)\n"
|
| 99 |
-
"- MCH: 27 β 33 pg (Adults)\n"
|
| 100 |
-
"- MCHC: 32 β 36 g/dL (Adults)\n"
|
| 101 |
"- RDW: 11 β 15% (Adults)\n"
|
| 102 |
-
"- Platelets: 150,000 β 450,000 /Β΅L (Adults)\n"
|
| 103 |
"- WBC: 4,000 β 11,000 /Β΅L (Adults)\n"
|
| 104 |
-
"- Neutrophils: 40 β 60% (Adults)\n"
|
| 105 |
"- Lymphocytes: 20 β 40% (Adults)\n"
|
| 106 |
-
"- Monocytes: 2 β 8% (Adults)\n"
|
| 107 |
-
"- Eosinophils: 1 β 4% (Adults)\n"
|
| 108 |
-
"- Basophils: 0.5 β 1% (Adults)\n"
|
| 109 |
-
"- Total Cholesterol: < 200 mg/dL (Desirable)\n"
|
| 110 |
-
"- HDL Cholesterol: > 40 mg/dL (Male), > 50 mg/dL (Female)\n"
|
| 111 |
-
"- LDL Cholesterol: < 100 mg/dL (Optimal)\n"
|
| 112 |
-
"- Triglycerides: < 150 mg/dL (Normal)\n"
|
| 113 |
-
"- ALT: 7 β 56 U/L (Adults)\n"
|
| 114 |
-
"- AST: 10 β 40 U/L (Adults)\n"
|
| 115 |
"- ALP: 44 β 147 U/L (Adults)\n"
|
| 116 |
-
"- Bilirubin (Total): 0.1 β 1.2 mg/dL (Adults)\n"
|
| 117 |
-
"- Urea (BUN): 7 β 20 mg/dL (Adults)\n"
|
| 118 |
-
"- Sodium (Na+): 135 β 145 mmol/L (Adults)\n"
|
| 119 |
-
"- Potassium (K+): 3.5 β 5.0 mmol/L (Adults)\n"
|
| 120 |
-
"- Calcium (Ca2+): 8.5 β 10.5 mg/dL (Adults)\n\n"
|
| 121 |
|
| 122 |
"RULES:\n"
|
| 123 |
"- For each biomarker, compare the patientβs value strictly against the ranges above.\n"
|
|
@@ -161,12 +141,11 @@ def analyze(
|
|
| 161 |
"- Highlight important biomarker interactions (e.g., MCV+RDW for anemia, CRP+WBC for inflammation).\n\n"
|
| 162 |
|
| 163 |
"*Tabular Mapping*\n"
|
| 164 |
-
"- Markdown table with columns: | Biomarker | Value | Status | AI-Inferred Insight |\n"
|
| 165 |
"- Include all available biomarkers in order.\n\n"
|
| 166 |
|
| 167 |
"*Enhanced AI Insights & Longitudinal Risk*\n"
|
| 168 |
-
|
| 169 |
-
"- If all normal: 'No abnormalities detected from current biomarkers.'\n\n"
|
| 170 |
|
| 171 |
"STYLE:\n"
|
| 172 |
"- Professional, concise, medically accurate.\n"
|
|
@@ -201,12 +180,17 @@ def analyze(
|
|
| 201 |
|
| 202 |
# Generate
|
| 203 |
# Keep generation parameters conservative for Spaces
|
| 204 |
-
gen = pipe(
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 210 |
|
| 211 |
# Extract generated text
|
| 212 |
generated = gen[0].get("generated_text") or gen[0].get("text") or str(gen[0])
|
|
|
|
| 93 |
"- Creatinine: 0.7 β 1.3 mg/dL (Adult Male), 0.6 β 1.1 mg/dL (Adult Female)\n"
|
| 94 |
"- Glucose (Fasting): 70 β 100 mg/dL (Adults)\n"
|
| 95 |
"- CRP: 0.3 β 10 mg/L (Adults)\n"
|
|
|
|
|
|
|
| 96 |
"- MCV: 80 β 100 fL (Adults)\n"
|
|
|
|
|
|
|
| 97 |
"- RDW: 11 β 15% (Adults)\n"
|
|
|
|
| 98 |
"- WBC: 4,000 β 11,000 /Β΅L (Adults)\n"
|
|
|
|
| 99 |
"- Lymphocytes: 20 β 40% (Adults)\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 100 |
"- ALP: 44 β 147 U/L (Adults)\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
|
| 102 |
"RULES:\n"
|
| 103 |
"- For each biomarker, compare the patientβs value strictly against the ranges above.\n"
|
|
|
|
| 141 |
"- Highlight important biomarker interactions (e.g., MCV+RDW for anemia, CRP+WBC for inflammation).\n\n"
|
| 142 |
|
| 143 |
"*Tabular Mapping*\n"
|
| 144 |
+
"- Markdown table with columns: | Biomarker |Reference range | Value | Status | AI-Inferred Insight |\n"
|
| 145 |
"- Include all available biomarkers in order.\n\n"
|
| 146 |
|
| 147 |
"*Enhanced AI Insights & Longitudinal Risk*\n"
|
| 148 |
+
|
|
|
|
| 149 |
|
| 150 |
"STYLE:\n"
|
| 151 |
"- Professional, concise, medically accurate.\n"
|
|
|
|
| 180 |
|
| 181 |
# Generate
|
| 182 |
# Keep generation parameters conservative for Spaces
|
| 183 |
+
gen = pipe(
|
| 184 |
+
prompt,
|
| 185 |
+
max_new_tokens=2500, # enough for executive summary
|
| 186 |
+
do_sample=False, # greedy decoding (no randomness)
|
| 187 |
+
temperature=0.0, # fully deterministic
|
| 188 |
+
top_p=1.0, # consider full probability mass
|
| 189 |
+
repetition_penalty=1.0, # neutral repetition handling
|
| 190 |
+
early_stopping=True, # stop cleanly once done
|
| 191 |
+
return_full_text=False # only assistant output
|
| 192 |
+
)
|
| 193 |
+
|
| 194 |
|
| 195 |
# Extract generated text
|
| 196 |
generated = gen[0].get("generated_text") or gen[0].get("text") or str(gen[0])
|