El problema fundamental que aborda PRINCE es la dificultad de acceder y analizar eficientemente vastos volúmenes de datos preclínicos, especialmente aquellos contenidos en informes no estructurados acumulados durante décadas. Los métodos de búsqueda tradicionales basados en palabras clave son insuficientes para la naturaleza matizada de las preguntas de investigación farmacéutica. La combinación de Large Language Models (LLMs) con Retrieval-Augmented Generation (RAG) y Text-to-SQL ofrece una solución transformadora, permitiendo a los investigadores formular preguntas complejas en lenguaje natural y obtener respuestas precisas y contextualizadas a partir de datos propietarios.
La relevancia de esta solución radica en la necesidad crítica de acelerar el descubrimiento de fármacos, reducir experimentos innecesarios y mejorar la toma de decisiones basada en datos. La evolución de PRINCE de una herramienta de búsqueda a un asistente de investigación agéntico refleja una respuesta estratégica a la demanda de mayor eficiencia e innovación en el desarrollo preclínico, un sector donde la precisión y la verificabilidad son primordiales. Este enfoque no solo optimiza el acceso a la información, sino que también establece un marco para la interacción inteligente con repositorios de conocimiento complejos.
Arquitectura del Sistema
La arquitectura de PRINCE se basa en un sistema agéntico de RAG orquestado por LangGraph y servido a través de una aplicación FastAPI. La interfaz de usuario conversacional (React) envía solicitudes a un backend que coordina un flujo de trabajo multi-etapa. Este flujo incluye la clarificación de la intención del usuario, la planificación (Think & Plan), la investigación (Researcher Agent), la validación de datos (Reflection Agent) y la generación de respuestas (Writer Agent). El estado de la ejecución del agente se persiste en PostgreSQL utilizando un LangGraph checkpointer, mientras que el estado de la aplicación se gestiona en DynamoDB.
Para la recuperación de información, el Researcher Agent emplea un enfoque híbrido: RAG para datos no estructurados (informes PDF) y Text-to-SQL para datos estructurados (metadatos en Amazon Athena). Los datos no estructurados se ingieren, se chunking, se enriquecen con metadatos y se indexan en Amazon OpenSearch Service como un vector store. El pipeline de RAG en tiempo de consulta incluye extracción de palabras clave, generación de filtros de metadatos, expansión de consultas (multi-query), búsqueda híbrida (kNN y keyword-based) con ponderación de resultados, re-ranking con un modelo cross-encoder (bge-reranker-large) y generación de respuesta con citaciones. Para Text-to-SQL, el sistema analiza la consulta, selecciona el esquema relevante, utiliza few-shot prompting dinámico para generar SQL (Athena), valida la consulta, la ejecuta (limitando a 50 registros) y maneja errores con reintentos. La resiliencia se logra mediante reintentos a nivel de LLM y de nodo lógico, fallbacks a LLMs alternativos y persistencia de estado. La observabilidad se implementa con Cloudwatch y Langfuse, que también se utiliza para la evaluación de datasets y tráfico en vivo con métricas como Faithfulness, Answer Relevancy y Context Relevancy. La "ingeniería de contexto" asegura que cada agente reciba solo la información necesaria, mientras que la "ingeniería de arnés" proporciona la orquestación, recuperación y observabilidad alrededor de los modelos.
Flujo de Consulta Agéntica en PRINCE
- 1 Conversational UI Usuario envía solicitud.
- 2 LangGraph Orchestration Enruta la solicitud y coordina el flujo.
- 3 Clarify User Intent LLM aclara ambigüedades, selecciona herramientas/dominios.
- 4 Think & Plan LLM razona sobre la estrategia y planifica los siguientes pasos (reflexión de...
- 5 Researcher Agent Recupera información usando RAG (PDFs) o Text-to-SQL (Athena).
- 6 Reflection Agent Evalúa suficiencia y relevancia de datos (reflexión de datos).
- 7 Writer Agent Sintetiza respuesta, aplica formato y añade citaciones (reflexión de borrador).
- 8 Conversational UI Respuesta final presentada al usuario.
Pipeline de RAG en Tiempo de Consulta
- 1 User Query Consulta en lenguaje natural.
- 2 Keyword Extraction LLM extrae palabras clave para búsqueda.
- 3 Metadata Filter Gen LLM genera filtros de metadatos (ej. study_id).
- 4 Query Expansion Modelo pequeño genera N=5 consultas semánticamente similares.
- 5 Hybrid Retriever (OpenSearch) Filtra por metadatos, luego búsqueda híbrida (kNN + keyword) en paralelo para...
- 6 Result Aggregation & Ranking Agrega resultados, asigna puntuaciones ponderadas y ranking inicial (k=~20).
- 7 Reranking (Cross-encoder) Modelo bge-reranker-large selecciona los top k=7 chunks más relevantes.
- 8 LLM Prompt Gen & Response Genera prompt final con contexto y produce respuesta con citaciones.
| Capa | Tecnología | Justificación |
|---|---|---|
| orchestration | LangGraph | Motor de flujo de trabajo para coordinar agentes y gestionar el estado del sistema agéntico. |
| compute | FastAPI | Framework para la aplicación backend que sirve la lógica de los agentes y la API. |
| storage | PostgreSQL | Persistencia del estado de ejecución del agente (LangGraph checkpointer). |
| storage | DynamoDB | Gestión del estado de la aplicación a nivel general (logs, pasos intermedios, citaciones). |
| storage | Amazon OpenSearch Service | Vector store para representaciones de documentos y base de conocimiento para RAG. |
| data-processing | Amazon Athena | Acceso a datos estructurados curados y metadatos de estudios. |
| storage | Amazon S3 | Data lake centralizado para informes de estudios preclínicos (PDFs). |
| compute | OpenAI, Anthropic, Google, Open-source models | Modelos de lenguaje grandes (LLMs) alojados en plataformas GenAI internas, expuestos vía un endpoint compatible con OpenAI. Control plane para límites de tasa y salvaguardas. |
| observability | Langfuse | Herramienta principal de observabilidad para trazas detalladas de tráfico, depuración y gestión de datasets de evaluación. |
| observability | Cloudwatch | Monitoreo general de la salud del sistema y métricas. |
Fundamentos Teóricos
La arquitectura de PRINCE se conecta con principios fundamentales de la computación distribuida y la inteligencia artificial. El uso de Retrieval-Augmented Generation (RAG) se basa en la idea de combinar la capacidad generativa de los modelos de lenguaje con la precisión de los sistemas de recuperación de información, una técnica que ha ganado prominencia en la última década para mitigar las "alucinaciones" de los LLMs. Este enfoque tiene raíces en trabajos sobre sistemas de preguntas y respuestas y recuperación de información que buscan anclar las respuestas en fuentes verificables, similar a cómo los sistemas de bases de datos tradicionales garantizan la integridad de los datos.
La orquestación multi-agente y los bucles de reflexión (proceso, datos, borrador) recuerdan a los sistemas expertos y la planificación en IA, donde la metacognición y la capacidad de razonar sobre el propio proceso o los datos son cruciales para tareas complejas. La persistencia de estado y los mecanismos de reintento son patrones clásicos de diseño de sistemas distribuidos para garantizar la resiliencia y la tolerancia a fallos, como se describe en trabajos sobre sistemas transaccionales y de procesamiento de mensajes. La validación y el re-ranking en el pipeline de RAG reflejan técnicas de recuperación de información y machine learning para mejorar la relevancia y la calidad de los resultados, un campo estudiado extensamente en la ciencia de la información y el procesamiento del lenguaje natural.