Introdución

O meu Traballo de Fin de Grao consistiu en deseñar e desenvolver unha plataforma web de simulación clínica asistida por intelixencia artificial: unha aplicación na que o estudantado de Medicina practica a entrevista clínica conversando, por chat, con pacientes virtuais realistas xerados mediante modelos de linguaxe (LLMs).

O proxecto naceu dentro dunha colaboración coa Facultade de Medicina da USC e o grupo de investigación IRLab:

  • Jorge López Castromán, profesor das materias de Comunicación e Psiquiatría do Grao en Medicina, achegou a necesidade clínica e validou todo o material médico.
  • Miguel Anxo Pérez Vila e Javier Parapar López dirixiron o TFG e puxeron a disposición a infraestrutura de cómputo do IRLab.

Por que

A entrevista clínica é seguramente a competencia máis complexa que debe adquirir un futuro médico: non segue un protocolo fixo e esixe adaptarse continuamente ás respostas, silencios e emocións do paciente. En psiquiatría, onde non hai probas complementarias que substitúan o diálogo, dela depende incluso a precisión do diagnóstico.

O problema é que é difícil de practicar de verdade. As oportunidades de contacto prolongado con pacientes reais son escasas (prazas limitadas, intimidade, presión asistencial), e a alternativa habitual na facultade son as dinámicas de role-play entre estudantes, nas que quen fai de paciente non está formado para reproducir fielmente unha sintomatoloxía. Ademais, a demanda asistencial non para de medrar: os diagnósticos de ansiedade en España case se duplicaron entre 2016 e 2023, o que fai aínda máis urxente unha formación práctica de calidade.

Fronte a iso, os LLMs presentábanse como unha oportunidade clara: son capaces de manter conversas coherentes e de adoptar un rol definido de forma consistente. De aí a idea de usalos para crear pacientes virtuais cos que practicar en calquera momento, sen risco para ninguén e con dispoñibilidade total.

Que construín

O resultado é unha aplicación web (Django) con dous perfís de usuario ben diferenciados.

Para o alumnado

  • Configurar a práctica: antes de comezar, o estudante elixe o caso clínico (separando os de saúde mental do resto de especialidades xerais) e o contexto no que desenvolve a entrevista (consulta de atención primaria, urxencias…), algo que condiciona o comportamento do paciente e a avaliación.
Selección de caso clínico

Selección do caso clínico e do contexto antes de iniciar o chat

  • Entrevista en tempo real: o paciente virtual responde por un chat que imita a unha aplicación de mensaxería. Para facer a simulación creíble, cada turno do paciente acompáñase dunha emoticona que reflicte o seu estado anímico e de pausas silenciosas (dúbidas, incomodidade) que o modelo interpreta e converte en tempos de espera reais. Unha ficha flotante permite repasar os trazos do paciente sobre a marcha.
Chat con un paciente virtual

Chat co paciente virtual en tempo real

  • Historial e transcrición: as conversas gárdanse automaticamente e o alumno pode revisar despois a transcrición completa de cada entrevista, coa hora de cada mensaxe.
Historial de entrevistas

Historial de entrevistas realizadas

  • Avaliación automática: ao final da sesión, o sistema analiza toda a conversa con LLM-as-a-Judge e xera un informe por competencias segundo unha rúbrica docente de 7 dominios. O resultado combina un resumo global (puntos fortes e áreas de mellora) co detalle de cada competencia: un nivel nunha escala de cinco valores (de insuficiente a excelente) e unha xustificación baseada en citas explícitas da transcrición.

Avaliación global da entrevista

Resumo global da avaliación

Análise de habilidades por competencia

Análise de habilidades por competencia

Para o profesorado

  • Control de acceso: as contas novas nacen inactivas e só o profesor as activa, o que garante que use a ferramenta só quen debe.
  • Seguimento do alumnado: panel docente con estatísticas globais (entrevistas realizadas, alumnado activo, media de mensaxes por sesión…), historial individual de cada estudante e a posibilidade de marcar entrevistas como revisadas.
  • Xestión do material clínico: o profesor crea, edita e elimina pacientes e casos sen depender de ninguén tecnicamente. A eliminación é lóxica: o contido ocúltase, pero nunca se corrompe o historial de entrevistas xa realizadas.
Ficha de detalle dun paciente virtual

Ficha de detalle dun paciente virtual

Como o construín

Arquitectura

Django actúa como o núcleo do sistema (cliente-servidor) sobre unha base de datos SQLite xestionada co seu ORM. O esquema relacional componse de 7 entidades principais: Paciente, SituacionClinica, ContextoClinico, Usuario, Entrevista, Mensaxe e Evaluacion. O LLM intervén en dous momentos: xerando as respostas do paciente durante a simulación e avaliando a conversa ao final.

Diagrama de fluxo do sistema

Diagrama de fluxo do sistema

O paciente virtual (LLM-Persona)

A clave para que un LLM actúe como un paciente realista é a enxeñaría de prompts. Para cada caso defino dúas mensaxes: un System Prompt que fixa o rol (debe comportarse como un humano nunha consulta), e unha mensaxe de instrución parametrizada cos datos demográficos, a sintomatoloxía, os antecedentes e os trazos de personalidade dese paciente concreto. Os prompts constrúense en inglés para aproveitar mellor o modelo e obter respostas de maior calidade.

Para evitar que o modelo responda con bloques de texto plano irreais, a súa saída estrutúrase con Pydantic: cada turno tipifícase como mensaxe ou pausa e oblígase a incluír unha emoticona por quenda.

class TipoMensaje(str, Enum):
    mensaje = "mensaje"
    pausa = "pausa"

class MensajePaciente(BaseModel):
    tipo: TipoMensaje        # pausa → silencio/dúbida; mensaje → texto falado
    emoji: str               # estado anímico que se renderiza no chat
    contenido: str

class RespuestaPaciente(BaseModel):
    respuesta: List[MensajePaciente]

A comunicación co servidor do modelo faise a través de Instructor (biblioteca que forza estas saídas estruturadas sobre Pydantic), apuntando a Llama-4-Scout-17B-E16-Instruct no clúster do IRLab vía Ollama. O modelo corre sobre unha GPU NVIDIA RTX 6000 Ada (48 GB) local, sen depender de servizos externos nin expoñer datos sanitarios.

A avaliación (LLM-as-a-Judge)

Ao solicitar unha avaliación, o back-end reconstrúe a transcrición completa da entrevista e pásalle ao LLM o contexto clínico, o perfil do paciente e unha rúbrica docente. A saída volve estar controlada por un esquema Pydantic que esixe, por cada unha das 7 competencias, un nivel da escala e unha xustificación baseada en citas textuais da conversa. Ese requisito é o que mitiga as alucinacións: o modelo só pode puntuar o que pode xustificar co que realmente se dixo.

Metodoloxía

Desenvolvin o proxecto con Scrum (10 Sprints de 3 semanas), xestionando o Product Backlog en Taiga, versionando en GitLab e redactando a memoria en Overleaf.

A estimación inicial foi de 361 puntos de historia fronte aos 353 finalmente completados: practicamente todo o planificado. Os primeiros Sprints arrastraron algo de atraso (exames e tarefas exploratorias), que se foi recuperando a partir do cuarto, e a validación clínica continua con Jorge López Castromán nas Sprint Reviews permitiu axustar os requisitos desde o principio.

Resultados e conclusións

O proxecto cumpriu co seu obxectivo xeral: un sistema capaz de simular unha entrevista clínica con pacientes virtuais coerentes, inmersivos e realistas, e de avaliala automaticamente con criterios docentes. A experiencia de traballar con profesionais sanitarios foi, de feito, unha das partes máis valiosas de todo o proceso: as prácticas confírmanse cando as valida a práctica real.

Tamén aprendín os límites desta tecnoloxía: os LLMs poden alucinar, e nun contexto clínico iso non é admisible. Por iso o deseño do avaliador obriga a xustificar cada nota con citas, e a simulación queda sempre baixo supervisión humana. A plataforma é ademais escalable: ao separar pacientes, casos e contextos, pódense engadir novas especialidades sen tocar unha liña de código.

Traballo futuro

  • Posta en produción e validación cun grupo de control de estudantes reais de Psiquiatría e Comunicación.
  • Automatización de accesos integrando o rexistro cos sistemas de identidade da USC.
  • Soporte multilingüe de calidade, con especial atención ao galego.
  • Interacción por voz (ASR), que achegaría un realismo superior, e unha avaliación que vincule cada corrección co momento exacto da conversa onde se produciu.