뱁새유니버스

Open AI Chat GPT 텔레그램 Telegram에서 개인챗봇비서로 사용하기 Telegram API

by 뱁새유니버스

1. 세줄요약

01. ChatGPT와 텔레그램(Telegram)을 연결했다.(Github 오픈 소스 기반)

02. ChatGPT가 하루가 다르게 버전이 올라가고 사람과 비슷한 학습효과를 내는 것으로 보인다.

03. 열심히 공부해서 나에게 도움이 될 수 있도록 여러가지 시도를 해봐야겠다.

2. 내용

chatGPT-telegram-bot 오픈 소스입니다.

https://github.com/altryne/chatGPT-telegram-bot

 

GitHub - altryne/chatGPT-telegram-bot: This is a very early attempt at having chatGPT work within a telegram bot

This is a very early attempt at having chatGPT work within a telegram bot - GitHub - altryne/chatGPT-telegram-bot: This is a very early attempt at having chatGPT work within a telegram bot

github.com

진행순서를 짧게 설명드리면 다음과 같습니다. 

1. 파이참(파이썬 IDE) 설치

2. github 연결하기

3. python 인터프리터 설정 및 패키지 설치하기

4. Telegram 및 chatGPT ID 암호 입력하기(.env 파일내 설정하면됩니다.)

5. 서버(Server.py) 구동 후 텔레그램에서 나의 봇과 채팅하기

(1) 파이참 설치하기

파이참을 설치합니다. 지난번 포스팅에서 설명했으니 참고하시고 파이참을 설치하시면 됩니다.

https://idealist.tistory.com/70

 

파이참(PyCharm) Jetbrains 아나콘다와 연동하기 파이썬 개발 도구

1. 개요 이번 포스팅은 파이참(PyCharm)을 설치하려고 합니다. 파이참은 파이썬으로 코드를 입력할 때 전 세계적으로 가장 많이 쓰이는 JetBrains 사에서 무료로 배포하는 개발 도구입니다. 2. 내용 파

idealist.tistory.com

(2) Github 연결하기

먼저 github desktop을 설치해주세요!

 

GitHub Desktop

Simple collaboration from your desktop

desktop.github.com

그 다음 아래 주소를 복사하구요.

 

github desktop을 실행하고 clone repository를 클릭합니다.

URL 탭을 클릭하고 URL을 체크표시쪽에 입력하여 Clone 버튼을 클릭하면 소스코드가 import됩니다.

그러면 소스코드가 local에 저장되고 아래 네모박스 버튼을 클릭하면 파이참이 열려 소스코드를 확인할 수 있습니다.

(3) Python 인터프리터 설정 및 패키지 설치하기

오른쪽 상단에 environment.yml을 사용하여 conda 환경 생성 버튼을 클릭합니다. 

그럼 아래와 같이 인터프리터를 설정하게 됩니다. 파이참에선 가상환경을 여러개 생성할 수 있습니다. 파이썬 3.8, 3.10버전, 아나콘다 버전과 같이 말이죠. 저는 python 3.10 버전 가상환경을 불러왔습니다.

깃허브에서 오픈 소스를 갖고 오면 제가 구축한 환경에서 필요한 패키지를 설치하기 위해 requirements 파일을 열면 패키지 리스트를 확인할 수 있습니다.

설치는 파이참에서 알아서 해줍니다! 이걸 설치하면 가상환경내 site-packages 폴더에 패키지가 설치되구요!

(4) Telegram 및 chatGPT ID 암호 입력하기(.envs 파일내 설정하면됩니다.)

아래 해당하는 모든 API 키값과 OPEN AI 접속이메일 ID, 암호를 모두 넣어줍니다.

TELEGRAM_API_KEY, TELEGRAM_USER_ID, HEADLESS_BROWSER, OPEN_AI_EMAIL, OPEN_AI_PASSWORD만 넣어주면 됩니다. 

순차적으로 가져오는 방법을 알려드리겠습니다.

① TELEGRAM_API_KEY : 텔레그램상단 Search에 botfather를 검색합니다. 그럼 아래 그림처럼 botfather를 확인할 수 있고 클릭합니다.

반응형

그리고나서 /newbot을 입력합니다.

그러면 빨간색 박스와 같이 http API를 botfather가 제공해줍니다. 이게 TELEGRAM_API_KEY 값으로 들어가면됩니다.

② TELEGRAM_USER_ID : 두번째는 TELEGRAM_USER_ID값입니다. 같은 방식으로 botfather대신 rawdatabot을 텔레그램 상단 search에 입력합니다.  RawDataBot에 들어가 /start를 치면 ChatID를 줍니다. 이게 TELEGRAM_USER_ID로 들어갈 값입니다. 

③ HEADLESS_BROWSER : https://chat.openai.com/

OPEN_AI_EMAIL : openAI ID를 입력합니다.

⑤ OPEN_AI_PASSWORD : openAI 암호를 입력합니다. 

그러면 .env파일 세팅이 끝납니다. 

(5) 서버(Server.py) 구동 후 텔레그램에서 나의 봇과 채팅하기

.env파일에 알맞게 key값과 암호를 입력하고 저장한 다음 server.py를 실행합니다. 

그런데 저는 아래와 같은 에러가 떴습니다. 그래서 해당 githut issue report를 확인해봤습니다.

\chatGPT-telegram-bot-main\server.py", line 93, in get_last_message
last_element = page_elements[-1]
IndexError: list index out of range

그러니 같은 문제를 겪고 있는 사람들이 많았습니다. 소스 수정이 필요해보입니다.

server.py파일에 

page_elements = PAGE.query_selector_all("div[class*='request-']") 대신

page_elements = PAGE.query_selector_all("div[class*='markdown']")

class유형을 markdown으로 바꿔주니까 실행이 됐습니다.

server.py파일을 실행하니 아이디와 암호를 자동으로 입력하고 firefox 브라우저가 뜨더니 chatgpt 사이트 접속이 됩니다.

그리고 텔레그램에 있는 제봇에 크림파스타 만드는 법을 물어보니 잘 알려주는 것을 확인할 수 있습니다~!

3. 마치며

이번 시간은 chatGPT를 텔레그램(메시징 앱)을 통해 대화를 주고받을 수 있는 서버를 만들어보았습니다. 

chatGPT가 continuous한 서비스가 아니기 때문에 중간에 capacity(수용량)이 가득찰 경우 잘될지가 의문이지만,

며칠 테스트를 해보고 잘되면 서버를 키고 계속해서 사용하고 안되고 서버 작동 오류시 reconnect하는 방어코드를 추가해볼까 생각중입니다. 질문이 있으시면 언제든 댓글 남겨주세요! 답변드리겠습니다. 같이 공부합시다^^

이 글을 보는 모든 분들 오늘 하루가 행복하시길 바랍니다. 감사합니다.

반응형

블로그의 정보

가슴이 웅장해지는 모든것

뱁새유니버스

활동하기