Spaces:
Sleeping
Sleeping
File size: 13,720 Bytes
7b945e6 78b9561 5db4e41 d600704 5dc4c33 d600704 bcdc3a3 7d708d8 bcdc3a3 7d708d8 bcdc3a3 7d708d8 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 bcdc3a3 7d708d8 bcdc3a3 d600704 bcdc3a3 d600704 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 bcdc3a3 d600704 bcdc3a3 d600704 bcdc3a3 d600704 bcdc3a3 5dc4c33 d600704 5dc4c33 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 d600704 5dc4c33 bcdc3a3 7d708d8 bcdc3a3 7d708d8 d600704 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 bcdc3a3 5dc4c33 d600704 5dc4c33 d600704 5dc4c33 d600704 bcdc3a3 7d708d8 5dc4c33 7d708d8 bcdc3a3 7d708d8 bcdc3a3 d600704 bcdc3a3 d600704 bcdc3a3 d600704 bcdc3a3 5dc4c33 bcdc3a3 d600704 bcdc3a3 5dc4c33 a75511c bcdc3a3 5dc4c33 bcdc3a3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 |
import gradio as gr
import cv2
import numpy as np
from PIL import Image
import io
from collections import defaultdict
# Mapeamento de sinais iridológicos para condições de saúde com probabilidades
SINAIS_CONDICOES = {
"congestao_inflamacao": {
"Artrite": 0.75,
"Inflamação Crônica": 0.80,
"Processo Autoimune": 0.65,
"Alergias": 0.70
},
"deficiencia_hipofuncao": {
"Fadiga Crônica": 0.70,
"Deficiência Nutricional": 0.75,
"Hipotireoidismo": 0.65,
"Anemia": 0.60
},
"atrofia_degeneracao": {
"Osteoporose": 0.70,
"Degeneração Articular": 0.75,
"Problemas Circulatórios": 0.65,
"Disfunção Orgânica": 0.80
},
"irritacao_estresse": {
"Ansiedade": 0.80,
"Estresse Crônico": 0.85,
"Insônia": 0.70,
"Síndrome do Intestino Irritável": 0.65
}
}
# Correlações entre regiões e sistemas
CORRELACOES_SISTEMAS = {
"Cerebro": {
"Sistema Nervoso Central": 0.90,
"Cognição": 0.85,
"Equilíbrio Hormonal": 0.70
},
"Sistema Nervoso": {
"Função Neurológica": 0.85,
"Stress": 0.80,
"Sono": 0.75
},
"Pulmao": {
"Sistema Respiratório": 0.90,
"Oxigenação": 0.85,
"Alergias": 0.70
},
"Coracao": {
"Sistema Circulatório": 0.90,
"Pressão Arterial": 0.85,
"Energia Vital": 0.75
},
"Figado": {
"Desintoxicação": 0.90,
"Metabolismo": 0.85,
"Digestão": 0.80
},
"Estomago": {
"Digestão": 0.90,
"Absorção": 0.85,
"Acidez": 0.80
},
"Intestino": {
"Flora Intestinal": 0.85,
"Absorção": 0.80,
"Imunidade": 0.75
}
}
def calcular_probabilidade_doenca(sinais, regiao):
"""
Calcula a probabilidade de doenças baseada nos sinais e região
"""
probabilidades = defaultdict(float)
peso_base = 0.0
# Análise dos sinais
for sinal, condicoes in SINAIS_CONDICOES.items():
if sinal in sinais:
for condicao, prob in condicoes.items():
probabilidades[condicao] += prob
peso_base += 1
# Ajuste baseado nas correlações do sistema
if regiao in CORRELACOES_SISTEMAS:
for sistema, correlacao in CORRELACOES_SISTEMAS[regiao].items():
for condicao in probabilidades:
probabilidades[condicao] *= correlacao
# Normalização das probabilidades
if peso_base > 0:
for condicao in probabilidades:
probabilidades[condicao] = min(probabilidades[condicao] / peso_base, 1.0)
return dict(probabilidades)
def analisar_padroes_cronicos(dados_analise):
"""
Analisa padrões crônicos nos dados
"""
padroes = defaultdict(int)
total_observacoes = 0
for linha in dados_analise.split('\n'):
if 'Região:' in linha:
total_observacoes += 1
if 'congestão/inflamação' in linha:
padroes['inflamacao_cronica'] += 1
if 'deficiência/hipofunção' in linha:
padroes['deficiencia_sistemica'] += 1
if 'atrofia/degeneração' in linha:
padroes['degeneracao_cronica'] += 1
# Calcula percentuais
if total_observacoes > 0:
for padrao in padroes:
padroes[padrao] = padroes[padrao] / total_observacoes
return dict(padroes)
def gerar_recomendacoes_avancadas(probabilidades, padroes_cronicos):
"""
Gera recomendações baseadas nas probabilidades e padrões crônicos
"""
recomendacoes = []
# Recomendações baseadas em probabilidades altas
for condicao, prob in probabilidades.items():
if prob > 0.7:
if "Artrite" in condicao or "Inflamação" in condicao:
recomendacoes.append({
"condição": condicao,
"probabilidade": f"{prob*100:.1f}%",
"exames_sugeridos": ["PCR", "VHS", "Anti-CCP"],
"especialidades": ["Reumatologia", "Clínica Médica"],
"abordagens_naturais": [
"Suplementação de Ômega 3",
"Curcumina",
"Exercícios de baixo impacto"
]
})
elif "Fadiga" in condicao or "Deficiência" in condicao:
recomendacoes.append({
"condição": condicao,
"probabilidade": f"{prob*100:.1f}%",
"exames_sugeridos": ["Vitamina D", "B12", "Ferritina", "Hormônios tireoidianos"],
"especialidades": ["Endocrinologia", "Clínica Médica"],
"abordagens_naturais": [
"Adaptógenos",
"Vitaminas do complexo B",
"Gestão do estresse"
]
})
elif "Ansiedade" in condicao or "Estresse" in condicao:
recomendacoes.append({
"condição": condicao,
"probabilidade": f"{prob*100:.1f}%",
"exames_sugeridos": ["Cortisol", "DHEA", "Neurotransmissores"],
"especialidades": ["Psiquiatria", "Psicologia"],
"abordagens_naturais": [
"Meditação",
"Magnésio",
"Terapias integrativas"
]
})
# Ajustes baseados em padrões crônicos
for padrao, valor in padroes_cronicos.items():
if valor > 0.5:
if padrao == "inflamacao_cronica":
recomendacoes.append({
"padrão": "Inflamação Sistêmica",
"prevalência": f"{valor*100:.1f}%",
"abordagem_sistêmica": [
"Dieta anti-inflamatória",
"Probióticos",
"Moduladores imunológicos naturais"
]
})
elif padrao == "deficiencia_sistemica":
recomendacoes.append({
"padrão": "Deficiência Nutricional Sistêmica",
"prevalência": f"{valor*100:.1f}%",
"abordagem_sistêmica": [
"Avaliação nutricional completa",
"Suplementação personalizada",
"Otimização da absorção intestinal"
]
})
return recomendacoes
def criar_interface():
"""
Cria a interface do usuário com Gradio
"""
def analisar(texto_analise):
# Processar cada região
resultados = defaultdict(list)
regiao_atual = None
sinais_atuais = []
for linha in texto_analise.split('\n'):
if 'Região:' in linha:
if regiao_atual and sinais_atuais:
prob = calcular_probabilidade_doenca(sinais_atuais, regiao_atual)
resultados[regiao_atual].append(prob)
regiao_atual = linha.split('Região:')[1].strip()
sinais_atuais = []
if regiao_atual:
if 'congestão/inflamação' in linha:
sinais_atuais.append('congestao_inflamacao')
if 'deficiência/hipofunção' in linha:
sinais_atuais.append('deficiencia_hipofuncao')
if 'atrofia/degeneração' in linha:
sinais_atuais.append('atrofia_degeneracao')
if 'irritação/estresse' in linha:
sinais_atuais.append('irritacao_estresse')
# Analisar padrões crônicos
padroes = analisar_padroes_cronicos(texto_analise)
# Gerar relatório
saida = "ANÁLISE PROBABILÍSTICA DE CONDIÇÕES DE SAÚDE\n\n"
# Agrupar por sistemas principais
sistemas = {
"Sistema Nervoso": ["Cerebro", "Sistema Nervoso"],
"Sistema Digestivo": ["Estomago", "Figado", "Vesicula", "Pancreas",
"Sistema Digestivo", "Intestino Grosso", "Intestino Delgado"],
"Sistema Circulatório": ["Coracao"],
"Sistema Respiratório": ["Pulmao", "Bronquios"],
"Sistema Endócrino": ["Tireoide"],
"Sistema Urinário": ["Rim Direito", "Rim Esquerdo", "Bexiga"]
}
for sistema, orgaos in sistemas.items():
saida += f"\n{sistema}:\n"
encontrado = False
for orgao in orgaos:
if orgao in resultados:
encontrado = True
saida += f"\n• {orgao}:\n"
# Calcular média das probabilidades para o órgão
prob_medias = defaultdict(list)
for prob_dict in resultados[orgao]:
for cond, prob in prob_dict.items():
prob_medias[cond].append(prob)
# Mostrar apenas condições com probabilidade significativa
for cond, probs in prob_medias.items():
media = sum(probs) / len(probs)
if media > 0.5: # Mostrar apenas probabilidades > 50%
saida += f" - {cond}: {media*100:.1f}% de probabilidade\n"
if not encontrado:
saida += " Sem alterações significativas\n"
# Adicionar análise de padrões crônicos
saida += "\nPADRÕES CRÔNICOS IDENTIFICADOS:\n"
for padrao, valor in padroes.items():
if valor > 0.3: # Mostrar padrões com mais de 30% de prevalência
saida += f"• {padrao.replace('_', ' ').title()}: {valor*100:.1f}% de prevalência\n"
# Gerar e adicionar recomendações
recomendacoes = gerar_recomendacoes_avancadas(
{k: v for d in [prob for probs in resultados.values() for prob in probs]
for k, v in d.items()},
padroes
)
if recomendacoes:
saida += "\nRECOMENDAÇÕES BASEADAS NA ANÁLISE:\n"
for rec in recomendacoes:
if "condição" in rec:
saida += f"\n• {rec['condição']} ({rec['probabilidade']}):\n"
saida += f" Exames Sugeridos: {', '.join(rec['exames_sugeridos'])}\n"
saida += f" Especialidades: {', '.join(rec['especialidades'])}\n"
saida += f" Abordagens Naturais: {', '.join(rec['abordagens_naturais'])}\n"
elif "padrão" in rec:
saida += f"\n• {rec['padrão']} ({rec['prevalência']}):\n"
saida += f" Abordagem Sistêmica: {', '.join(rec['abordagem_sistêmica'])}\n"
return saida
# Interface
with gr.Blocks(title="Análise Iridológica Probabilística") as interface:
gr.Markdown("""
# Sistema Avançado de Análise Iridológica Probabilística
Este sistema utiliza técnicas avançadas de iridologia para calcular probabilidades de condições de saúde.
""")
with gr.Tabs():
with gr.Tab("Análise Probabilística"):
input_text = gr.Textbox(
label="Dados da Análise Iridológica",
lines=10,
placeholder="Cole os dados da análise aqui..."
)
analysis_btn = gr.Button("Analisar Probabilidades", variant="primary")
output_text = gr.Textbox(
label="Relatório de Probabilidades",
lines=30
)
analysis_btn.click(
fn=analisar,
inputs=[input_text],
outputs=[output_text]
)
with gr.Tab("Informações"):
gr.Markdown("""
## Sobre a Análise Probabilística
Este sistema utiliza algoritmos avançados para:
1. Calcular probabilidades de condições de saúde
2. Identificar padrões crônicos
3. Correlacionar sinais iridológicos
4. Gerar recomendações personalizadas
### Metodologia
O sistema analisa:
* Sinais específicos em cada região da íris
* Correlações entre diferentes regiões
* Padrões crônicos e agudos
* Intensidade e frequência dos sinais
### Interpretação das Probabilidades
* >80%: Alta probabilidade
* 60-80%: Probabilidade moderada
* 40-60%: Probabilidade média
* <40%: Baixa probabilidade
### Limitações
* As probabilidades são indicativas
* Necessária confirmação com exames clínicos
* Consulte profissionais especializados
* Resultados não substituem diagnóstico médico
""")
return interface
def main():
interface = criar_interface()
interface.launch(share=True)
if __name__ == "__main__":
main() |