CareCompanion / README.md
Pdro-ruiz's picture
Update README.md
8dfd227 verified
---
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>