28 April 2024

5일만에 파이썬, 프롬프트 엔지니어링, 오픈AI API, 에이전트, 벡터DB 마스터하기라는 매력적인 문구에 이끌려 이 책을 읽게 되었다. 요즘 고객센터 문의나 질의응답에서 사람의 대답을 얻는 것보다 AI의 답을 얻는 것이 흔한 시대가 되었다. 기술적인 질문에 대해서도 일일이 찾아 답변하지 않아도 API 가 알아서 지난 질문의 답을 찾아와 링크까지 걸어주며 친절하게 답을 해준다.

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

  • 챗GPT 가 나오고 여러 서비스에 플러그인 형태로 API 를 활용한 플러그인을 지난 한 해 동안 여러 개 사용해 왔다. API도 간단하고 단순하기 때문에 최근 점점 추상화 되고 있는 프로그래밍 라이브러리나 패키지를 활용하면 그럴 듯한 챗봇을 만들 수 있는데 이 책에 이런 레시피가 친절하게 나와있다.

  • 4 프롬프트 엔지니어링의 기초

  • 챗봇 개발에 필요한 필수적인 파이썬에 대한 내용을 배우고 프롬프트 사용법 그리고 프롬프트 엔지니어링에 대한 기법까지 핵심적인 노하우 위주로 학습할 수 있도록 구성이 되어있다.

  • 5 프롬프트 엔지니어링의 핵심 기법
  • 원하는 답변을 얻기 위해 다음과 같은 프롬프트 기법에 대해서도 예시와 함께 설명을 하고 있다. 챗봇을 개발하다보면 API 사용뿐만 아니라 프롬프트를 어떻게 구성해야 할지에 대한 아이디어를 얻어볼 수 있도록 구성되어 있다.
  1. 프롬프트를 잘 만드는 방법 
  2. LLM과 인-컨텍스트 러닝 
  3. Few-shot Prompting 
  4. CoT 기법 
  5. SC 기법 
  6. ToT 기법 
  7. ReAct 기법 
  8. RAG 기법

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

  • 이전 챕터에서 배운 기법을 활용하여 실제로 어떻게 프롬프트를 만들고 설계해야 하는지에 대한 구체적인 방법을 알아볼 수 있다.

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

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

  • 프롬프트를 구성하였다면 이제 직접 챗봇을 구현할 준비가 되었다. 백엔드나 서버개발이 처음일지라도 간단하게 애플리케이션을 구현할 수 있는 핵심적인 노하우를 소개하고 있다.

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

  • 8 프롬프트 엔지니어링으로 챗봇 꾸미기
  • 그럴 듯한 챗봇을 구현하기 위해 이전 챕터에서까지 다뤘던 내용을 활용할 수 있는 노하우를 제시한다.
1. 시스템 역할을 통한 페르소나 구축 
2. 시스템 역할 성능 개선하기 
3. 내 찐친으로 탈바꿈하기 
4. 컨텍스트 용량 관리하기 
5. 공통사항을 미리 반영하기

  • 9 인간의 언어로 함수 호출하기
  • Tavily 를 활용하여 인터넷 검색을 활용하여 현실세계 데이터를 활용할 수 있는 방법을 소개한다.
1. 언어 모델이 함수를 호출하는 방법 
2. Function Calling 활용해서 인터넷 검색하기 
3. 병렬적 Function Calling

  • 10 에이전트 구현과 프롬프트 분할
  • 사람과 일을 할 때도 작은 작업 단위로 체크해가며 진행해야 좀더 꼼꼼하게 일을 진행할 수 있는 것처럼 에이전트에게 복잡한 태스크를 분할하여 태스크를 진행할 수 있는 노하우를 다룬다.
1. 에이전트 개념 잡기 
2. 자율적 에이전트가 동작하는 원리 
3. 자율적 에이전트 구현하기 
4. 복잡한 Task 분할하기 
5. 찐친에게 에지를 주는 방법 
6. WarningAgent 구현하기 
7. WarningAgent 사용하기

  • 11 대화 내용 저장하기
  • 몽고DB를 활용하여 데이터를 저장하는 방법에 대해 소개한다. 대화가 증발되지 않도록 다음에 다시 챗봇을 열었을 때도 지난 대화 내용을 확인할 수 있는 방법을 알 수 있다.
1. 도큐먼트 DB 
2. MemoryManager 구현하기 
3. MemoryManager 사용하기

  • 12 기억을 위한 준비

  • 임베딩 텍스트를 저장하고 사용할 수 있는 PineconeDB 활용법을 소개한다. 몽고DB 사용법 처럼 API를 통해 벡터DB를 활용할 수 있는 방법을 알 수 있다.

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

  • 13 기억을 동작시키는 방법
  • 임베딩되어 저장된 DB에서 유사도를 통해 데이터를 가져와서 대화를 생성하는 방법을 다루고 있다. 기억된 내용으로 유사도를 통해 답변을 생성하기 때문에 할루시네이션을 줄이고 의미있는 답변을 구성할 수 있는 노하우를 다루고 있다.
1. 대화 일괄 생성 
2. 기억을 구조화하는 방법 
3. 데이터베이스에 기록하기 
4. 실시간으로 기억 검색하기 
5. 실시간으로 기억해 내기 
6. 백그라운드에 기억 저장하기

  • 14 Assistants API 개념 잡기

  • 15 Assistants API 심화 학습

  • 16 GPTs와 API 사용전략

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

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

  • 작게 여러 번 하기

API를 활용하여 설치나 설정에 대한 부담을 줄이고 초보자라도 기본적인 파이썬 사용법을 이해하고 있다면 챗봇을 구현해 볼 수 있는 기본적인 기법을 짜임새 있게 설명하고 있다. 구름IDE를 사용하여 개발할 수 있는 방법까지 제공하고 있기 때문에 환경설정에 어려움을 느끼는 사람도 비교적 시행착오를 적게 줄여가면서 챗봇을 구현할 수 있는 노하우를 제시하고 있는 책이다.

AskUp 과 같은 카카오톡 챗봇이나 디스코드 챗봇 등이 어떻게 구현되는지 지난 대화 내용이나 데이터를 바탕으로 어떻게 대화를 생성해 나가는지, 날씨와 같은 실시간성 정보를 어떻게 웹사이트 상에서 가져오는지에 대한 방법과 핵심 노하우를 배울 수 있는 책이다.

이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.