생성형 AI 입문자의 ChatGPT API 활용법
지난 3월, Primer에서 주최하는 GenAI 해커톤에 참여해 '생성형 AI'를 주제로 서비스를 만들었습니다.
이 서비스의 이름은 '취도우복싱'으로, 입력한 이력서 내용을 바탕으로 면접 질문을 뽑아주는 앱입니다.
이번 글에서는 PM 포지션으로 이 해커톤에 참가해 생성형 AI 서비스를 만들며 얻은 인사이트를 공유하고자 합니다.
(생성형 AI에 대해 전문적으로 공부하고 진행한 프로젝트가 아니다 보니 잘못된 개념이나 표현을 있을 수 있습니다!)
ChatGPT API
'취도우복싱'의 가장 핵심적인 면접 질문 생성 기능은 ChatGPT API를 활용해 만들었습니다. 이 API는 자연어를 입력값으로 주면 자연어로 된 출력값을 얻을 수 있습니다.
개발자와 의논하여
'이력서와 함께 특정 문장을 입력값으로 주면 원하는 형태의 출력값을 일정하게 얻을 수 있을 것이다.'
라는 가설을 세우고, 이상적인 입력값을 만들어내기 위한 테스트를 시작했습니다.
(여기서 이상적인 입력값은 원하는 출력값을 얻어내기 위한 입력값을 의미합니다.)
테스트 과정에서 ChatGPT의 정확한 답변을 얻기 위해 구글링 자료들을 많이 참고했습니다.
예를 들면,
'역할을 정해주면 더 정확하게 답변을 해준다.'
'한국어는 데이터 표본이 적어서 영어로 질문하면 더 폭넓고 정확한 답변을 얻을 수 있다.' 등등이 있었습니다.
이런 내용들을 토대로 이력서와 자소서의 정보를 어떻게 전달했을 때 어떤 출력값이 나오는지 테스트했고, 다음과 같이 입력값의 형태를 정하게 되었습니다.
사용자가 학력사항을 입력하면 구분, 소재지, 학교명, 전공, 부전공, 입학년월, 졸업년월로 나뉘어 정보를 받게 됩니다. 이 값을 정해진 문장의 변수값으로 대입하여 전체 문장을 ChatGPT에게 전달하면 일정한 출력값이 나온다는 것을 확인했습니다. 개발자는 입력값을 '최종 학력은 (지역)을 소재로 한 (학교명) (전공), (부전공)을(를) (졸업년월에) (졸업/재학)함(중임).'이라는 문장으로 전달하게 됩니다.
아래는 '취도우복싱'에서 학력사항을 입력하는 페이지의 디자인입니다.
학력사항과 비슷한 방식으로 경력사항, 자격사항, 어학사항 등에 대한 입력을 모두 마치면 이력서 정보는 다음과 같이 완성이 됩니다.
최종 학력은 서울을 소재로 한 선린인터넷고등학교를 2017년에 졸업함. 정규직이고 삼성전자에서 SW엔지니어로 12개월 근무한 경력자이며 현재는 재직 중인 상태임. 주요 업무는 회사 사이트 웹 프론트엔드 개발 담당이었음. 정보처리기사 2급을 23.06.09에 취득했음. 영어와 관련된 OPIC IH를 2021.07.21에 취득했음.
이렇게 완성된 이력서 문장들을 그대로 ChatGPT에게 대입하며 질문을 잘 나오는지 테스트를 진행했습니다.
딱딱한 느낌의 질문들이긴 했지만 원하는 방향성으로 질문이 잘 나오는 것을 확인할 수 있었습니다.
모든 것이 순조롭게 잘 진행되는 듯했지만, 제가 간과한 중요한 사실이 있었습니다.
API를 사용해 보신 분들은 아시겠지만 ChatGPT와 달리 API를 사용하면 이전에 입력한 정보를 기억하지 못합니다. 위의 사진을 보면 저는 지금까지 ChatGPT에게 단계별로 입력값을 제공하고 있었는데, 이 입력값들을 한 번에 제공하면 완전히 다른 결과값이 나오는 것을 알게 되었습니다.
심지어 ChatGPT와 API는 언어모델도 달랐기에 API를 사용하면 전혀 다른 결과값이 나온다는 사실도 뒤늦게 알게 되었습니다.
API를 사용하면 아무리 열심히 빌드업을 해도 결과는 '당신이 이 업무에 관심이 있는 이유는 무엇인가요?'와 같이 이력서와 상관없는 질문만 반복하는 것을 볼 수 있습니다.
이 사실을 알고 나서 원하는 출력값을 얻기 위해 테스트를 반복했지만 결국 이상적인 입력값의 형태를 찾지 못했고, 아쉬운 마음으로 대회를 마무리하게 되었습니다.
레슨런
'취도우복싱'을 만들면서 생소했던 생성형 AI의 개념과 ChatGPT에 대해 많이 알게 되었습니다. ChatGPT와 하루종일 씨름하며 정확한 답변을 얻기 위한 나름의 노하우(?)가 생겼고, 앞으로 생성형 AI를 어떻게 활용해야 될지에 대해 고민할 수 있는 좋은 경험이었습니다.
처음 접한 분야다 보니까 많은 것을 배울 수 있었지만, 또 많은 것을 놓친 것 같아 아쉬움이 남습니다. ChatGPT와 API와 같지 않다는 것을 더 빨리 알았다면 서비스의 완성도를 높일 수 있지 않았을까 이런 생각도 자주 합니다. 그래서 해커톤의 마무리가 아쉬웠던 만큼 앞으로 기회가 있다면 생성형 AI를 활용하여 새로운 프로젝트도 시작해보고 싶습니다.
궁금한 점
제가 맞는 방법으로 ChatGPT API를 활용했는지에 대한 의문이 있습니다. 글 초반에 테스트를 통해 특정한 형태의 문장을 ChatGPT에게 전달하면 일정한 결과값을 얻어낼 수 있다는 것을 찾아 개발자에게 문장을 형태로 전달했다는 내용이 있습니다.
사용자의 입력값을 변수로 받아 문장으로 만들어 ChatGPT API로 전달한다는 것은 저의 생각에서 나온 아이디어일 뿐 실제 서비스에서도 이런 방식을 사용하는지 궁금합니다.
(현업자분들의 댓글 기다리고 있을게요!)