openAI의 ChatGPT를 평소 자주 사용하는 메신저에서도 만날 수 있다면 ..?
<진짜 챗GPT API 활용법>의 안내를 따라 AWS를 활용해 텔레그램 챗봇을 만들어 보았다.
아마존 웹 서비스(AWS)란?
아마존에서 제공하는 클라우딩 컴퓨팅 플랫폼으로,
아마존에서 컴퓨터를 유료로 대여해 주고 직접 컴퓨터를 동작까지 시켜주는 서비스이다.
간단한 챗봇 결과물을 만들기 위해 AWS람다와 AWS API게이트웨이를 사용해 보았다.
- AWS 람다: 메시지 정보를 받으면 API를 통해 챗GPT에 작업을 요청한다.
- AWS API게이트웨이: 텔레그램 서버와 AWS 람다 함수를 연결해 주는 연결고리 역할
실습에 앞서 openAI 서버와 연결할 수 있는 openAI의 API키와
텔레그램의 botfather로부터 얻어낸 나만의 봇토큰이 필요하다.
*봇 토큰과 API키는 유출될 시 타인이 함부로 조종할 수 있으므로 공개되지 않도록 유의해야 한다.*
AWS 람다에서 새로운 함수를 생성한 후
텔레그램에서 /ask 질문을 받으면 openAPI에게 전달해 답변을 받을 수 있도록 하는 코드를 작성한다.
이후 open ai 패키지를 활용해 새로운 layer, 생성했다.
openai패키지 파일은 도서에 명시된 웹페이지에서 얻을 수 있었다.
마지막으로 API gateway를 이용해 텔레그램 채팅방과 AWS 람다를 연결하는 데 사용할
API게이트웨이를 생성한다
마지막으로 텔레그램 채팅방과 API게이트웨이의 URL주소를 연결하는 webhook을 거치면 끝
사실 중간에 open API의 토큰이 없는 상태였는데 이를 인지하지 못해서 계속 에러가 발생했다
이 때 책에서 알려준 AWS 로그를 활용해 디버깅을 해서 버그를 해결할 수 있었다.
일단은 채팅 기능만 가능하게 만들었지만
나중에 DALL.E 2를 활용해 더 개선된 형태의 챗봇을 만들어 보고 싶다.
책에는 메신저 챗봇 만들기 외에도 음성비서 만들기, 랭체인을 활용한 챗봇 만들기 등 다양한 실습방볍이 제공되는데
중간중간 건너뛰고 읽으면 흐름이 이해되지 않을 수 있으니 처음부터 흐름을 파악하며 읽기를 추천한다.
AWS서비스와 openAI모두 처음 만져보았는데 파이썬이나 다른 툴들을 만져본 적이 있으면
수월할 듯 하고, 활용해서 자신만의 명령어로 챗봇 조종도 가능하겠다.
전체 로직 정리
1. 텔레그램을 이용해 사용자가 문자 메시지 작성
2. webhook 을 통해 연결된 api gateway가 텔레그램에서 작성된 메시지를 감지
- webhook 사용 방법
https://api.telegram.org/bot<봇 토큰>/setWebhook?url=<api 게이트웨이 URL>
3. api gateway가 람다함수에게 동작 명령 지시(POST: http 요청에 대한 응답 구현하면 됨)
4. 람다함수가 open ai api를 통해 chatgpt와 통신하고 응답을 텔레그램 api를 통해 전송
람다함수 로직
- 메인함수: lambda_handler(event,context) event[’body’]에 텔레그램의 응답 결과(result) 존재
- openAI API 키, 텔레그램 봇 토큰을 받기
- result[’message][’text’] 안에 /ask 값이 있다면
- getTextFromGPT 함수를 통해 결과값 리턴받기
- 결과값을 sendMessage를 통해 특정 url(봇 토큰이 포함된)로 보내기
'Project' 카테고리의 다른 글
[SpringBoot]CRUD 게시판 구현 및 디벨롭 (1) | 2025.01.30 |
---|---|
[React]대학생을 위한 설문조사 중개 서비스, 썰매 (0) | 2025.01.30 |
[AWS, Angular]두부 생산 불량품 검출 시스템 (0) | 2025.01.28 |