- 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
- Análisis de la consulta del usuario: búsqueda de información relevante en la base de datos.
- 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
- Agregar enlaces de fuente: incluir la fuente del documento en las respuestas de Slack.
- Guardado automático de hilos de Slack: actualizar la base de datos con el comando
@help-terraform-cloud 기억해줘.
- Sincronización automática de datos: sincronización semanal usando eventos de CloudWatch.
- Uso de la API de Confluence: cambiar la subida manual de PDFs a una conexión con la API.
- Soporte multi-conversación: mantener de forma continua el contexto de conversación con el usuario.
Lecciones aprendidas durante la implementación
- 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.
- Eficiencia del parsing de PDF:
- Se puede extraer de manera estable la data basada en texto, excluyendo imágenes.
- 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.