Spaces:
Runtime error
Runtime error
title: Asistente de Atención Médica | |
emoji: 🩺 | |
colorFrom: blue | |
colorTo: green | |
sdk: gradio | |
sdk_version: 5.20.0 | |
app_file: app.py | |
pinned: false | |
# README – Asistente de Atención Médica y Asesoramiento (En Fase de Desarrollo) | |
¡Bienvenido/a al repositorio del **Asistente de Atención Médica**! Este proyecto se encuentra **en fase de desarrollo**, por lo que algunas funcionalidades podrían cambiar o evolucionar con el tiempo. | |
## Índice | |
- [README – Asistente de Atención Médica y Asesoramiento (En Fase de Desarrollo)](#readme--asistente-de-atención-médica-y-asesoramiento-en-fase-de-desarrollo) | |
- [Índice](#índice) | |
- [Descripción General](#descripción-general) | |
- [Herramientas Principales](#herramientas-principales) | |
- [1. Atención Primaria (Triaje)](#1-atención-primaria-triaje) | |
- [2. Asesoramiento](#2-asesoramiento) | |
- [3. Modo Avanzado con Mistral](#3-modo-avanzado-con-mistral) | |
- [Flujo de Datos](#flujo-de-datos) | |
- [Especificaciones Técnicas](#especificaciones-técnicas) | |
- [Entrada y Preprocesamiento](#entrada-y-preprocesamiento) | |
- [Algoritmos y Modelos](#algoritmos-y-modelos) | |
- [Integración entre Herramientas](#integración-entre-herramientas) | |
- [Generación de Datos Sintéticos](#generación-de-datos-sintéticos) | |
- [Instalación y Uso](#instalación-y-uso) | |
- [Estado del Proyecto](#estado-del-proyecto) | |
## Descripción General | |
Este repositorio alberga un **asistente médico interactivo** dividido en tres modos principales: | |
- **Detección y triaje** de posibles casos urgentes (Atención Primaria). | |
- **Asesoramiento** con información y recomendaciones generales basadas en conocimientos médicos. | |
- **Modo avanzado con Mistral** para respuestas generativas basadas en un modelo de lenguaje. | |
El proyecto está implementado como una aplicación **speech-to-speech** usando **Gradio**, permitiendo a los usuarios hablar y recibir respuestas en audio. Está diseñado para alojarse en **Hugging Face Spaces**. | |
> **Nota Importante:** Ninguna de estas herramientas sustituye la consulta con un profesional médico. Siempre aconsejamos acudir a un especialista. | |
## Herramientas Principales | |
### 1. Atención Primaria (Triaje) | |
- **Objetivo:** Evaluar síntomas y antecedentes para determinar la urgencia de la situación. | |
- **Puntos clave:** | |
- Recopila datos básicos como síntomas, intensidad, duración y antecedentes (actualmente simplificado con valores por defecto). | |
- Aplica escalas de prioridad basadas en reglas predefinidas. | |
- Genera recomendaciones como “busque atención de emergencia” o “consulta de rutina”. | |
### 2. Asesoramiento | |
- **Objetivo:** Brindar información y orientación general sobre síntomas y autocuidado. | |
- **Puntos clave:** | |
- Procesa consultas abiertas en lenguaje natural. | |
- Detecta señales de alerta y sugiere triaje si es necesario. | |
- Incluye disclaimers legales. | |
### 3. Modo Avanzado con Mistral | |
- **Objetivo:** Generar respuestas más detalladas y naturales usando el modelo `Mixtral-8x7B-Instruct-v0.1`. | |
- **Puntos clave:** | |
- Responde preguntas médicas con un enfoque generativo. | |
- Limitado por recursos en Hugging Face Spaces (puede no ejecutarse en CPU básica). | |
## Flujo de Datos | |
1. **Entrada de Datos** | |
- Audio capturado vía micrófono en la interfaz de Gradio (`gr.Audio`). | |
- Convertido a texto con `faster-whisper`. | |
2. **Procesamiento Inicial** | |
- Uso de **SpaCy** (`en_core_sci_md`) para extraer entidades médicas y evaluar gravedad. | |
- Selección del modo: Asesoramiento, Triaje o Mistral. | |
3. **Evaluación Específica** | |
- *Asesoramiento:* Respuesta basada en reglas con detección de alertas. | |
- *Triaje:* Cálculo de una puntuación de urgencia con valores por defecto. | |
- *Mistral:* Generación de texto con el modelo de lenguaje. | |
4. **Respuesta y Retroalimentación** | |
- Respuesta convertida a audio con `gTTS` y devuelta al usuario junto con texto. | |
## Especificaciones Técnicas | |
### Entrada y Preprocesamiento | |
- **Entrada:** Audio desde el navegador (micrófono). | |
- **Preprocesamiento:** Conversión de audio a texto con `faster-whisper`, tokenización y NER con SpaCy. | |
### Algoritmos y Modelos | |
- **NLP:** SpaCy (`en_core_sci_md`) para extracción de entidades médicas. | |
- **Clasificación de Urgencia:** Reglas en `triaje_tool.py` y `asesoramiento_tool.py`. | |
- **Generación:** `Mixtral-8x7B-Instruct-v0.1` (opcional, requiere recursos altos). | |
### Integración entre Herramientas | |
- **Módulos:** `tools/asesoramiento_tool.py` y `tools/triaje_tool.py` importados en `app.py`. | |
- **Flujo Unificado:** Gradio permite seleccionar el modo de procesamiento. | |
### Generación de Datos Sintéticos | |
- **Data Augmentation:** En desarrollo, con planes para usar modelos de lenguaje y simulación clínica basada en datasets como MedQA. | |
## Instalación y Uso | |
1. Clona el repositorio: | |
```bash | |
git clone <URL_DEL_REPOSITORIO> | |
cd <NOMBRE_DEL_REPOSITORIO> |