오픈소스 ChatGPT 카톡 챗봇 "챗지" 개발 여행기

Woensug Choi·2023년 4월 2일
5

거두절미하고, 챗봇 링크, 코드 링크, 톡방 링크

ChatGPT 수업자료를 만들려니 써봐야 했다

난 작년에 임용된 새내기 공대교수다. 배우지 않은 과목 수업도 하려니 지난학기에는 일주일에 몇 번씩 밤을 샜다. 그런 수업을 가르칠 때면 ‘내가 많이 알아서 가르치는게 아니고 많이 공부해서 가르치는거구나’ 라는 생각을 하곤 했다.

두 번째 학기를 앞두고 겨울방학 때 수업준비를 하던 중 ChatGPT 이야기로 세상이 떠들썩했다. 나온지 좀 된것을 왜 이제 난리이지? 하고 호기심에 써보니, 왜 핫한지 알게되었다. 하지만 효과적인 기술인 동시에 사용자로부터 그 기능에 오해를 불러일으킬 여지가 있다고 생각되어, 학기가 시작하면 학생들에게 꼭 대학생활에 도움되는 슬기로운 ChatGPT 사용법을 알려야겠다 마음 먹었다.

ChatGPT의 빛이 나를 감싸네

그렇게 수업자료를 준비했다(공대 신입생을 위한 ChatGPT 강의 시리즈). 난 평소 슬라이드 자료를 만들 때 예쁘게 만드는데 시간을 많이 쓰는 좋지 않은 습관이 있다. 그래서 우선 Notion, Vercel, Mark 등을 활용해, 탬플릿을 가지고 자료를 만드는 플랫폼을 구축하려 했다.

ChatGPT의 강점은 여기서 빛났다. 나는 웹개발을 해본적이 없어 CSS와 HTML이 어떻게 구동되는지 또 폰트는 어떻게 바꾸는게 아는게 없었다. 그럼에도 불구하고,챗지와의 대화를 통해서 정말 빠르게 새로나온 나눔스퀘어네오 폰트를 적용한 수업자료 공유사이트와 Marp 슬라이드를 만들 수 있었다. (ChatGPT 유료회원이었던 덕분에 ChatGPT 서버가 그렇게 터지는 중에도 안정적으로 사용할 수 있었다)

돌아갈수 없는 강을 건넜다

이때부터였다. 몇일만에 난 구글보다 ChatGPT를 먼저 찾는 사람이 되어있었다. 이렇게 변해가는구나.

그리고 수업자료를 준비하면서 만약 개학하고 ChatGPT 서버터지면 학생들과 못해보겠는데? 란 생각에 API를 가져와 서버터짐을 피해야 겠다고 생각했다. 또 이왕 구축할 때 폰트도 바꾸고, 화자는 병아리, ChatGPT는 로봇 이모지를 넣어서 예쁘게 만들어봐야겠다고 생각했다. ChatGPT한테 물어보면 뭐든 만들수 있을것만 같았다.

그렇게 처음 sql을 써보고 이제는 두번째라 익숙한 HTML, CSS도 꾸미고, 처음 Threading으로 동시접속을 처리하는 것도 넣어 채팅기능이 되는 웹페이지 완성했다.

굳이 카카오톡에 ChatGPT가 필요한가?

이틀정도의 과정 중에 정말 많은 것을 ChatGPT 어깨넘어 배웠다. 그리고 우연찮게 생각했다. 카카오톡에 넣어두면 우리 어머니, 아버지도 써보실 수 있을텐데. 그리고 학생들한테 저 만들어놓은 웹사이트에 들어가서 해보게 한다고? 사이트 주소치는것부터 싫을거같은데. 카톡이면 그나마 하기싫은 학부생들이 한글자라도 안쳐볼까? 그런데 진짜 왜 아무도 안하지? 개발자라면 그냥 하면 되는 것일텐데. 아.. 차별점 만들기도 힘들고 돈으로 바꾸기 어렵구나. 라고 생각했다.

그런데 아내가 1주일동안 해외출장을 갔다.

대한민국의 유부남으로써 뭐라도 이 시간을 아주 특별히 유용하게 보내야된다고 생각했다. 한번 만들어보지! 일주일이면 딱 깔끔하게 완성할 수 있는 정도의 작업이니! 그리고 일본의 라인에 ChatGPT를 넣은것을 보니 이미 10만유저가 넘어가는 것이 보였다. 오호. 유저를 모으면 어떻게든 광고비를 창출할수 있다는 소문이 있던데! 그렇게 시작했다.

역시 Github는 최고다

일하면서도 Github 쓰지만, 아무것도 레퍼런스 할것이 없을땐 먼저 Github에 챗봇 관련 코드를 찾는다. 그리고 공부한다. 이해안되면 뭐하는부분인지 ChatGPT한테 물어본다. 오호, 카카오톡 챗봇은 이렇게 만드는구만. 카카오 홈페이지에 가서 세팅을 해본다. 안된다. 필수파라메터니 스킬이니 이거 한번만 되면 되는데 안된다. 여느 코딩문제처럼 이것저것 시도하다 됬다. 이제 깃허브에 있는 코드들을 돌려볼 수 있었다. 이것저것 돌려봤다. 그리고 내가 원하는 모습을 상상하고 짜집기를 해서 틀을 만들었다.

그렇게 만들었다. 그런데 안예뻣다.

난 예쁘게 만드는데 시간을 너무 쓰는 안좋은 습관이 있다. 줄간격도 1.5는 절대안쓰고 1.25쓴다. 예전 지도교수님이 HY견고딕 좋아하는데 너무 삐뚤거려서 그림자랑 조절해서 가독성 좋게 세팅해놓고 (그림자를 안보이게 넣으면 똑같이 보이는데 삐뚤거리는게 신기하게 잡힌다) 꼭 복붙해서 내용고쳐서 쓰곤 했다. 카톡도 사용자가 건드릴 누르게될 버튼들의 순서와 말들을 고민하는데 시간이 더 걸렸다. 그래도 얼추 마음에 들었다. 아이콘도 새로 만들어야 겠다고 생각해서 아이패드를 들곤 이것저것 한참 그렸다 (결국 OpenAI 뒷배경에 카카오톡 챗봇 아이콘을 섞은 것으로 선정했다). 다 그리고는 색조합도 한참 이것저것 시도했다.

역시나 선배지인은 왜 하냐고 물었다.

맞는 말이다. 이건 돈이 안되고 비용만 나가는 무언가다. 난 다행이 교수라는 직업이기에 나의 호기심에 시간을 투자할 수 있었다. 이건 내가봐도 그냥 안할 뿐인 무언가였다. 그런데 인터넷엔 내가 만든것과 유사한 Askup(아숙업) 뉴스가 도배되었다. 그쪽은 자사 OCR 기술을 이용해서 ‘눈을 뜬’ 카카오톡 ChatGPT를 만들었더라. 흠.. 마케팅일까 진심일까? 아니면 마케팅으로 격차는 만드는 걸까?

나도 OCR이 되면 좋겠다고 생각해서, tesseract, 네이버, 구글, 깃허브에 있는 옛날 카카오브레인의 포로로까지 다 테스트 해봤지만, 이걸 안정적으로 지문과 보기로 인식한다는건 너무 많은 시간비용이 드는 작업이라 포기했었다. 네이버꺼 쓰면 많이 시간절약을 할 수 있겠다만 너무 비쌌다. 그런데 저긴 자체 API니 많이 부럽더라. 그리고 설사 잘 인식됬다고 해도 ChatGPT가 정답을 말할 확률이 아주 높은건 아니였다. 답을 알고 있으려니 수능문제 말고는 답을 데이터로 가지고 사용하는건 문제가 발생할 것이 뻔했다.

뭐라도 사용자경험이 다르려면 뭐가 있을까

고민했다. 그렇게 영어공부모드가 떠올랐다. 그래서 만들었다. 파파고는 비싸고 무료는 제한적이니 먼저 파파고가 적용되고 토큰 다쓰면 구글번역을 사용하도록 세팅했다. 이렇게 번역기 세팅을 해놓으니, 프롬프트지니처럼 대화속도를 높이는 것도 되겠더라. 그래서 그겄도 만들었다.

그러다 결국 프롬프트 디자인의 길에 들어섰다

그래도 뭔가 영 차별점이 없어 보였다. 그래서 실시간 검색 기능을 손댔다. 문제는 실시간 검색할 키워드를 어떻게 따오는가였다. ChatGPT한테 검색할것이 있으면 그걸 찾아서 태그를 달아달라고 아무리 설명해도 잘 말을 듣지 않았다. 그래도 어찌저찌 얼추 되는 방법을 찾아서 적용했다. 그리고 좀더 다듬으니 그럴싸한 느낌이 되었다. 대화중에 실시간 검색이 필요한 것이 있다면 그것을 잡아내어서 검색하는 단계로 연결시킬 수 있게 되었다.

이걸 하면서 프롬프트를 디자인 하는게 뭔지 알게 되었다. 그러다보니, 또 이거 잘하면 마케팅 용도로 상품소개하고 상품 링크도 검색키워드 찾아주듯이 골라주겠는데? 하는 생각이 들었다. 그런데 마침 또 어느 여행사가 협업제안이 있었다(결국 안했다만). 그래서 그쪽 데이터를 가지고 공부해볼 겸 시도해 보았다. 와우. 응답속도는 매우 느려졌지만 이것도 얼추 그럴싸했다. 마침 마이리얼트립에서 ChatGPT넣어서 추천해주는게 출시했다고 뉴스가 떴더라. 그런데 그쪽은.. 이상했다 너무 느리고 너무 선별되지 않은 상품들을 소개했다. 뭔가 뿌듯했다.

그렇게 이젠 학기가 시작했다

거기까지로 이제 내 개발 여행기는 끝이 난다. 개학하고 처음 몇 수업은 ChatGPT를 다루었지만 이젠 본 수업내용에 들어가야 한다. 그사이 API비용이 10만원이 넘었다. 더이상 많이 건드리지 못하는데 이대로 이용자가 늘어나면, 감당할수 없기에 후원을 유도하는 마지막 업데이트를 하고 잠시 지켜볼 예정이다. 그사이 몇몇 회사의 컨택이 있었고, Askup을 담당하고 있는 팀장과도 대화를 나눌 기회가 있었다. 호기심으로 시작했는데 나보다 그쪽으로 더 뛰어나신 분들은 돈으로 바꿀 방법도 많이 보이시는가 보더라. 협업할 일이 있다면 곧 들어올 대학원생 월급줄게 없는 판에 하고 싶다만 난 안다. 더 뛰어난 사람들이 그냥 안했을 뿐이었던걸 내가 해본것일 뿐이라는것. 흠.... 여느 부자 유투버들이 말하는... 알려줘도 알아도 안한다는... 그런게 문제였던거일수도 있었으려나?

수많은 개발문의들, 오픈소스, 커뮤니티

그사이 어떻게 알고 오셨는지 수많은 개발문의가 있었지만 선뜻 맡지 못했다. 그사이 기초적인 챗봇 개발기능만 떼어내서 오픈소스 https://woensug-choi.github.io/ChatGee_Doc로 올렸다. 곧 이 내용을가지고 워크샾도 하게 될것 같다.

관심있으시분들은 찾아오세요 :)

profile
Hi there

0개의 댓글