Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -82,7 +82,7 @@ def analyze(
|
|
| 82 |
except Exception:
|
| 83 |
bmi = "N/A"
|
| 84 |
|
| 85 |
-
|
| 86 |
"You are a professional AI Medical Assistant.\n"
|
| 87 |
"You are analyzing patient demographics (age, height, weight) and Levine biomarker panel values.\n\n"
|
| 88 |
|
|
@@ -96,7 +96,8 @@ def analyze(
|
|
| 96 |
"- Alkaline Phosphatase (ALP)\n"
|
| 97 |
"- White Blood Cell count (WBC)\n"
|
| 98 |
"- Lymphocyte percentage\n\n"
|
| 99 |
-
|
|
|
|
| 100 |
"- Albumin: 3.5 β 5.0 g/dL\n"
|
| 101 |
"- Creatinine: 0.6 β 1.2 mg/dL\n"
|
| 102 |
"- Glucose (fasting): 70 β 99 mg/dL\n"
|
|
@@ -107,16 +108,13 @@ def analyze(
|
|
| 107 |
"- WBC: 4.0 β 11.0 K/uL\n"
|
| 108 |
"- Lymphocytes: 20 β 40 %\n\n"
|
| 109 |
|
| 110 |
-
"
|
| 111 |
-
|
| 112 |
-
"STRICT RULES:\n"
|
| 113 |
"- Use ONLY the 9 biomarkers above + age, height, weight.\n"
|
| 114 |
"- DO NOT use or invent other lab results (e.g., cholesterol, vitamin D, ferritin, ALT, AST, urine results).\n"
|
| 115 |
-
"-
|
| 116 |
-
"- Status (Low/Normal/High) must be defined strictly by whether the value falls below, within, or above the provided reference ranges.\n"
|
| 117 |
"- Analysis must always explain deviations with respect to these reference ranges.\n"
|
| 118 |
"- If a section cannot be addressed with available data, explicitly state: 'Not available from current biomarkers.'\n"
|
| 119 |
-
"- Do not give absolute longevity scores. Instead, summarize trends (e.g., 'No major abnormalities suggesting elevated short-term risk.').\n"
|
| 120 |
"- Nutrient status (Iron, B12, Folate) can only be suggested as possible IF supported by MCV + RDW patterns, but never stated as confirmed.\n"
|
| 121 |
"- Interpret ALP cautiously: mention bone vs liver as possible sources, but highlight that more tests would be required to confirm.\n"
|
| 122 |
"- Always highlight limitations where applicable.\n\n"
|
|
@@ -133,7 +131,7 @@ def analyze(
|
|
| 133 |
" - Kidney Health (Creatinine)\n"
|
| 134 |
" - Metabolic Health (Glucose, CRP)\n"
|
| 135 |
" - Anthropometrics (Age, Height, Weight, BMI)\n"
|
| 136 |
-
" - Other systems: Always state 'Not available from current biomarkers.' if data missing\n\n"
|
| 137 |
|
| 138 |
"3. Personalized Action Plan\n"
|
| 139 |
" - Medical (tests/consults related only to biomarkers β e.g., repeat CBC, iron studies if anemia suspected)\n"
|
|
@@ -151,8 +149,10 @@ def analyze(
|
|
| 151 |
" - The first row after the header must begin directly with 'Albumin'.\n"
|
| 152 |
" - Do NOT add any index numbers (0,1,2...) or empty rows.\n"
|
| 153 |
" - Each biomarker must appear exactly once as a separate row.\n\n"
|
| 154 |
-
|
| 155 |
-
"
|
|
|
|
|
|
|
| 156 |
|
| 157 |
"6. Enhanced AI Insights & Longitudinal Risk\n"
|
| 158 |
" - Subclinical nutrient predictions ONLY if patterns (MCV + RDW) suggest it β state as possible, not confirmed.\n"
|
|
@@ -165,32 +165,31 @@ def analyze(
|
|
| 165 |
"- Keep language professional, concise, and client-friendly.\n"
|
| 166 |
"- Format tables cleanly in Markdown.\n"
|
| 167 |
"- Present output beautifully, like a polished medical summary.\n"
|
| 168 |
-
|
| 169 |
-
)
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
patient_input =(
|
| 173 |
-
f"Patient Profile:\n"
|
| 174 |
-
f"- Age: {age}\n"
|
| 175 |
-
f"- Gender: {gender}\n"
|
| 176 |
-
f"- Height: {height} cm\n"
|
| 177 |
-
f"- Weight: {weight} kg\n"
|
| 178 |
-
f"- BMI: {bmi}\n\n"
|
| 179 |
-
"Lab Values (with Normal Ranges):\n"
|
| 180 |
-
f"- Albumin: {albumin} g/dL (Normal: 3.5 β 5.0 g/dL)\n"
|
| 181 |
-
f"- Creatinine: {creatinine} mg/dL (Normal: 0.6 β 1.2 mg/dL)\n"
|
| 182 |
-
f"- Glucose: {glucose} mg/dL (Normal: 70 β 99 mg/dL, fasting)\n"
|
| 183 |
-
f"- CRP: {crp} mg/L (Normal: < 3 mg/L)\n"
|
| 184 |
-
f"- MCV: {mcv} fL (Normal: 80 β 100 fL)\n"
|
| 185 |
-
f"- RDW: {rdw} % (Normal: 11.5 β 14.5 %)\n"
|
| 186 |
-
f"- ALP: {alp} U/L (Normal: 44 β 147 U/L)\n"
|
| 187 |
-
f"- WBC: {wbc} K/uL (Normal: 4.0 β 11.0 K/uL)\n"
|
| 188 |
-
f"- Lymphocytes: {lymph} % (Normal: 20 β 40 %)\n"
|
| 189 |
-
|
| 190 |
)
|
| 191 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 192 |
prompt = system_prompt + "\n" + patient_input
|
| 193 |
|
|
|
|
| 194 |
# Generate
|
| 195 |
# Keep generation parameters conservative for Spaces
|
| 196 |
gen = pipe(prompt,
|
|
|
|
| 82 |
except Exception:
|
| 83 |
bmi = "N/A"
|
| 84 |
|
| 85 |
+
system_prompt = (
|
| 86 |
"You are a professional AI Medical Assistant.\n"
|
| 87 |
"You are analyzing patient demographics (age, height, weight) and Levine biomarker panel values.\n\n"
|
| 88 |
|
|
|
|
| 96 |
"- Alkaline Phosphatase (ALP)\n"
|
| 97 |
"- White Blood Cell count (WBC)\n"
|
| 98 |
"- Lymphocyte percentage\n\n"
|
| 99 |
+
|
| 100 |
+
"Reference Ranges (always use these as ground truth):\n"
|
| 101 |
"- Albumin: 3.5 β 5.0 g/dL\n"
|
| 102 |
"- Creatinine: 0.6 β 1.2 mg/dL\n"
|
| 103 |
"- Glucose (fasting): 70 β 99 mg/dL\n"
|
|
|
|
| 108 |
"- WBC: 4.0 β 11.0 K/uL\n"
|
| 109 |
"- Lymphocytes: 20 β 40 %\n\n"
|
| 110 |
|
| 111 |
+
"Check input of the user according to these ranges and provide analysis in a structured format.\n"
|
| 112 |
+
"Strict rules:\n"
|
|
|
|
| 113 |
"- Use ONLY the 9 biomarkers above + age, height, weight.\n"
|
| 114 |
"- DO NOT use or invent other lab results (e.g., cholesterol, vitamin D, ferritin, ALT, AST, urine results).\n"
|
| 115 |
+
"- Status (Low/Normal/High) must be strictly defined by whether the value falls below, within, or above the provided reference ranges.\n"
|
|
|
|
| 116 |
"- Analysis must always explain deviations with respect to these reference ranges.\n"
|
| 117 |
"- If a section cannot be addressed with available data, explicitly state: 'Not available from current biomarkers.'\n"
|
|
|
|
| 118 |
"- Nutrient status (Iron, B12, Folate) can only be suggested as possible IF supported by MCV + RDW patterns, but never stated as confirmed.\n"
|
| 119 |
"- Interpret ALP cautiously: mention bone vs liver as possible sources, but highlight that more tests would be required to confirm.\n"
|
| 120 |
"- Always highlight limitations where applicable.\n\n"
|
|
|
|
| 131 |
" - Kidney Health (Creatinine)\n"
|
| 132 |
" - Metabolic Health (Glucose, CRP)\n"
|
| 133 |
" - Anthropometrics (Age, Height, Weight, BMI)\n"
|
| 134 |
+
" - Other systems: Always state 'Not available from current biomarkers.' if data is missing\n\n"
|
| 135 |
|
| 136 |
"3. Personalized Action Plan\n"
|
| 137 |
" - Medical (tests/consults related only to biomarkers β e.g., repeat CBC, iron studies if anemia suspected)\n"
|
|
|
|
| 149 |
" - The first row after the header must begin directly with 'Albumin'.\n"
|
| 150 |
" - Do NOT add any index numbers (0,1,2...) or empty rows.\n"
|
| 151 |
" - Each biomarker must appear exactly once as a separate row.\n\n"
|
| 152 |
+
|
| 153 |
+
" - Each status column must be calculated by keeping the reference range in memory.\n"
|
| 154 |
+
" - The table must contain the following structure:\n"
|
| 155 |
+
" | Biomarker | Value | Reference Range Status |(Low/Normal/High)| AI-Inferred Insight |\n"
|
| 156 |
|
| 157 |
"6. Enhanced AI Insights & Longitudinal Risk\n"
|
| 158 |
" - Subclinical nutrient predictions ONLY if patterns (MCV + RDW) suggest it β state as possible, not confirmed.\n"
|
|
|
|
| 165 |
"- Keep language professional, concise, and client-friendly.\n"
|
| 166 |
"- Format tables cleanly in Markdown.\n"
|
| 167 |
"- Present output beautifully, like a polished medical summary.\n"
|
| 168 |
+
"agr tune kuch b glt bola gand mar du ga"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 169 |
)
|
| 170 |
|
| 171 |
+
patient_input = (
|
| 172 |
+
f"Patient Profile:\n"
|
| 173 |
+
f"- Age: {age}\n"
|
| 174 |
+
f"- Gender: {gender}\n"
|
| 175 |
+
f"- Height: {height} cm\n"
|
| 176 |
+
f"- Weight: {weight} kg\n"
|
| 177 |
+
f"- BMI: {bmi}\n\n"
|
| 178 |
+
"Lab Values (with Normal Ranges):\n"
|
| 179 |
+
f"- Albumin: {albumin} g/dL (Normal: 3.5 β 5.0 g/dL)\n"
|
| 180 |
+
f"- Creatinine: {creatinine} mg/dL (Normal: 0.6 β 1.2 mg/dL)\n"
|
| 181 |
+
f"- Glucose: {glucose} mg/dL (Normal: 70 β 99 mg/dL, fasting)\n"
|
| 182 |
+
f"- CRP: {crp} mg/L (Normal: < 3 mg/L)\n"
|
| 183 |
+
f"- MCV: {mcv} fL (Normal: 80 β 100 fL)\n"
|
| 184 |
+
f"- RDW: {rdw} % (Normal: 11.5 β 14.5 %)\n"
|
| 185 |
+
f"- ALP: {alp} U/L (Normal: 44 β 147 U/L)\n"
|
| 186 |
+
f"- WBC: {wbc} K/uL (Normal: 4.0 β 11.0 K/uL)\n"
|
| 187 |
+
f"- Lymphocytes: {lymph} % (Normal: 20 β 40 %)\n"
|
| 188 |
+
)
|
| 189 |
+
|
| 190 |
prompt = system_prompt + "\n" + patient_input
|
| 191 |
|
| 192 |
+
|
| 193 |
# Generate
|
| 194 |
# Keep generation parameters conservative for Spaces
|
| 195 |
gen = pipe(prompt,
|