9 pontos por GN⁺ 2024-12-25 | Ainda não há comentários. | Compartilhar no WhatsApp
  • A Benchling opera infraestrutura em nuvem em várias regiões e ambientes.
    • Gerencia mais de 160 mil recursos com o Terraform Cloud, e cerca de 50 engenheiros publicam mudanças de infraestrutura por mês.
  • Há um FAQ extenso (20 páginas) e registros de threads do Slack, mas o problema era a ineficiência na busca.
  • Para resolver isso, eles construíram um Slackbot usando RAG com LLM.

Objetivos da implementação

  • Desenvolver um Slackbot interno para responder em tempo real dúvidas sobre Terraform Cloud.
  • Combinar fontes de dados internas e externas e fornecer respostas por meio de uma interface de Slack familiar aos usuários.
  • Casos de uso possíveis:
    • Resposta a perguntas de RH
    • Busca de cases de resolução de problemas de clientes
    • Explicação de códigos de erro de software

Como funciona

  1. Análise da consulta do usuário: busca por informações relacionadas no banco de dados.
  2. Montagem do prompt do LLM: geração da resposta incluindo resultados de busca e diretrizes.

Stack tecnológica

  • Modelo RAG: usando Amazon Bedrock.
    • Configuração de uma base de conhecimento composta por OpenSearch Serverless.
    • Geração de respostas com o modelo Claude 3.5 Sonnet v2.

Fontes de dados

  • Confluence: FAQ do Terraform Cloud (salvo como PDF e enviado ao S3).
  • Web: documentação do Terraform Cloud e de linguagem da HashiCorp.
  • Slack: threads contendo issues resolvidas do Terraform Cloud (coleta manual no POC).
  • Os dados são armazenados em um banco de dados vetorial para busca por consulta.

Arquitetura de implementação

  • Componentes:
    • Slack App
    • AWS API Gateway
    • AWS Lambda (com Python)
    • AWS Bedrock
    • OpenSearch Serverless (banco de dados vetorial)
  • Modelos utilizados:
    • Amazon Titan Text Embeddings v2 (geração de embeddings)
    • Claude 3.5 Sonnet v2 (geração de respostas)

Limitações e próximos passos

Limitações

  • Sem suporte a imagens: não inclui diagramas de arquitetura ou screenshots baseados em imagem.
  • Suporte insuficiente ao Terraform: atualmente o provider AWS do Terraform não suporta recursos do Bedrock.

Próximos passos

  1. Adicionar links de origem: incluir a fonte do documento na resposta do Slack.
  2. Salvar threads do Slack automaticamente: atualizar o banco de dados com o comando "@help-terraform-cloud remember".
  3. Automatizar sincronização de dados: sincronizar semanalmente com eventos do CloudWatch.
  4. Usar API do Confluence: substituir o upload manual de PDF por integração com API.
  5. Suporte a múltiplas conversas: manter contexto contínuo com o usuário.

Lições aprendidas durante a implementação

  1. Estratégia de chunking de dados:
    • Inicialmente usou-se chunks de 300 tokens (aprox. 1 parágrafo), mas foi ajustado para 1500 tokens (aprox. 5 parágrafos) para evitar que respostas longas fossem cortadas.
  2. Eficiência de parsing de PDF:
    • Sem imagens, os dados baseados em texto eram extraídos de forma estável.
  3. Facilidade de configuração da base de conhecimento:
    • É possível montar uma base em poucos minutos usando o Amazon Bedrock.

Casos de uso

  • Consulta de FAQ e códigos de erro.
  • Resposta automática para perguntas recorrentes.
  • Uso de datasets personalizados por time:
    • histórico de conversas, documentos públicos etc.

Considerações de segurança

  • Avaliação de risco de dados sensíveis e de resultados imprecisos.
  • Verificar se o modelo usado é aprovado pela organização.

Conclusão

  • O Slackbot baseado em LLM demonstra a viabilidade de desenvolver protótipos com rapidez.
  • Experimentar novas tecnologias pode elevar eficiência e produtividade.
  • Com base neste caso, você também pode construir ferramentas baseadas em LLM!

Ainda não há comentários.

Ainda não há comentários.