8P by neo 3일전 | favorite | 댓글과 토론
  • Benchling은 여러 리전과 환경에서 클라우드 인프라를 운영
    • Terraform Cloud로 16만 개 이상의 리소스를 관리하며, 한 달 동안 약 50명의 엔지니어가 인프라 변경 사항을 릴리스
  • 방대한 FAQ 문서(20페이지)와 Slack 스레드 기록이 존재하지만, "검색의 비효율성"이 문제.
  • 이를 해결하기 위해 RAG LLM을 활용한 Slackbot을 구축했음

구축 목표

  • Terraform Cloud 관련 질문을 실시간으로 해결하는 내부 Slackbot 개발.
  • 내부 및 외부 데이터 소스를 결합해 사용자에게 친숙한 Slack 인터페이스를 통해 답변 제공.
  • 활용 가능 사례:
    • HR 질문 응답
    • 고객 문제 해결 사례 검색
    • 소프트웨어 오류 코드 설명

작동 원리

  1. 사용자 쿼리 분석: 데이터베이스에서 관련 정보를 검색.
  2. LLM 프롬프트 구성: 검색 결과와 지침을 포함해 답변 생성.

기술 스택

  • RAG 모델: Amazon Bedrock 사용.
    • OpenSearch Serverless 데이터베이스로 구성된 지식베이스 설정.
    • Claude 3.5 Sonnet v2 모델로 답변 생성.

데이터 소스

  • Confluence: Terraform Cloud FAQ(PDF로 저장 후 S3에 업로드).
  • : HashiCorp의 Terraform Cloud 및 언어 문서.
  • Slack: 해결된 Terraform Cloud 이슈가 포함된 스레드(POC는 수작업으로 수집).
  • 데이터는 벡터 데이터베이스에 저장되어 쿼리 시 검색 가능.

구현 아키텍처

  • 구성 요소:
    • Slack 앱
    • AWS API Gateway
    • AWS Lambda (Python 사용)
    • AWS Bedrock
    • OpenSearch Serverless (벡터 데이터베이스)
  • 모델 사용:
    • Amazon Titan Text Embeddings v2 (임베딩 생성)
    • Claude 3.5 Sonnet v2 (답변 생성)

제한 사항 및 향후 개선점

제한 사항

  • 이미지 처리 불가: 이미지 기반 아키텍처 다이어그램 또는 스크린샷 미포함.
  • Terraform 지원 부족: 현재 Terraform AWS 프로바이더가 Bedrock 리소스를 지원하지 않음.

향후 개선점

  1. 출처 링크 추가: Slack 응답에 문서 출처 포함.
  2. Slack 스레드 자동 저장: "@help-terraform-cloud 기억해줘" 명령으로 데이터베이스 업데이트.
  3. 데이터 동기화 자동화: CloudWatch 이벤트를 사용해 주간 동기화.
  4. Confluence API 활용: 현재 수동 PDF 업로드를 API 연결로 전환.
  5. 다중 대화 지원: 사용자와 지속적인 대화 문맥 유지.

구축 과정에서 배운 점

  1. 데이터 청크 전략:
    • 초기에 300 토큰(약 1단락) 크기를 사용했으나 긴 답변이 잘리지 않도록 1500 토큰(약 5단락)으로 조정.
  2. PDF 파싱의 효율성:
    • 이미지 제외, 텍스트 기반 데이터는 안정적으로 추출.
  3. 지식 베이스 설정 용이성:
    • Amazon Bedrock을 활용해 몇 분 만에 구축 가능.

사용 사례

  • FAQ 및 오류 코드 조회.
  • 반복적인 질문 자동 응답.
  • 팀별 맞춤형 데이터셋 활용:
    • 대화 기록, 공용 문서 등.

보안 고려사항

  • 데이터 민감도 및 부정확한 결과 위험 평가.
  • 조직에서 승인된 모델 확인.

결론

  • LLM을 활용한 Slackbot은 빠른 프로토타입 개발 가능성을 입증.
  • 새로운 기술 실험을 통해 효율성과 생산성 향상 가능.
  • 이 사례를 바탕으로 여러분도 LLM 기반 도구를 구축해 보세요!