CareCompanion / README.md
Pdro-ruiz's picture
Update README.md
8dfd227 verified

A newer version of the Gradio SDK is available: 5.21.0

Upgrade
metadata
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

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:
    git clone <URL_DEL_REPOSITORIO>
    cd <NOMBRE_DEL_REPOSITORIO>