JairoCesar commited on
Commit
5fb2061
verified
1 Parent(s): 38a3f3a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +82 -53
app.py CHANGED
@@ -53,7 +53,6 @@ def load_data():
53
  return None, None
54
  alimentos_data, foodb_index = load_data()
55
  COMPOUND_SYNONYM_MAP = {
56
- # --- Macronutrientes y Componentes Principales ---
57
  "gluten": ["gluten", "gliadin"],
58
  "case铆na": ["casein", "casomorphin"],
59
  "lactosa": ["lactose"],
@@ -89,8 +88,6 @@ COMPOUND_SYNONYM_MAP = {
89
  "micotoxinas": ["mycotoxin", "aflatoxin", "ochratoxin", "fumonisin", "zearalenone"],
90
  "aflatoxinas": ["aflatoxin"],
91
  "ocratoxinas": ["ochratoxin"],
92
-
93
- # --- Metales Pesados y Contaminantes Ambientales ---
94
  "metales pesados": ["heavy metal", "mercury", "lead", "cadmium", "arsenic"],
95
  "mercurio": ["mercury", "methylmercury"],
96
  "plomo": ["lead"],
@@ -98,60 +95,48 @@ COMPOUND_SYNONYM_MAP = {
98
  "ars茅nico": ["arsenic"],
99
  "bisfenol a": ["bisphenol a", "bpa"],
100
  "pesticidas": ["pesticide", "organophosphate", "glyphosate"],
101
-
102
- # --- Alcaloides y Toxinas Vegetales ---
103
  "alcaloides": ["alkaloid", "solanine", "capsaicin", "caffeine"],
104
  "solanina": ["solanine", "chaconine"],
105
  "capsaicina": ["capsaicin"],
106
  "cianuro": ["cyanide", "cyanogenic glycoside", "amygdalin"],
107
  "atropina": ["atropine"],
108
  "estricnina": ["strychnine"],
109
-
110
- # --- Compuestos Generados por Procesamiento T茅rmico ---
111
  "acrilamida": ["acrylamide"],
112
  "aminas heteroc铆clicas": ["heterocyclic amine", "hca"],
113
  "hidrocarburos arom谩ticos polic铆clicos": ["polycyclic aromatic hydrocarbon", "pah"],
114
-
115
- # --- Otros Compuestos Espec铆ficos ---
116
- "caramboxina": ["caramboxin"], # Toxina de la carambola
117
  "谩cido f铆tico": ["phytic acid", "phytate"],
118
  "谩cido er煤cico": ["erucic acid"]
119
  }
120
  KNOWN_TRIGGERS_MAP = {
121
- # --- Aminas Vasoactivas y Bi贸genas ---
122
  "Histamine": ["dolor de cabeza", "migra帽a", "inflamaci贸n", "congesti贸n nasal", "picaz贸n", "erupci贸n", "ansiedad", "diarrea"],
123
  "Tyramine": ["dolor de cabeza", "migra帽a"],
124
  "Phenylethylamine": ["dolor de cabeza", "migra帽a"],
125
  "Cadaverine": ["inflamaci贸n", "dolor de cabeza"],
126
  "Putrescine": ["inflamaci贸n", "dolor de cabeza"],
127
- # --- Compuestos de Gluten y L谩cteos ---
128
  "Gluten": ["niebla mental", "dolor abdominal", "diarrea", "inflamaci贸n", "dolor articular", "ataxia", "neuropat铆a perif茅rica"],
129
  "Gliadin": ["niebla mental", "dolor abdominal", "diarrea", "inflamaci贸n"], # Componente principal del Gluten
130
  "Casein": ["niebla mental", "inflamaci贸n", "acn茅", "congesti贸n nasal", "estre帽imiento"],
131
  "Lactose": ["hinchaz贸n", "gases", "diarrea", "dolor abdominal"],
132
- # --- Antinutrientes y Compuestos de Defensa Vegetal ---
133
  "Oxalates": ["dolor articular", "dolor muscular", "c谩lculos renales"],
134
  "Lectins": ["inflamaci贸n", "dolor articular", "hinchaz贸n", "dolor abdominal", "erupci贸n"],
135
  "Phytic acid": ["hinchaz贸n", "gases", "malestar general"], # Por malabsorci贸n de minerales
136
  "Saponins": ["dolor abdominal", "hinchaz贸n"],
137
- "Goitrogens": ["fatiga", "niebla mental"], # Por interferencia tiroidea
138
  "Solanine": ["dolor articular", "inflamaci贸n", "dolor muscular"],
139
  "Avenin": ["inflamaci贸n", "dolor abdominal"], # En avena, similar al gluten
140
  "Quercetin": ["dolor de cabeza", "migra帽a"], # Espec铆ficamente en el contexto del vino
141
- # --- FODMAPs (Oligosac谩ridos, Disac谩ridos, Monosac谩ridos y Polioles Fermentables) ---
142
  "Fructans": ["hinchaz贸n", "gases", "dolor abdominal", "diarrea", "estre帽imiento"],
143
  "GOS (Galactooligosaccharides)": ["hinchaz贸n", "gases", "dolor abdominal"],
144
  "Fructose": ["diarrea", "hinchaz贸n", "gases", "dolor abdominal"],
145
  "Polyols": ["diarrea", "hinchaz贸n", "gases"],
146
  "Sorbitol": ["diarrea", "hinchaz贸n", "gases"],
147
  "Mannitol": ["diarrea", "hinchaz贸n", "gases"],
148
- # --- Estimulantes, Alcaloides y Compuestos del Sistema Nervioso ---
149
  "Caffeine": ["ansiedad", "dolor de cabeza", "insomnio", "palpitaciones", "acidez"],
150
  "Theobromine": ["ansiedad", "dolor de cabeza", "insomnio"],
151
  "Capsaicin": ["dolor", "acidez", "ardor"],
152
  "Alcohol": ["dolor de cabeza", "niebla mental", "inflamaci贸n", "fatiga", "n谩useas"],
153
  "Acetaldehyde": ["dolor de cabeza", "n谩useas", "enrojecimiento facial"],
154
- # --- Aditivos Alimentarios y Compuestos de Procesamiento ---
155
  "Glutamate (MSG)": ["dolor de cabeza", "n谩useas", "debilidad muscular", "palpitaciones"],
156
  "Sulfites": ["dolor de cabeza", "sibilancias", "erupci贸n", "congesti贸n nasal"],
157
  "Nitrites": ["dolor de cabeza", "mareo/v茅rtigo"],
@@ -162,7 +147,6 @@ KNOWN_TRIGGERS_MAP = {
162
  "Artificial colorings": ["erupci贸n", "hiperactividad"], # Ej. Tartrazine
163
  "Benzoates": ["erupci贸n", "asma", "hiperactividad"],
164
  "Acrylamide": ["neuropat铆a perif茅rica", "debilidad muscular"], # Formado en frituras
165
- # --- Toxinas Naturales y Compuestos Espec铆ficos ---
166
  "Aflatoxins": ["fatiga", "n谩useas", "dolor abdominal"], # De mohos en frutos secos/granos
167
  "Cyanogenic glycosides": ["mareo/v茅rtigo", "dolor de cabeza", "n谩useas", "v贸mito"], # En almendras amargas, yuca
168
  "Arsenic": ["fatiga", "n谩useas", "neuropat铆a perif茅rica"],
@@ -381,7 +365,6 @@ MASTER_SYMPTOM_MAP = {
381
  }
382
 
383
  FOOD_TO_COMPOUND_MAP = {
384
- # --- CEREALES, GRANOS Y DERIVADOS ---
385
  "pan": ["gluten", "fodmaps", "fructanos", "levadura", "aminas", "fitatos"],
386
  "trigo": ["gluten", "fodmaps", "fructanos", "lectinas", "aminas", "fitatos"],
387
  "harina": ["gluten", "fodmaps", "fructanos"],
@@ -396,15 +379,11 @@ FOOD_TO_COMPOUND_MAP = {
396
  "arroz": ["lectinas", "ars茅nico", "fitatos"],
397
  "arroz frito": ["lectinas", "gluten", "soja", "histamina", "fodmaps", "al茅rgenos", "glutamato"],
398
  "quinoa": ["saponinas", "oxalatos", "fitatos"],
399
-
400
- # --- L脕CTEOS Y DERIVADOS ---
401
  "leche": ["l谩cteos", "case铆na", "lactosa", "fodmaps"],
402
  "queso": ["l谩cteos", "case铆na", "lactosa", "histamina", "tiramina", "aminas"],
403
  "yogur": ["l谩cteos", "case铆na", "lactosa", "histamina"],
404
  "mantequilla": ["l谩cteos", "case铆na", "lactosa"],
405
  "helado": ["l谩cteos", "az煤car", "lactosa", "fodmaps"],
406
-
407
- # --- VEGETALES ---
408
  "tomate": ["histamina", "solaninas", "lectinas", "salicilatos", "aminas"],
409
  "pimiento": ["solaninas", "lectinas", "capsaicina", "salicilatos"],
410
  "berenjena": ["solaninas", "lectinas", "histamina", "salicilatos"],
@@ -428,8 +407,6 @@ FOOD_TO_COMPOUND_MAP = {
428
  "champi帽贸n": ["fodmaps", "polioles"],
429
  "pepino": ["lectinas", "salicilatos"],
430
  "zanahoria": ["salicilatos"],
431
-
432
- # --- FRUTAS ---
433
  "manzana": ["fodmaps", "fructosa", "polioles", "salicilatos", "quercetina"],
434
  "pera": ["fodmaps", "fructosa", "polioles"],
435
  "mango": ["fodmaps", "fructosa"],
@@ -447,9 +424,7 @@ FOOD_TO_COMPOUND_MAP = {
447
  "uvas": ["salicilatos", "fructosa", "quercetina"],
448
  "ar谩ndano": ["salicilatos"],
449
  "frambuesa": ["salicilatos"],
450
-
451
- # --- PROTE脥NAS (CARNES, PESCADOS, HUEVOS) ---
452
- "carne": ["purinas", "histamina", "alfa-gal", "hierro hemo"], # T脡RMINO GENERAL A脩ADIDO
453
  "carne roja": ["purinas", "alfa-gal", "hierro hemo", "histamina"],
454
  "carne procesada": ["nitritos", "histamina", "tiramina", "aminas", "fosfatos"],
455
  "embutidos": ["nitritos", "histamina", "tiramina", "aminas", "fosfatos"],
@@ -460,16 +435,12 @@ FOOD_TO_COMPOUND_MAP = {
460
  "at煤n": ["histamina", "mercurio"],
461
  "salm贸n": ["histamina", "purinas"],
462
  "mariscos": ["al茅rgenos", "purinas", "yodo", "n铆quel"],
463
-
464
- # --- FRUTOS SECOS, SEMILLAS Y DULCES ---
465
  "frutos secos": ["n铆quel", "fitatos", "oxalatos", "salicilatos", "arginina", "al茅rgenos"],
466
  "nueces": ["arginina", "salicilatos", "n铆quel", "oxalatos", "fitatos"],
467
  "almendras": ["salicilatos", "arginina", "oxalatos", "fitatos", "cianuro"],
468
  "man铆": ["al茅rgenos", "arginina", "lectinas", "aflatoxinas"],
469
  "cacahuetes": ["al茅rgenos", "arginina", "lectinas", "aflatoxinas"],
470
  "chocolate": ["cafe铆na", "aminas", "tiramina", "n铆quel", "arginina", "oxalatos", "teobromina"],
471
-
472
- # --- BEBIDAS, CONDIMENTOS Y PLATOS COMPLEJOS ---
473
  "caf茅": ["cafe铆na", "谩cidos", "histamina", "salicilatos", "aminas"],
474
  "t茅": ["cafe铆na", "taninos", "oxalatos", "salicilatos"],
475
  "vino": ["histamina", "tiramina", "sulfitos", "taninos", "alcohol", "quercetina"],
@@ -486,8 +457,6 @@ FOOD_TO_COMPOUND_MAP = {
486
  "cholado": ["az煤car", "fructosa", "l谩cteos", "lactosa", "histamina", "salicilatos", "colorantes"]
487
  }
488
  SYMPTOM_KEYWORD_MAP = {
489
-
490
- # --- SISTEMA GASTROINTESTINAL (DIGESTIVO) ---
491
  "dolor abdominal": ["dolor de est贸mago", "dolor de panza", "dolor abdominal", "retortijones", "c贸licos", "calambres abdominales"],
492
  "hinchaz贸n": ["hinchaz贸n abdominal", "vientre hinchado", "distensi贸n abdominal", "hinchaz贸n", "distensi贸n", "estomago se infla", "inflamado", "inflado", "infla", "hincha"],
493
  "gases": ["exceso de gases", "muchos gases", "gases", "flatulencia", "ventosidades"],
@@ -498,8 +467,6 @@ SYMPTOM_KEYWORD_MAP = {
498
  "v贸mitos": ["v贸mitos recurrentes", "v贸mitos", "vomitar"],
499
  "disfagia": ["dificultad para tragar", "problemas al tragar", "se atora la comida", "disfagia"],
500
  "p茅rdida de apetito": ["falta de apetito", "no tengo hambre", "p茅rdida de apetito"],
501
-
502
- # --- SISTEMA NEUROL脫GICO ---
503
  "dolor de cabeza": ["dolores de cabeza cr贸nicos", "dolor de cabeza cr贸nico", "dolores de cabeza", "dolor de cabeza", "cefalea", "migra帽a"],
504
  "niebla mental": ["niebla mental severa", "dificultad para concentrarse", "falta de claridad mental", "niebla mental", "confusi贸n mental", "mente nublada", "deterioro cognitivo"],
505
  "ataxia": [
@@ -514,33 +481,23 @@ SYMPTOM_KEYWORD_MAP = {
514
  ],
515
  "mareo/v茅rtigo": ["sensaci贸n de que todo da vueltas", "v茅rtigo", "mareos"],
516
  "convulsiones": ["ataques epil茅pticos", "convulsiones", "ataques", "epilepsia"],
517
-
518
- # --- SISTEMA DERMATOL脫GICO (PIEL) ---
519
  "erupci贸n": ["dermatitis herpetiforme", "erupci贸n con ampollas", "erupci贸n cut谩nea", "erupci贸n", "ronchas", "urticaria", "sarpullido", "granitos", "eczema"],
520
  "picaz贸n": ["picaz贸n intensa", "picor en la piel", "comez贸n", "picor", "prurito"],
521
  "piel seca": ["piel seca y escamosa", "piel muy seca", "piel reseca", "ictiosis"],
522
  "acn茅": ["acn茅 qu铆stico", "brote de acn茅", "espinillas", "granos", "acn茅"],
523
-
524
- # --- SISTEMA MUSCULOESQUEL脡TICO ---
525
  "dolor articular": ["dolor en las articulaciones", "articulaciones doloridas", "dolores articulares", "artralgia"],
526
  "dolor muscular": ["dolor muscular generalizado", "dolores musculares", "mialgia"],
527
  "debilidad muscular": ["falta de fuerza", "debilidad en los m煤sculos", "p茅rdida de fuerza"],
528
  "calambres": ["calambres musculares", "espasmos musculares", "calambres"],
529
-
530
- # --- S脥NTOMAS GENERALES Y CONSTITUCIONALES ---
531
  "fatiga": ["fatiga cr贸nica", "cansancio extremo", "agotamiento cr贸nico", "falta de energ铆a", "fatiga", "cansancio", "agotamiento"],
532
  "p茅rdida de peso": ["p茅rdida de peso inexplicable", "adelgazamiento involuntario", "p茅rdida de peso"],
533
  "fiebre": ["fiebre recurrente", "fiebre baja", "temperatura alta", "fiebre"],
534
  "malestar general": ["sentirse mal", "cuerpo cortado", "malestar"],
535
  "inflamaci贸n": ["inflamaci贸n sist茅mica", "inflamaci贸n general", "inflamaci贸n"],
536
-
537
- # --- SISTEMA RESPIRATORIO Y AL脡RGICO (ORL) ---
538
  "dificultad para respirar": ["falta de aire", "no poder respirar bien", "disnea"],
539
  "congesti贸n nasal": ["nariz tapada", "congesti贸n nasal", "rinitis"],
540
  "tos": ["tos cr贸nica", "tos seca", "tos persistente", "tos"],
541
  "sibilancias": ["pitido en el pecho", "silbidos al respirar", "sibilancias"],
542
-
543
- # --- SISTEMA PSICOL脫GICO / ESTADO DE 脕NIMO ---
544
  "ansiedad": ["ataques de p谩nico", "nerviosismo", "inquietud", "ansiedad"],
545
  "irritabilidad": ["cambios de humor", "mal humor", "estar irritable", "irritabilidad"],
546
  "depresi贸n": ["tristeza persistente", "des谩nimo", "depresi贸n"]
@@ -564,7 +521,6 @@ FOOD_NAME_TO_FOODB_KEY = {
564
  }
565
 
566
  INTEGRATED_NEURO_FOOD_MAP = {
567
- # --- Componentes Principales y Sensibilidades Comunes ---
568
  "gluten": {
569
  "efecto_neuropsicologico": "En individuos con sensibilidad, puede desencadenar neuroinflamaci贸n, manifest谩ndose como niebla mental, depresi贸n, ansiedad, migra帽as y ataxia. La predisposici贸n es fuertemente gen茅tica (HLA-DQ2/DQ8).",
570
  "fuentes_comunes": ["pan", "trigo", "pasta", "pizza", "cebada", "centeno"]
@@ -600,7 +556,6 @@ INTEGRATED_NEURO_FOOD_MAP = {
600
  "fuentes_comunes": ["t茅 verde", "t茅 negro"]
601
  },
602
 
603
- # --- Fitoqu铆micos y Nutrientes Neuroprotectores ---
604
  "omega-3 (DHA/EPA)": {
605
  "efecto_neuropsicologico": "Potente agente anti-neuroinflamatorio. El DHA es un componente estructural cr铆tico de las membranas neuronales; el EPA combate la inflamaci贸n. Esencial para el desarrollo y la funci贸n cerebral.",
606
  "fuentes_comunes": ["pescado graso (salm贸n, sardinas)", "nueces (como ALA)"]
@@ -610,7 +565,83 @@ INTEGRATED_NEURO_FOOD_MAP = {
610
  "fuentes_comunes": ["ar谩ndanos", "uvas", "t茅 verde", "chocolate negro", "aceite de oliva"]
611
  },
612
 
613
- # --- Compuestos Bioactivos y Sensibilidades ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
614
  "cafe铆na": {
615
  "efecto_neuropsicologico": "Antagonista de los receptores de adenosina, aumenta la vigilia y la dopamina. La velocidad de su metabolismo (gen CYP1A2) determina si produce alerta enfocada o ansiedad, p谩nico e insomnio.",
616
  "fuentes_comunes": ["caf茅", "t茅", "chocolate", "bebidas energ茅ticas"]
@@ -705,7 +736,7 @@ def generate_word_report(report_text):
705
  # Guarda el documento modificado en un buffer de memoria
706
  doc_io = BytesIO()
707
  doc.save(doc_io)
708
- doc_io.seek(0) # Rebobina el buffer al principio para que st.download_button pueda leerlo
709
 
710
  return doc_io
711
 
@@ -749,7 +780,7 @@ def extract_entities_with_gemini(query):
749
  if json_text_match:
750
  json_text = json_text_match.group(1)
751
  else:
752
- # Fallback para respuestas sin markdown
753
  json_text = re.search(r'\{.*\}', response.text, re.DOTALL).group(0)
754
 
755
  extracted_data = json.loads(json_text)
@@ -833,8 +864,6 @@ def find_best_matches_hybrid(entities, data):
833
 
834
  db_text = db_food_text + " " + db_symptoms_text
835
  db_keywords = set(re.findall(r'\b\w+\b', sanitize_text(db_text)))
836
-
837
- # --- 3. PUNTUACI脫N POR INTERSECCI脫N ---
838
  intersection = user_keywords.intersection(db_keywords)
839
 
840
  # Solo procesar si hay al menos una palabra en com煤n
 
53
  return None, None
54
  alimentos_data, foodb_index = load_data()
55
  COMPOUND_SYNONYM_MAP = {
 
56
  "gluten": ["gluten", "gliadin"],
57
  "case铆na": ["casein", "casomorphin"],
58
  "lactosa": ["lactose"],
 
88
  "micotoxinas": ["mycotoxin", "aflatoxin", "ochratoxin", "fumonisin", "zearalenone"],
89
  "aflatoxinas": ["aflatoxin"],
90
  "ocratoxinas": ["ochratoxin"],
 
 
91
  "metales pesados": ["heavy metal", "mercury", "lead", "cadmium", "arsenic"],
92
  "mercurio": ["mercury", "methylmercury"],
93
  "plomo": ["lead"],
 
95
  "ars茅nico": ["arsenic"],
96
  "bisfenol a": ["bisphenol a", "bpa"],
97
  "pesticidas": ["pesticide", "organophosphate", "glyphosate"],
 
 
98
  "alcaloides": ["alkaloid", "solanine", "capsaicin", "caffeine"],
99
  "solanina": ["solanine", "chaconine"],
100
  "capsaicina": ["capsaicin"],
101
  "cianuro": ["cyanide", "cyanogenic glycoside", "amygdalin"],
102
  "atropina": ["atropine"],
103
  "estricnina": ["strychnine"],
 
 
104
  "acrilamida": ["acrylamide"],
105
  "aminas heteroc铆clicas": ["heterocyclic amine", "hca"],
106
  "hidrocarburos arom谩ticos polic铆clicos": ["polycyclic aromatic hydrocarbon", "pah"],
107
+ "caramboxina": ["caramboxin"],
 
 
108
  "谩cido f铆tico": ["phytic acid", "phytate"],
109
  "谩cido er煤cico": ["erucic acid"]
110
  }
111
  KNOWN_TRIGGERS_MAP = {
 
112
  "Histamine": ["dolor de cabeza", "migra帽a", "inflamaci贸n", "congesti贸n nasal", "picaz贸n", "erupci贸n", "ansiedad", "diarrea"],
113
  "Tyramine": ["dolor de cabeza", "migra帽a"],
114
  "Phenylethylamine": ["dolor de cabeza", "migra帽a"],
115
  "Cadaverine": ["inflamaci贸n", "dolor de cabeza"],
116
  "Putrescine": ["inflamaci贸n", "dolor de cabeza"],
 
117
  "Gluten": ["niebla mental", "dolor abdominal", "diarrea", "inflamaci贸n", "dolor articular", "ataxia", "neuropat铆a perif茅rica"],
118
  "Gliadin": ["niebla mental", "dolor abdominal", "diarrea", "inflamaci贸n"], # Componente principal del Gluten
119
  "Casein": ["niebla mental", "inflamaci贸n", "acn茅", "congesti贸n nasal", "estre帽imiento"],
120
  "Lactose": ["hinchaz贸n", "gases", "diarrea", "dolor abdominal"],
 
121
  "Oxalates": ["dolor articular", "dolor muscular", "c谩lculos renales"],
122
  "Lectins": ["inflamaci贸n", "dolor articular", "hinchaz贸n", "dolor abdominal", "erupci贸n"],
123
  "Phytic acid": ["hinchaz贸n", "gases", "malestar general"], # Por malabsorci贸n de minerales
124
  "Saponins": ["dolor abdominal", "hinchaz贸n"],
125
+ "Goitrogens": ["fatiga", "niebla mental"],
126
  "Solanine": ["dolor articular", "inflamaci贸n", "dolor muscular"],
127
  "Avenin": ["inflamaci贸n", "dolor abdominal"], # En avena, similar al gluten
128
  "Quercetin": ["dolor de cabeza", "migra帽a"], # Espec铆ficamente en el contexto del vino
 
129
  "Fructans": ["hinchaz贸n", "gases", "dolor abdominal", "diarrea", "estre帽imiento"],
130
  "GOS (Galactooligosaccharides)": ["hinchaz贸n", "gases", "dolor abdominal"],
131
  "Fructose": ["diarrea", "hinchaz贸n", "gases", "dolor abdominal"],
132
  "Polyols": ["diarrea", "hinchaz贸n", "gases"],
133
  "Sorbitol": ["diarrea", "hinchaz贸n", "gases"],
134
  "Mannitol": ["diarrea", "hinchaz贸n", "gases"],
 
135
  "Caffeine": ["ansiedad", "dolor de cabeza", "insomnio", "palpitaciones", "acidez"],
136
  "Theobromine": ["ansiedad", "dolor de cabeza", "insomnio"],
137
  "Capsaicin": ["dolor", "acidez", "ardor"],
138
  "Alcohol": ["dolor de cabeza", "niebla mental", "inflamaci贸n", "fatiga", "n谩useas"],
139
  "Acetaldehyde": ["dolor de cabeza", "n谩useas", "enrojecimiento facial"],
 
140
  "Glutamate (MSG)": ["dolor de cabeza", "n谩useas", "debilidad muscular", "palpitaciones"],
141
  "Sulfites": ["dolor de cabeza", "sibilancias", "erupci贸n", "congesti贸n nasal"],
142
  "Nitrites": ["dolor de cabeza", "mareo/v茅rtigo"],
 
147
  "Artificial colorings": ["erupci贸n", "hiperactividad"], # Ej. Tartrazine
148
  "Benzoates": ["erupci贸n", "asma", "hiperactividad"],
149
  "Acrylamide": ["neuropat铆a perif茅rica", "debilidad muscular"], # Formado en frituras
 
150
  "Aflatoxins": ["fatiga", "n谩useas", "dolor abdominal"], # De mohos en frutos secos/granos
151
  "Cyanogenic glycosides": ["mareo/v茅rtigo", "dolor de cabeza", "n谩useas", "v贸mito"], # En almendras amargas, yuca
152
  "Arsenic": ["fatiga", "n谩useas", "neuropat铆a perif茅rica"],
 
365
  }
366
 
367
  FOOD_TO_COMPOUND_MAP = {
 
368
  "pan": ["gluten", "fodmaps", "fructanos", "levadura", "aminas", "fitatos"],
369
  "trigo": ["gluten", "fodmaps", "fructanos", "lectinas", "aminas", "fitatos"],
370
  "harina": ["gluten", "fodmaps", "fructanos"],
 
379
  "arroz": ["lectinas", "ars茅nico", "fitatos"],
380
  "arroz frito": ["lectinas", "gluten", "soja", "histamina", "fodmaps", "al茅rgenos", "glutamato"],
381
  "quinoa": ["saponinas", "oxalatos", "fitatos"],
 
 
382
  "leche": ["l谩cteos", "case铆na", "lactosa", "fodmaps"],
383
  "queso": ["l谩cteos", "case铆na", "lactosa", "histamina", "tiramina", "aminas"],
384
  "yogur": ["l谩cteos", "case铆na", "lactosa", "histamina"],
385
  "mantequilla": ["l谩cteos", "case铆na", "lactosa"],
386
  "helado": ["l谩cteos", "az煤car", "lactosa", "fodmaps"],
 
 
387
  "tomate": ["histamina", "solaninas", "lectinas", "salicilatos", "aminas"],
388
  "pimiento": ["solaninas", "lectinas", "capsaicina", "salicilatos"],
389
  "berenjena": ["solaninas", "lectinas", "histamina", "salicilatos"],
 
407
  "champi帽贸n": ["fodmaps", "polioles"],
408
  "pepino": ["lectinas", "salicilatos"],
409
  "zanahoria": ["salicilatos"],
 
 
410
  "manzana": ["fodmaps", "fructosa", "polioles", "salicilatos", "quercetina"],
411
  "pera": ["fodmaps", "fructosa", "polioles"],
412
  "mango": ["fodmaps", "fructosa"],
 
424
  "uvas": ["salicilatos", "fructosa", "quercetina"],
425
  "ar谩ndano": ["salicilatos"],
426
  "frambuesa": ["salicilatos"],
427
+ "carne": ["purinas", "histamina", "alfa-gal", "hierro hemo"],
 
 
428
  "carne roja": ["purinas", "alfa-gal", "hierro hemo", "histamina"],
429
  "carne procesada": ["nitritos", "histamina", "tiramina", "aminas", "fosfatos"],
430
  "embutidos": ["nitritos", "histamina", "tiramina", "aminas", "fosfatos"],
 
435
  "at煤n": ["histamina", "mercurio"],
436
  "salm贸n": ["histamina", "purinas"],
437
  "mariscos": ["al茅rgenos", "purinas", "yodo", "n铆quel"],
 
 
438
  "frutos secos": ["n铆quel", "fitatos", "oxalatos", "salicilatos", "arginina", "al茅rgenos"],
439
  "nueces": ["arginina", "salicilatos", "n铆quel", "oxalatos", "fitatos"],
440
  "almendras": ["salicilatos", "arginina", "oxalatos", "fitatos", "cianuro"],
441
  "man铆": ["al茅rgenos", "arginina", "lectinas", "aflatoxinas"],
442
  "cacahuetes": ["al茅rgenos", "arginina", "lectinas", "aflatoxinas"],
443
  "chocolate": ["cafe铆na", "aminas", "tiramina", "n铆quel", "arginina", "oxalatos", "teobromina"],
 
 
444
  "caf茅": ["cafe铆na", "谩cidos", "histamina", "salicilatos", "aminas"],
445
  "t茅": ["cafe铆na", "taninos", "oxalatos", "salicilatos"],
446
  "vino": ["histamina", "tiramina", "sulfitos", "taninos", "alcohol", "quercetina"],
 
457
  "cholado": ["az煤car", "fructosa", "l谩cteos", "lactosa", "histamina", "salicilatos", "colorantes"]
458
  }
459
  SYMPTOM_KEYWORD_MAP = {
 
 
460
  "dolor abdominal": ["dolor de est贸mago", "dolor de panza", "dolor abdominal", "retortijones", "c贸licos", "calambres abdominales"],
461
  "hinchaz贸n": ["hinchaz贸n abdominal", "vientre hinchado", "distensi贸n abdominal", "hinchaz贸n", "distensi贸n", "estomago se infla", "inflamado", "inflado", "infla", "hincha"],
462
  "gases": ["exceso de gases", "muchos gases", "gases", "flatulencia", "ventosidades"],
 
467
  "v贸mitos": ["v贸mitos recurrentes", "v贸mitos", "vomitar"],
468
  "disfagia": ["dificultad para tragar", "problemas al tragar", "se atora la comida", "disfagia"],
469
  "p茅rdida de apetito": ["falta de apetito", "no tengo hambre", "p茅rdida de apetito"],
 
 
470
  "dolor de cabeza": ["dolores de cabeza cr贸nicos", "dolor de cabeza cr贸nico", "dolores de cabeza", "dolor de cabeza", "cefalea", "migra帽a"],
471
  "niebla mental": ["niebla mental severa", "dificultad para concentrarse", "falta de claridad mental", "niebla mental", "confusi贸n mental", "mente nublada", "deterioro cognitivo"],
472
  "ataxia": [
 
481
  ],
482
  "mareo/v茅rtigo": ["sensaci贸n de que todo da vueltas", "v茅rtigo", "mareos"],
483
  "convulsiones": ["ataques epil茅pticos", "convulsiones", "ataques", "epilepsia"],
 
 
484
  "erupci贸n": ["dermatitis herpetiforme", "erupci贸n con ampollas", "erupci贸n cut谩nea", "erupci贸n", "ronchas", "urticaria", "sarpullido", "granitos", "eczema"],
485
  "picaz贸n": ["picaz贸n intensa", "picor en la piel", "comez贸n", "picor", "prurito"],
486
  "piel seca": ["piel seca y escamosa", "piel muy seca", "piel reseca", "ictiosis"],
487
  "acn茅": ["acn茅 qu铆stico", "brote de acn茅", "espinillas", "granos", "acn茅"],
 
 
488
  "dolor articular": ["dolor en las articulaciones", "articulaciones doloridas", "dolores articulares", "artralgia"],
489
  "dolor muscular": ["dolor muscular generalizado", "dolores musculares", "mialgia"],
490
  "debilidad muscular": ["falta de fuerza", "debilidad en los m煤sculos", "p茅rdida de fuerza"],
491
  "calambres": ["calambres musculares", "espasmos musculares", "calambres"],
 
 
492
  "fatiga": ["fatiga cr贸nica", "cansancio extremo", "agotamiento cr贸nico", "falta de energ铆a", "fatiga", "cansancio", "agotamiento"],
493
  "p茅rdida de peso": ["p茅rdida de peso inexplicable", "adelgazamiento involuntario", "p茅rdida de peso"],
494
  "fiebre": ["fiebre recurrente", "fiebre baja", "temperatura alta", "fiebre"],
495
  "malestar general": ["sentirse mal", "cuerpo cortado", "malestar"],
496
  "inflamaci贸n": ["inflamaci贸n sist茅mica", "inflamaci贸n general", "inflamaci贸n"],
 
 
497
  "dificultad para respirar": ["falta de aire", "no poder respirar bien", "disnea"],
498
  "congesti贸n nasal": ["nariz tapada", "congesti贸n nasal", "rinitis"],
499
  "tos": ["tos cr贸nica", "tos seca", "tos persistente", "tos"],
500
  "sibilancias": ["pitido en el pecho", "silbidos al respirar", "sibilancias"],
 
 
501
  "ansiedad": ["ataques de p谩nico", "nerviosismo", "inquietud", "ansiedad"],
502
  "irritabilidad": ["cambios de humor", "mal humor", "estar irritable", "irritabilidad"],
503
  "depresi贸n": ["tristeza persistente", "des谩nimo", "depresi贸n"]
 
521
  }
522
 
523
  INTEGRATED_NEURO_FOOD_MAP = {
 
524
  "gluten": {
525
  "efecto_neuropsicologico": "En individuos con sensibilidad, puede desencadenar neuroinflamaci贸n, manifest谩ndose como niebla mental, depresi贸n, ansiedad, migra帽as y ataxia. La predisposici贸n es fuertemente gen茅tica (HLA-DQ2/DQ8).",
526
  "fuentes_comunes": ["pan", "trigo", "pasta", "pizza", "cebada", "centeno"]
 
556
  "fuentes_comunes": ["t茅 verde", "t茅 negro"]
557
  },
558
 
 
559
  "omega-3 (DHA/EPA)": {
560
  "efecto_neuropsicologico": "Potente agente anti-neuroinflamatorio. El DHA es un componente estructural cr铆tico de las membranas neuronales; el EPA combate la inflamaci贸n. Esencial para el desarrollo y la funci贸n cerebral.",
561
  "fuentes_comunes": ["pescado graso (salm贸n, sardinas)", "nueces (como ALA)"]
 
565
  "fuentes_comunes": ["ar谩ndanos", "uvas", "t茅 verde", "chocolate negro", "aceite de oliva"]
566
  },
567
 
568
+ "flavonoides c铆tricos": {
569
+ "efecto_neuropsicologico": "Modulan la plasticidad neuronal y reducen la neuroinflamaci贸n. En exceso o en combinaci贸n con f谩rmacos (como las estatinas o benzodiacepinas) pueden alterar el metabolismo cerebral de f谩rmacos y causar somnolencia o confusi贸n.",
570
+ "fuentes_comunes": ["naranja", "toronja", "lim贸n", "mandarina"]
571
+ },
572
+ "curcumina": {
573
+ "efecto_neuropsicologico": "Estimula el BDNF, mejora el estado de 谩nimo y protege frente al estr茅s oxidativo. En dosis altas puede causar insomnio o agitaci贸n en personas sensibles.",
574
+ "fuentes_comunes": ["c煤rcuma", "curry"]
575
+ },
576
+ "resveratrol": {
577
+ "efecto_neuropsicologico": "Antioxidante cerebral que mejora la memoria y la plasticidad sin谩ptica. En exceso puede generar somnolencia o hipotensi贸n ligera.",
578
+ "fuentes_comunes": ["uvas", "vino tinto", "ar谩ndanos"]
579
+ },
580
+ "quercetina": {
581
+ "efecto_neuropsicologico": "Antiinflamatorio neuronal. Puede potenciar efectos de la cafe铆na y causar inquietud o nerviosismo en dosis altas.",
582
+ "fuentes_comunes": ["manzana", "cebolla", "br贸coli", "t茅 verde"]
583
+ },
584
+ "antocianinas": {
585
+ "efecto_neuropsicologico": "Mejoran la comunicaci贸n neuronal y la memoria. Efecto neuroprotector frente al envejecimiento cognitivo.",
586
+ "fuentes_comunes": ["ar谩ndanos", "moras", "uvas negras", "cerezas"]
587
+ },
588
+ "capsaicina": {
589
+ "efecto_neuropsicologico": "Activa la liberaci贸n de endorfinas y dopamina. En exceso puede causar irritabilidad, insomnio o ansiedad.",
590
+ "fuentes_comunes": ["aj铆", "chile", "piment贸n picante"]
591
+ },
592
+ "ginsen贸sidos": {
593
+ "efecto_neuropsicologico": "Adapt贸genos que mejoran la atenci贸n, la energ铆a mental y la resistencia al estr茅s. En exceso pueden inducir insomnio y agitaci贸n.",
594
+ "fuentes_comunes": ["ginseng", "bebidas energ茅ticas naturales"]
595
+ },
596
+ "teobromina": {
597
+ "efecto_neuropsicologico": "Estimulante suave del sistema nervioso central, asociado al bienestar. En exceso puede causar nerviosismo y palpitaciones.",
598
+ "fuentes_comunes": ["chocolate negro", "cacao puro"]
599
+ },
600
+ "catequinas": {
601
+ "efecto_neuropsicologico": "Antioxidantes cerebrales que reducen el cortisol y la ansiedad. Su exceso puede causar temblores por la cafe铆na acompa帽ante.",
602
+ "fuentes_comunes": ["t茅 verde", "t茅 blanco"]
603
+ },
604
+ "saponinas": {
605
+ "efecto_neuropsicologico": "Modulan neurotransmisores del estado de 谩nimo y la memoria. En exceso pueden causar mareo o confusi贸n leve.",
606
+ "fuentes_comunes": ["quinua", "soja", "legumbres"]
607
+ },
608
+ "isoflavonas": {
609
+ "efecto_neuropsicologico": "Act煤an como moduladores de receptores estrog茅nicos cerebrales, influyendo en el 谩nimo y la memoria. En exceso pueden alterar el sue帽o.",
610
+ "fuentes_comunes": ["soja", "tofu", "tempeh"]
611
+ },
612
+ "beta-carbolinas": {
613
+ "efecto_neuropsicologico": "Compuestos con acci贸n sobre receptores GABA y serotonin茅rgicos. En exceso pueden causar ansiedad o sue帽os v铆vidos.",
614
+ "fuentes_comunes": ["banano maduro", "vino", "quesos curados"]
615
+ },
616
+ "metilxantinas": {
617
+ "efecto_neuropsicologico": "Estimulan el sistema nervioso central, mejoran la concentraci贸n y el estado de alerta. Su exceso causa ansiedad e insomnio.",
618
+ "fuentes_comunes": ["caf茅", "t茅", "chocolate", "bebidas energ茅ticas"]
619
+ },
620
+ "谩cido kavalactona": {
621
+ "efecto_neuropsicologico": "Ansiol铆tico natural que act煤a sobre receptores GABA y dopamina. Su uso excesivo puede causar sedaci贸n y alteraci贸n motora.",
622
+ "fuentes_comunes": ["ra铆z de kava", "infusiones calmantes"]
623
+ },
624
+ "L-dopa": {
625
+ "efecto_neuropsicologico": "Precursor directo de dopamina. Mejora la motivaci贸n y el enfoque, pero en exceso causa insomnio, ansiedad o movimientos involuntarios.",
626
+ "fuentes_comunes": ["mucuna pruriens", "haba", "soja"]
627
+ },
628
+ "nootr贸picos naturales (bacopasidas)": {
629
+ "efecto_neuropsicologico": "Mejoran la memoria y reducen el estr茅s oxidativo cerebral. Pueden causar mareo o fatiga al inicio del consumo.",
630
+ "fuentes_comunes": ["bacopa monnieri", "suplementos herbales"]
631
+ },
632
+ "miristicina": {
633
+ "efecto_neuropsicologico": "Psicoactiva en dosis altas; puede causar alucinaciones, confusi贸n o ansiedad. En dosis bajas puede ser euforizante leve.",
634
+ "fuentes_comunes": ["nuez moscada"]
635
+ },
636
+ "valerenato": {
637
+ "efecto_neuropsicologico": "Induce relajaci贸n e incluso somnolencia al potenciar la acci贸n del GABA. En exceso puede causar confusi贸n o lentitud mental.",
638
+ "fuentes_comunes": ["valeriana", "infusiones para dormir"]
639
+ },
640
+ "melatonina natural": {
641
+ "efecto_neuropsicologico": "Regula el ciclo sue帽o-vigilia. Su exceso puede causar somnolencia diurna y sue帽os intensos.",
642
+ "fuentes_comunes": ["cerezas", "nueces", "avena", "tomate"]
643
+ },
644
+
645
  "cafe铆na": {
646
  "efecto_neuropsicologico": "Antagonista de los receptores de adenosina, aumenta la vigilia y la dopamina. La velocidad de su metabolismo (gen CYP1A2) determina si produce alerta enfocada o ansiedad, p谩nico e insomnio.",
647
  "fuentes_comunes": ["caf茅", "t茅", "chocolate", "bebidas energ茅ticas"]
 
736
  # Guarda el documento modificado en un buffer de memoria
737
  doc_io = BytesIO()
738
  doc.save(doc_io)
739
+ doc_io.seek(0)
740
 
741
  return doc_io
742
 
 
780
  if json_text_match:
781
  json_text = json_text_match.group(1)
782
  else:
783
+
784
  json_text = re.search(r'\{.*\}', response.text, re.DOTALL).group(0)
785
 
786
  extracted_data = json.loads(json_text)
 
864
 
865
  db_text = db_food_text + " " + db_symptoms_text
866
  db_keywords = set(re.findall(r'\b\w+\b', sanitize_text(db_text)))
 
 
867
  intersection = user_keywords.intersection(db_keywords)
868
 
869
  # Solo procesar si hay al menos una palabra en com煤n