# LLM을 활용하는 슬랙봇 만들기

> Clean Markdown view of GeekNews topic #18427. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=18427](https://news.hada.io/topic?id=18427)
- GeekNews Markdown: [https://news.hada.io/topic/18427.md](https://news.hada.io/topic/18427.md)
- Type: news
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-12-25T10:03:01+09:00
- Updated: 2024-12-25T10:03:01+09:00
- Original source: [benchling.engineering](https://benchling.engineering/building-an-llm-powered-slackbot-557a6241e993)
- Points: 9
- Comments: 0

## Summary

Benchling은 Terraform Cloud를 활용하여 16만 개 이상의 리소스를 관리하며, 검색의 비효율성을 해결하기 위해 RAG LLM을 활용한 Slackbot을 구축했습니다. 이 Slackbot은 Terraform Cloud 관련 질문을 실시간으로 해결하고, 내부 및 외부 데이터 소스를 결합하여 사용자에게 친숙한 인터페이스로 답변을 제공합니다. LLM을 활용한 Slackbot을 구축하고자 하는 회사에서는 참고하시면 좋을것 같아요.

## Topic Body

- 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 기반 도구를 구축해 보세요!

## Comments



_No public comments on this page._
