9 puntos por GN⁺ 2024-12-25 | Aún no hay comentarios. | Compartir por WhatsApp
  • Benchling opera infraestructura en la nube en múltiples regiones y entornos.
    • Gestiona más de 160,000 recursos con Terraform Cloud, y cada mes alrededor de 50 ingenieros liberan cambios de infraestructura.
  • Hay documentos FAQ extensos (20 páginas) y registros de hilos de Slack, pero el problema era la ineficiencia en la búsqueda.
  • Para solucionarlo, construyeron un Slackbot de LLM utilizando RAG.

Objetivo de implementación

  • Desarrollar un Slackbot interno para resolver en tiempo real preguntas relacionadas con Terraform Cloud.
  • Combinar fuentes de datos internas y externas para responder mediante una interfaz de Slack familiar para el usuario.
  • Casos de uso posibles:
    • Respuesta a preguntas de RR. HH.
    • Búsqueda de casos de resolución de problemas de clientes.
    • Explicación de códigos de error de software.

Cómo funciona

  1. Análisis de la consulta del usuario: búsqueda de información relevante en la base de datos.
  2. Construcción del prompt del LLM: generar la respuesta incluyendo resultados de búsqueda y directrices.

Stack tecnológico

  • Modelo RAG: se usa Amazon Bedrock.
    • Configuración de una base de conocimientos mediante una base de datos OpenSearch Serverless.
    • Generación de respuestas con el modelo Claude 3.5 Sonnet v2.

Fuentes de datos

  • Confluence: FAQ de Terraform Cloud (guardada como PDF y subida a S3).
  • Web: documentación de Terraform Cloud y del lenguaje de HashiCorp.
  • Slack: hilos con issues de Terraform Cloud resueltos (la POC se recopila manualmente).
  • Los datos se guardan en una base de datos vectorial y son consultables al hacer búsquedas.

Arquitectura de implementación

  • Componentes:
    • App de Slack
    • AWS API Gateway
    • AWS Lambda (Python)
    • AWS Bedrock
    • OpenSearch Serverless (base de datos vectorial)
  • Modelos usados:
    • Amazon Titan Text Embeddings v2 (generación de embeddings)
    • Claude 3.5 Sonnet v2 (generación de respuestas)

Limitaciones y mejoras futuras

Limitaciones

  • No se procesa imagen: no se incluyen diagramas de arquitectura ni capturas de pantalla basadas en imágenes.
  • Soporte insuficiente de Terraform: actualmente el proveedor Terraform de AWS no soporta recursos de Bedrock.

Mejoras futuras

  1. Agregar enlaces de fuente: incluir la fuente del documento en las respuestas de Slack.
  2. Guardado automático de hilos de Slack: actualizar la base de datos con el comando @help-terraform-cloud 기억해줘.
  3. Sincronización automática de datos: sincronización semanal usando eventos de CloudWatch.
  4. Uso de la API de Confluence: cambiar la subida manual de PDFs a una conexión con la API.
  5. Soporte multi-conversación: mantener de forma continua el contexto de conversación con el usuario.

Lecciones aprendidas durante la implementación

  1. Estrategia de chunking de datos:
    • Al inicio usaron un tamaño de 300 tokens (aprox. 1 párrafo), pero se ajustó a 1500 tokens (aprox. 5 párrafos) para que las respuestas largas no se corten.
  2. Eficiencia del parsing de PDF:
    • Se puede extraer de manera estable la data basada en texto, excluyendo imágenes.
  3. Facilidad para configurar una base de conocimientos:
    • Es posible construirla en pocos minutos usando Amazon Bedrock.

Casos de uso

  • Consulta de FAQ y códigos de error.
  • Respuestas automáticas para preguntas repetitivas.
  • Uso de datasets personalizados por equipo:
    • Historial de conversaciones, documentación pública, etc.

Consideraciones de seguridad

  • Evaluación del riesgo de datos sensibles y de resultados inexactos.
  • Verificar el modelo aprobado por la organización.

Conclusión

  • El Slackbot con LLM demuestra la viabilidad de desarrollar prototipos rápidamente.
  • A través de nuevos experimentos tecnológicos es posible mejorar la eficiencia y la productividad.
  • Basado en este caso, ¡también puedes construir tus propias herramientas basadas en LLM!

Aún no hay comentarios.

Aún no hay comentarios.