Construye un Asistente de Investigación para Descubrimiento de Fármacos

Construye un Asistente de Investigación para Descubrimiento de Fármacos

«`html

Construcción de un Asistente de Investigación para Descubrimiento de Fármacos con Strands Agents y Amazon Bedrock

El descubrimiento de fármacos es un proceso complejo y que consume mucho tiempo, que requiere que los investigadores naveguen a través de enormes cantidades de literatura científica, datos de ensayos clínicos y bases de datos moleculares. Empresas de ciencias de la vida como Genentech y AstraZeneca están utilizando herramientas de inteligencia artificial (IA) para acelerar este proceso. En este artículo, se presenta cómo crear un asistente de investigación utilizando Strands Agents y Amazon Bedrock que puede realizar búsquedas en múltiples bases de datos científicas simultáneamente y generar informes exhaustivos sobre objetivos de fármacos, mecanismos de enfermedades y áreas terapéuticas.

Descripción de la Solución

Esta solución conecta modelos de alta calidad con fuentes de datos comunes en ciencias de la vida, como arXiv, PubMed y ChEMBL. Se demuestra cómo crear servidores de Model Context Protocol (MCP) para realizar consultas de datos y ver los resultados en una interfaz conversacional.

Los agentes de IA especializados que trabajan juntos pueden producir mejores resultados que un solo agente monolítico. La solución utiliza un equipo de subagentes, cada uno con su propio modelo de IA y herramientas. El siguiente diagrama ilustra cómo el agente orquestador gestiona las consultas de los usuarios y las dirige a los subagentes adecuados para la recuperación de información o la generación de informes.

Diagrama de arquitectura del sistema de investigación

Requisitos Previos

Para implementar esta solución, es necesario tener Python 3.10 o superior, así como el paquete strands-agents y otras bibliotecas de Python. Se recomienda encarecidamente utilizar un entorno virtual para gestionar estas dependencias. A continuación, se presentan los pasos para desplegar la solución en su entorno local:

  • Clonar el repositorio de código desde GitHub.
  • Instalar las dependencias requeridas con pip install -r requirements.txt.
  • Configurar las credenciales de AWS como variables de entorno o en un archivo de credenciales.
  • Guardar la clave API de Tavily en un archivo .env.

Definición del Modelo Fundacional

Comenzamos definiendo una conexión a un modelo en Amazon Bedrock utilizando la clase BedrockModel de Strands Agents. Usamos el modelo Claude 3.7 Sonnet como modelo por defecto. A continuación se muestra un fragmento de código que ilustra esta configuración:

from strands import Agent, tool
from strands.models import BedrockModel
from strands.agent.conversation_manager import SlidingWindowConversationManager
from strands.tools.mcp import MCPClient

def get_model():
    model = BedrockModel(
        boto_client_config=Config(
            read_timeout=900,
            connect_timeout=900,
            retries=dict(max_attempts=3, mode="adaptive"),
        ),
        model_id="us.anthropic.claude-3-7-sonnet-20250219-v1:0",
        max_tokens=64000,
        temperature=0.1,
        top_p=0.9
    )
    return model

Definición de Herramientas MCP

El MCP proporciona un estándar para cómo las aplicaciones de IA interactúan con sus entornos externos. Esta solución incluye clientes MCP para varias bases de datos científicas, como arXiv y PubMed. A continuación se presenta un ejemplo de cómo conectar a estas herramientas utilizando Strands Agents:

# MCP Clients para diversas bases de datos científicas
tavily_mcp_client = MCPClient(lambda: stdio_client(
    StdioServerParameters(command="python", args=["application/mcp_server_tavily.py"])
))
# ... (similar para otras bases de datos)

Agentes Especializados

El agente de planificación analiza las preguntas de investigación y determina qué subagentes y herramientas utilizar. De manera similar, el agente de síntesis integra hallazgos de múltiples fuentes en un informe coherente. A continuación se presenta un ejemplo de código para el agente de planificación:

@tool
def planning_agent(query: str) -> str:
    planning_system = "Eres un agente especializado en planificación para la investigación de descubrimiento de fármacos."
    model = get_model()
    planner = Agent(model=model, system_prompt=planning_system)
    response = planner(query)
    return str(response)

Ejemplo de Caso de Uso: Investigación sobre Cáncer de Mama

Para probar el nuevo asistente, se puede iniciar la interfaz de chat ejecutando streamlit run application/app.py. En este ejemplo, se pide al asistente que genere un informe sobre HER2, incluyendo noticias recientes y ensayos clínicos en curso. El asistente crea un plan de investigación integral utilizando las herramientas disponibles, sintetizando los resultados en un único informe.

Chat del agente de descubrimiento de fármacos

Conclusión

El uso de Strands Agents simplifica la creación de asistentes de IA potentes y específicos para dominios. Se anima a los investigadores a probar esta solución con sus propias preguntas de investigación y extenderla con nuevas herramientas científicas. A medida que el volumen de información científica sigue creciendo, estos marcos se volverán esenciales en el descubrimiento de fármacos.

Para obtener más información sobre la implementación de soluciones potenciadas por IA en el descubrimiento de fármacos en AWS, visite AWS para Ciencias de la Vida.

Fuente: AWS Blog

«`

Deja una respuesta