brunch

RAG 시스템 구축을 위한 랭체인 실전 가이드

저자 : 윤성재

출처 교보문고





목차


CHAPTER 01 - LLM 훑어보기


1.1 생성 AI 열풍의 주역, LLM

__규칙 기반 자연어 처리, 최초 AI 챗봇 ELIZA

__통계 기반 자연어 처리, N-gram의 등장

__딥러닝과 NLP의 발전, CNN & RNN & LSTM

__언어 모델의 혁신, 트랜스포머

__Scale is all you need, LLM의 시작


1.2 LLM 개발의 양대 산맥, 오픈 소스 LLM과 Closed LLM

__어떤 LLM을 선택하느냐가 AI 서비스의 핵심

__오픈 소스 LLM vs Closed LLM

__글로벌 오픈 소스 LLM 생태계

__국내 오픈 소스 LLM 생태계


1.3 한눈에 살펴보는 LLM의 활용 현황

__생성 AI 기반 대화형 검색 서비스, Perplexity

__마케팅 AI 코파일럿, Jasper

__자동화를 AI로 더욱 쉽게 만들다, Zapier

__전천후 CRM 코파일럿, 세일즈포스의 아인슈타인

__개발자의 필수 AI 코딩 도구, 깃허브 코파일럿

__쉽고 빠른 데이터 분석, 태블로 AI

__누구나 디자이너가 될 수 있는 도구, Adobe Firefly


CHAPTER 02 - RAG와 친해지기


2.1 RAG 시스템이란?

__LLM 최대의 약점, 환각 현상

__컨텍스트 윈도우 제한 문제

__LLM API의 기억상실증 문제

__환각 현상을 극복한 RAG의 등장


2.2 RAG vs 파인튜닝


CHAPTER 03 - LLM 시작하기


3.1 랭체인이란?

__랭체인의 개념과 구성 요소

__랭체인으로 구축 가능한 서비스, ChatPDF


3.2 랭체인을 통한 LLM 활용하기

__LLM API 호출의 기초

__프롬프트의 세 가지 형태

__LLM의 Temperature 이해하기

__ChatGPT처럼 답변 스트리밍하기

__응답을 캐싱하여 더 빠르게 응답받기


3.3 프롬프트 입력이 더 편리한 Prompt Template

__PromptTemplate과 ChatPromptTemplate

__퓨샷 예제를 통한 프롬프트 템플릿

__부분적인 처리가 가능한 Partial 프롬프트 템플릿


3.4 LLM의 답변을 원하는 형태로 조정하는 Output Parser

__쉼표로 구분된 리스트를 출력하는 CSV 파서

__날짜 형식만 출력하는 Datetime 파서

__시스템 통신의 기본 형식을 위한 JSON 파서


CHAPTER 04 - RAG으로 다양한 문서 다루기


4.1 Document Loaders 알아보기

__RAG를 위한 Document 객체의 이해


4.2 PDF 파일을 Document로 불러오기

__PyPDFLoader

__PyPDFium2

__PyPDFLoader와 PyPDFium2 처리 시간 비교

__PDF Loader 비교


4.3 여러 파일을 Document로 불러오기

__Word 파일 불러오기, Docx2txtLoader

__CSV 파일 불러오기, csv_loader

__PPT 파일 불러오기, UnstructuredPowerPointLoader

__인터넷 정보 로드하기, WebBaseLoader

__특정 경로 내의 모든 파일 불러오기, DirectoryLoader


4.4 문서를 다양하게 자르는 Text Splitters

__벡터 DB의 저장 과정

__적당한 크기로 문서를 분할하는 Text Splitters

__글자 수로 분할하는 CharacterTextSplitter

__재귀적으로 텍스트를 분할하는 RecursiveCharacterTextSplitter

__문맥을 파악해 분할하는 SemanticChunker


CHAPTER 05 - RAG 활용하기


5.1 텍스트를 숫자로 바꾸는 텍스트 임베딩

__임베딩 모델이란?

__Open source와 Closed source


5.2 문서 벡터 저장소, Vector Stores

__벡터 DB의 종류

__Chroma DB란?

__Chroma DB 문서 저장 및 유사 문서 검색

__Chroma DB API를 활용한 문서 관리


5.3 RAG의 문서 검색기, Retriever

__벡터 DB 기반의 Retriever

__사용자의 쿼리를 재해석해 검색하는 MultiQueryRetriever

__문서를 여러 벡터로 재해석하는 MultiVectorRetriever

__컨텍스트를 재정렬하는 Long-Context Reorder


5.4 랭체인을 표현하는 언어, LCEL

__쉬운 코드 작성과 효과적인 모듈 관리

__LCEL로 기본 체인 구성

__스트리밍 기능을 쉽게 추가하는 stream()

__여러 개 API를 요청하고 받는 batch()


5.5 기본 RAG 시스템 구축하기

__RAG 시스템 구축하기 1 - 기본적인 QA 체인 구성

__RAG 시스템 구축하기 2 - Memory 기능 구축

__Open source LLM으로 RAG 구축하기


CHAPTER 06 - RAG 완전 정복하기


6.1 Streamlit으로 RAG 챗봇 만들기

__Streamlit 실행하기

__Streamlit chat 기능 설정


6.2 대화 기능 추가하기


6.3 파일 업로드 기능 구현하기


6.4 고급 기능을 더해 RAG 챗봇 완성하기


6.5 Streamlit에서 배포하기

__애플리케이션 준비

__깃허브 세팅하기

__Streamlit Cloud로 배포하기


6.6 LLM의 한계를 너머, Tool & Agent

__단계별 추론 CoT와 ReAct

__랭체인으로 인터넷 검색 Agent 구축하기

__랭체인으로 벡터 DB 및 인터넷 검색 Agent 완성하기




회사에서 생성형 AI 관련 교육이 있었고, 얼마 전에 재시험을 통과했다. 회사 생성형 AI를 통해서 챗봇을 만드는 과정인데, 생소한 용어들도 많고 개념을 배웠는데 잘 몰라서 오늘 교보문고에서 이 책을 구매했다. 저자가 챗봇을 만드는 방법과 내가 궁금해 하는 내용을 담고 있었다. 이런 상황이면, 나도 경제일기 챗봇을 만들 수 있을 듯 하다.


공부하고 도전해 보자

keyword