성장通

[리뷰] 챗GPT API를 활용한 챗봇 만들기 본문

리뷰/도서 리뷰

[리뷰] 챗GPT API를 활용한 챗봇 만들기

백악기작은펭귄 2024. 4. 27. 15:07

* 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

챗GPT API를 활용한 챗봇 만들기

이승우 지음

 

챗GPT API를 활용한 챗봇 만들기

챗GPT, 아직도 ‘사용’만 하나요? 생성형 AI 실무 개발자가 알려주는 챗GPT 200% 활용하기

m.hanbit.co.kr


간단 서평

2022년부터 현재까지 가장 뜨거운 감자로 부상한 LLM은 전통적인 공룡 기업인 구글, MS는 물론 대 LLM 시대의 신호탄을 터뜨린 OpenAI, 초신성처럼 등장한 앤트로픽 등 다양한 기업들이 연구하고 앞다퉈 서비스를 내놓으며 왕좌를 차지하기 위해 고군분투하고 있는 아이템이다. LLM은 현존하는 인공지능 기술 중 가장 AGI에 근접하다는 이야기도 나올 정도로 막강한 능력을 가지고 있는데, 이와 같은 능력 덕에 챗봇 또한 엄청나게 발전할 수 있었다. 룰 기반, 혹은 검색 기반으로 동작하던 기존의 챗봇과 달리, 최근의 챗봇은 백이면 백 LLM을 활용하고 있다고 보면 되는데, 이러한 챗봇은 대체 어떻게 만드는 걸까?

 

이 책에서는 가장 보편적인 LLM API 서비스인 ChatGPT API를 이용해서 자연스러운 챗봇을 만드는 과정을 설명하고 있다. 단순히 API를 호출해서 ChatGPT에 오롯이 의존하는 것이 아닌, 다양한 기능적 요소들을 추가함으로써 검색도 할 줄 알고 기분 나쁜 말도 걸러낼 줄 아는 똑똑한 챗봇을 만드는 것이 이 책의 목적이다.

 

솔직하게, 이 책을 읽기 전에는 그다지 큰 기대를 하지 않았다. LLM이 떠오르면서 그와 동시에 LLM을 활용하여 무언가를 만들어내는 책이나 강의가 우후죽순처럼 쏟아져 나왔지만, 하나같이 완성도가 떨어졌고 대부분 깊은 서비스 아키텍처에 대한 이해 없이 겉핥기만을 다루고 있었기 때문이다. 하지만 이 책은 좀 달랐다. 파이썬에 대한 지식이 없는 사람도 쉽게 따라 할 수 있는 동시에, 인공지능과 개발 영역에 대한 깊은 이해를 바탕으로 설명을 하고 있어 모든 레벨의 독자들을 아우르는 친절한 동시에 자세하고도 알찬 구성을 가지고 있었다. 개인적으로, 서버에 대한 깊이 있는 지식과 경험이 없는 나에게 LLM 챗봇 서버를 구성하는 파트는 큰 도움이 되어주었다. 대화가 종료되면 서버를 자동으로 종료할 수 있도록 구성하여서 서버 유지에 대한 부담을 줄여주는 동시에 이전 대화 내용을 서버 재구동 후에도 불러올 수 있게 하여 효율적이고 자연스러운 서비스를 구축할 수 있게 도왔다. 이는 단순히 LLM 챗봇 개발뿐만 아니라, 내 AI 모델의 MVP 서비스를 구축할 때에도 꽤나 큰 도움이 될 것 같았다.

이전 대화 내용을 효율적으로 저장하고 불러오는 프로세스

 

저자는 챗봇을 만들어나가는 과정에서 필요한 여러 기능을 단계를 차근차근 나눠서 설명함으로써 조금씩 완성된 챗봇을 만들어나간다. 독자들은 그 과정에서 큰 어려움 없이 이 과정을 따라갈 수 있고, 결과적으로 검색 기능, 과거 채팅 기억 기능은 물론 그림을 생성하고 인식하는 멀티 모달 기능과 답변을 오디오로 재생하는 TTS 기능까지 갖춘 우수한 챗봇을 만들 수 있게 된다. 이 책은 초심자를 위한 책이기에 깊이 있는 내용을 다루지는 않지만, 서비스적인 관점에서 필요한 여러 개발 팁들을 적절하게 적용하며 단계를 진행하고 있기에 중급자들도 읽어보기 좋은 책이다. 가볍게 읽으면서 필요한 기능만 쏙쏙 골라 사용할 수 있게 구성된 목차 덕에 바로 실무에 적용하기도 좋다.

 

이 책은 랭체인과 같은 프레임워크는 다루고 있지 않지만, 오히려 나는 그런 부분이 마음에 들었다. 랭체인과 같은 고급 통합 프레임워크로 추상화되어 있으면 개발과 활용은 쉬워지지만 정작 그 내부적인 동작은 알기 어렵게 되기 때문이다. 이 책에서 전체적인 구조를 이해하고 고급 프레임워크를 추가적으로 사용하여서 서비스를 만든다면 처음부터 추상화된 동작만을 이용하는 서비스보다 월등히 좋은 퀄리티의 서비스를 만들 수 있을 것이라고 생각된다.

 

입시가 끝나고 조금 여유가 생긴다면 이 책을 바탕으로 실제 데이터를 이용해서 챗봇을 만들어봐도 정말 재미있을 것 같다.


목차

추천사
개발을 시작하기 전에
베타리더의 한마디
이 책의 목표
이 책의 구성
이 책 사용 설명서

 

Chapter 01 개발 환경 쉽게 구성하기

  1. 클라우드 IDE goorm 사용하기
  2. 파이썬 버전 업그레이드하기
  3. 카카오톡 챗봇 신청하기

Chapter 02 쓸 만큼만 배우는 파이썬

  1. 파이썬이 쉬운 이유
  2. 기본 타입 데이터
  3. 컬렉션 데이터
  4. 조건문과 반복문
  5. 함수
  6. 사물처럼 프로그래밍 하기
  7. 예외 처리 작성하기
  8. 그 밖에 알아 둘 기능

Chapter 03 챗GPT와 API로 대화하기

  1. API 이해하기
  2. API 사용 신청하기
  3. API로 질의 응답하기

Chapter 04 프롬프트 엔지니어링의 기초

  1. ‘프롬프트’와 ‘엔지니어링’의 의미
  2. 프롬프트의 구성
  3. 플레이그라운드
  4. 언어 모델의 매개변수

Chapter 05 프롬프트 엔지니어링의 핵심 기법

  1. 프롬프트를 잘 만드는 방법
  2. LLM과 인-컨텍스트 러닝
  3. Few-shot Prompting
  4. CoT 기법
  5. SC 기법
  6. ToT 기법
  7. ReAct 기법
  8. RAG 기법

Chapter 06 프롬프트 엔지니어링으로 챗봇 설계하고 구현하기

  1. 대화형 언어 모델에서의 컨텍스트
  2. 챗봇 시스템 설계하기
  3. 프롬프트 만들기
  4. 프롬프트 실행하기
  5. 생성 결과 개선하기

Chapter 07 웹 애플리케이션에서 챗봇과 대화하기

  1. 서버 프로그램의 동작 살펴보기
  2. 서버 구동 과정 손에 익히기
  3. application.py 살펴보기
  4. 웹 리소스 적용하기
  5. 화면에서 대화 주고받기
  6. Chatbot 객체와 연결해서 대화하기

Chapter 08 프롬프트 엔지니어링으로 챗봇 꾸미기

  1. 시스템 역할을 통한 페르소나 구축
  2. 시스템 역할 성능 개선하기
  3. 내 찐친으로 탈바꿈하기
  4. 컨텍스트 용량 관리하기
  5. 공통사항을 미리 반영하기

Chapter 09 인간의 언어로 함수 호출하기

  1. 언어 모델이 함수를 호출하는 방법
  2. Function Calling 활용해서 인터넷 검색하기
  3. 병렬적 Function Calling

Chapter 10 에이전트 구현과 프롬프트 분할

  1. 에이전트 개념 잡기
  2. 자율적 에이전트가 동작하는 원리
  3. 자율적 에이전트 구현하기
  4. 복잡한 Task 분할하기
  5. 찐친에게 에지를 주는 방법
  6. WarningAgent 구현하기
  7. WarningAgent 사용하기

Chapter 11 대화 내용 저장하기

  1. 도큐먼트 DB
  2. MemoryManager 구현하기
  3. MemoryManager 사용하기

Chapter 12 기억을 위한 준비

  1. 컴퓨터가 언어를 이해하는 방법
  2. 인간이 임베딩을 대하는 방법
  3. 임베딩 모델 사용해 보기
  4. 벡터DB의 필요성
  5. PineconeDB 맛보기

Chapter 13 기억을 동작시키는 방법

  1. 대화 일괄 생성
  2. 기억을 구조화하는 방법
  3. 데이터베이스에 기록하기
  4. 실시간으로 기억 검색하기
  5. 실시간으로 기억해 내기
  6. 백그라운드에 기억 저장하기

Chapter 14 Assistants API 개념 잡기

  1. Assistants API 핵심 콘셉트
  2. Assistants API 사용해 보기
  3. Assistants API로 Chatbot 클래스 구현하기

Chapter 15 Assistants API 심화 학습

  1. 도구 사용하면서 상담하기
  2. 플레이그라운드에서 Assistants 사용하기
  3. 불필요해진 메서드들과 그 밖의 고려 사항

Chapter 16 GPTs와 API 사용 전략

  1. GPTs 출시 배경과 의미
  2. GPTs로 챗봇 만들어 보기
  3. Assistants API와 GPTs 기능 비교하기

Chapter 17 카카오톡에 챗봇 올리기

  1. 카카오톡 챗봇 훑어보기
  2. 30분 만에 개발하는 카카오톡 챗봇
  3. 5초 룰을 뚫어라
  4. Assistants API 연결하기

Chapter 18 멀티 모달 기능 적용하기

  1. 모달리티와 멀티 모달의 의미
  2. 이미지 인식하기
  3. 이미지 생성하기
  4. 음성으로 응답하기

개발을 마무리하면서

부록 업그레이드에 대응하는 방법
오픈AI 블로그 확인
모델 업그레이드 확인
가격 확인
컨텍스트 윈도우 사이즈