책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 파이썬
· ISBN : 9791194587842
· 쪽수 : 392쪽
· 출판일 : 2025-10-30
책 소개
목차
옮긴이 머리말 xii
베타리더 후기 xiv
시작하며 xvi
이 책에 대하여 xvii
PART I 생성형 AI와 LlamaIndex 소개
CHAPTER 1 대형 언어 모델 이해하기 3
1.1 생성형 AI와 LLM 소개하기 4
__1.1.1 생성형 AI란 무엇인가? 4 / 1.1.2 LLM이란 무엇인가? 4
1.2 현대 기술에서 LLM의 역할 이해하기 6
1.3 LLM이 직면한 도전 과제 탐구하기 8
1.4 RAG로 LLM 증강하기 12
1.5 요약 14
CHAPTER 02 LlamaIndex: 숨겨진 보석 ? LlamaIndex 생태계 소개 15
2.1 기술적 요구사항 15
2.2 언어 모델 최적화 ? 파인 튜닝, RAG, LlamaIndex의 상호작용 16
__2.2.1 RAG가 유일한 해결책인가? 16 / 2.2.2 LlamaIndex의 기능 18
2.3 점진적으로 복잡성을 공개하는 방식의 장점 발견 20
__2.3.1 고려해야 할 중요한 측면 21
2.4 LlamaIndex 실습 프로젝트 ? PITS 소개 21
__2.4.1 작동 방식 21
2.5 코딩 환경 준비하기 23
__2.5.1 파이썬 설치하기 24 / 2.5.2 Git 설치하기 24 / 2.5.3 LlamaIndex 설치하기 25 / 2.5.4 OpenAI API 키 등록하기 25 / 2.5.5 Streamlit 탐구하기 ? 빠른 구축과 배포를 위한 완벽한 도구 28 / 2.5.6 Streamlit 설치하기 29 / 2.5.7 마무리하기 29 / 2.5.8 최종 확인 30
2.6 LlamaIndex 코드 저장소 구조 파악하기 31
2.7 요약 32
PART II 첫 LlamaIndex 프로젝트 시작하기
CHAPTER 03 LlamaIndex로 여정 시작하기 37
3.1 기술적 요구사항 37
3.2 LlamaIndex의 필수 구성 요소 파악하기 ? 문서, 노드, 인덱스 38
__3.2.1 문서 38 / 3.2.2 노드 41 / 3.2.3 Node 객체를 수동으로 생성하기 43 / 3.2.4 스플리터를 사용하여 Document에서 Node 자동 추출하기 43 / 3.2.5 Node는 혼자 있는 것을 좋아하지 않습니다 ? 관계를 갈망합니다 45 / 3.2.6 왜 관계가 중요한가요? 46 / 3.2.7 인덱스 47 / 3.2.8 거의 다 왔나요? 49 / 3.2.9 이것은 내부적으로 어떻게 작동하나요? 50 / 3.2.10 핵심 개념의 빠른 정리 52
3.3 첫 번째 대화형, 증강 LLM 애플리케이션 구축하기 52
__3.3.1 LlamaIndex의 로깅 기능을 사용하여 로직을 이해하고 애플리케이션 디버깅하기 54 / 3.3.2 LlamaIndex에서 사용하는 LLM 사용자 정의하기 55 / 3.3.3 1-2-3만큼 쉽습니다 55 / 3.3.4 온도 매개변수 56 / 3.3.5 사용자 정의를 위한 Settings 사용 방법 이해하기 58
3.4 실습 ? PITS 프로젝트 시작하기 59
__3.4.1 소스코드 살펴보기 61
3.5 요약 64
CHAPTER 04 RAG 워크플로에 데이터 가져오기 65
4.1 기술적 요구사항 65
4.2 LlamaHub를 통한 데이터 수집 66
4.3 LlamaHub 개요 67
4.4 LlamaHub 데이터 로더를 사용하여 콘텐츠 수집하기 68
__4.4.1 웹 페이지에서 데이터 수집하기 68 / 4.4.2 데이터베이스에서 데이터 수집하기 70 / 4.4.3 다양한 파일 형식의 소스에서 대량 데이터 수집하기 71
4.5 문서를 노드로 파싱하기 76
__4.5.1 간단한 텍스트 분할기 이해하기 76 / 4.5.2 더 고급 노드 파서 사용하기 78 / 4.5.3 관계형 파서 사용하기 82 / 4.5.4 노드 파서와 텍스트 분할기가 혼란스러운가요? 83 / 4.5.5 chunk_size와 chunk_overlap 이해하기 83 / 4.5.6 include_prev_next_rel을 사용한 관계 포함 85 / 4.5.7 이러한 노드 생성 모델을 사용하는 실용적인 방법 86
4.6 문맥을 개선하기 위해 메타데이터 활용하기 88
__4.6.1 SummaryExtractor 90 / 4.6.2 QuestionsAnsweredExtractor 91 / 4.6.3 TitleExtractor 91 / 4.6.4 EntityExtractor 92 / 4.6.5 KeywordExtractor 93 / 4.6.6 PydanticProgramExtractor 94 / 4.6.7 MarvinMetadataExtractor 94 / 4.6.8 맞춤형 추출기 정의 95 / 4.6.9 메타데이터가 많으면 항상 좋은가요? 95
4.7 메타데이터 추출기를 사용할 때 발생할 수 있는 비용 추정 96
__4.7.1 비용을 최소화하기 위한 간단한 모범 사례 97 / 4.7.2 실제 추출기를 실행하기 전에 최대 비용 추정해보기 97
4.8 메타데이터 추출기를 통한 프라이버시 보호, 그리고 그 이상 99
__4.8.1 개인 데이터 및 기타 민감한 정보 삭제 101
4.9 데이터 수집 파이프라인을 사용하여 효율성 높이기 102
4.10 텍스트와 표 데이터가 혼합된 문서 처리하기 106
4.11 실습 ? PITS에 학습 자료 업로드하기 107
4.12 요약 109
CHAPTER 05 LlamaIndex로 인덱싱하기 111
5.1 기술적 요구사항 111
5.2 데이터 인덱싱 ? 전체적 관점 112
__5.2.1 모든 인덱스 유형의 공통적 특징 113
5.3 VectorStoreIndex 이해하기 114
__5.3.1 VectorStoreIndex의 간단한 사용 예시 114 / 5.3.2 임베딩 이해하기 116 / 5.3.3 유사도 검색 이해하기 118 / 5.3.4 LlamaIndex는 이러한 임베딩을 어떻게 생성하나요? 122 / 5.3.5 어떤 임베딩 모델을 사용해야 할까요? 124
5.4 인덱스 지속성 및 재사용 125
__5.4.1 StorageContext 이해하기 127 / 5.4.2 벡터 저장소와 벡터 데이터베이스의 차이 129
5.5 LlamaIndex의 다른 인덱스 유형 131
__5.5.1 SummaryIndex 131 / 5.5.2 DocumentSummaryIndex 133 / 5.5.3 KeywordTableIndex 135 / 5.5.4 TreeIndex 137 / 5.5.5 KnowledgeGraphIndex 142
5.6 ComposableGraph를 사용하여 인덱스 위에 인덱스 구축하기 145
__5.6.1 ComposableGraph 사용 방법 146 / 5.6.2 이 개념에 대한 더 자세한 설명 147
5.7 인덱스 구축 및 쿼리의 잠재적 비용 추정 148
5.8 실습 ? PITS 학습 자료 인덱싱 152
5.9 요약 153
PART III 인덱싱된 데이터의 검색 및 활용 155
CHAPTER 06 데이터 쿼리하기, 1단계 ? 맥락 검색 157
6.1 기술적 요구사항 157
6.2 쿼리 메커니즘 개요 158
6.3 기본 검색기의 이해 158
__6.3.1 VectorStoreIndex 검색기 160 / 6.3.2 SummaryIndex 검색기 162 / 6.3.3 DocumentSummaryIndex 검색기 164 / 6.3.4 TreeIndex 검색기 167 / 6.3.5 KeywordTableIndex 검색기 170 / 6.3.6 KnowledgeGraphIndex 검색기 172 / 6.3.7 모든 검색기가 공유하는 공통 특성 176 / 6.3.8 검색 메커니즘의 효율적 사용 ? 비동기 작업 177
6.4 고급 검색 메커니즘 구축 178
__6.4.1 단순 검색 방법 178 / 6.4.2 메타데이터 필터 구현 179 / 6.4.3 더 고급 의사결정 논리를 위한 셀렉터 사용 182 / 6.4.4 도구 이해하기 184 / 6.4.5 질의 변환 및 재작성 186 / 6.4.6 더 구체적인 하위 질의 생성하기 188
6.5 밀집 검색과 희소 검색의 개념 이해 191
__6.5.1 밀집 검색 191 / 6.5.2 희소 검색 192 / 6.5.3 LlamaIndex에서 희소 검색 구현하기 195 / 6.5.4 다른 고급 검색 방법 탐색 198
6.6 요약 199
CHAPTER 07 데이터 쿼리하기, 2단계 ? 후처리 및 응답 합성 200
7.1 기술 요구사항 200
7.2 후처리기를 사용한 노드의 재정렬, 변환, 필터링 201
__7.2.1 후처리기가 노드를 필터링, 변환, 재정렬하는 방법 탐구 202 / 7.2.2 SimilarityPostprocessor 204 / 7.2.3 KeywordNodePostprocessor 205 / 7.2.4 PrevNextNodePostprocessor 208 / 7.2.5 LongContextReorder 209 / 7.2.6 PIINodePostprocessor와 NERPIINodePostprocessor 209 / 7.2.7 MetadataReplacementPostprocessor 210 / 7.2.8 SentenceEmbeddingOptimizer 212 / 7.2.9 시간 기반 후처리기 213 / 7.2.10 후처리기 재정렬하기 215 / 7.2.11 노드 후처리기에 대한 최종 생각 220
7.3 응답 합성기 이해하기 220
7.4 출력 파싱 기법 구현하기 224
__7.4.1 출력 파서를 사용하여 구조화된 출력 추출하기 225 / 7.4.2 Pydantic 프로그램을 사용하여 구조화된 출력 추출하기 229
7.5 쿼리 엔진 구축 및 사용하기 230
__7.5.1 쿼리 엔진 구축의 다양한 방법 탐색 230 / 7.5.2 QueryEngine 인터페이스의 고급 활용 231
7.6 실습 ? PITS에서 퀴즈 만들기 239
7.7 요약 242
CHAPTER 08 LlamaIndex로 챗봇과 에이전트 구축하기 243
8.1 기술 요구사항 243
8.2 챗봇과 에이전트 이해하기 244
__8.2.1 ChatEngine 탐색하기 246 / 8.2.2 다양한 채팅 모드 이해하기 248
8.3 앱에 에이전트 전략 구현하기 258
__8.3.1 에이전트를 위한 도구와 ToolSpec 클래스 구축하기 259 / 8.3.2 추론 루프 이해하기 262 / 8.3.3 OpenAIAgent 264 / 8.3.4 ReActAgent 269 / 8.3.5 에이전트와 어떻게 상호작용하나요? 271 / 8.3.6 유틸리티 도구를 사용하여 에이전트 향상하기 271 / 8.3.7 더 고급 시나리오를 위한 LLMCompiler 에이전트 사용하기 276 / 8.3.8 저수준 에이전트 프로토콜 API 사용하기 279
8.4 실습 ? PITS를 위한 대화 추적 구현하기 282
8.5 요약 288
요약 133
PART IV 사용자 정의, 프롬프트 엔지니어링, 그리고 결론
CHAPTER 09 LlamaIndex 프로젝트의 사용자 정의 및 배포 291
9.1 기술 요구사항 291
9.2 RAG 구성 요소 사용자 정의하기 292
__9.2.1 LLaMA와 LLaMA 2가 오픈소스 환경에 미친 영향 292 / 9.2.3 Neutrino나 OpenRouter와 같은 서비스를 사용하여 LLM 간 라우팅하기 300 / 9.2.4 임베딩 모델을 사용자 정의하는 것은 어떨까요? 303 / 9.2.5 Llama Packs의 플러그 앤 플레이 편리성 활용하기 303 / 9.2.6 Llama CLI 사용하기 306
9.3 고급 추적 및 평가 기술 사용하기 308
__9.3.1 Phoenix를 사용하여 RAG 워크플로 추적하기 309 / 9.3.2 우리의 RAG 시스템 평가하기 312
9.4 Streamlit을 활용한 배포 소개 319
9.5 실습 ? 단계별 배포 가이드 321
__9.5.1 PITS 프로젝트를 Streamlit Community Cloud에 배포하기 323
9.6 요약 327
CHAPTER 10 프롬프트 엔지니어링의 가이드라인 및 모범 사례 328
10.1 기술 요구사항 328
10.2 프롬프트가 비밀 무기인 이유 329
10.3 LlamaIndex가 프롬프트를 사용하는 방법 이해하기 332
10.4 기본 프롬프트 커스터마이징 335
__10.4.1 LlamaIndex에서 고급 프롬프트 기법 사용하기 339
10.5 프롬프트 엔지니어링의 황금률 340
__10.5.1 표현의 정확성과 명확성 340 / 10.5.2 지시성 340 / 10.5.3 콘텍스트 품질 340 / 10.5.4 콘텍스트 양 341 / 10.5.5 필요한 출력 형식 342 / 10.5.6 추론 비용 342 / 10.5.7 전체 시스템 지연 시간 343 / 10.5.8 작업에 적합한 LLM 선택 343 / 10.5.9 효과적인 프롬프트를 만드는 데 사용하는 일반적인 방법 346
10.6 요약 349
CHAPTER 11 결론과 추가 리소스 351
11.1 다른 프로젝트와 추가 학습 351
__11.1.1 LlamaIndex 예제 모음 352 / 11.1.2 앞으로 나아가기 ? Replit 바운티 355 / 11.1.3 다수의 힘 ? LlamaIndex 커뮤니티 356
11.2 주요 시사점과 최종 격려의 말 357
__11.2.1 생성형 AI라는 더 큰 맥락에서 RAG의 미래 359 / 11.2.2 고려할 만한 철학적 생각 362
11.3 요약 363
찾아보기 365
책속에서

저는 처음 LlamaIndex 프레임워크를 접했을 때, 그 포괄적인 공식 문서에 깊은 인상을 받았습니다. 그러나 곧 그 방대한 옵션들이 초보자들에게 부담감을 줄 수 있다는 것을 깨달았습니다. 따라서 제 목표는 프레임워크의 기능을 탐색하고 프로젝트에 활용할 수 있도록 돕는, 초보자 친화적인 가이드를 제공하는 것이었습니다. LlamaIndex의 내부 메커니즘을 더 깊이 탐구할수록 그 효과성을 더 잘 이해하게 될 것입니다. 이 책은 복잡한 개념을 해체하고 실용적인 예제를 제공함으로써 공식 문서와 독자의 이해 사이의 격차를 메우고, 흔히 발생하는 문제를 피하면서 자신 있게 RAG 애플리케이션을 구축할 수 있도록 돕는 것을 목표로 합니다.
LlamaIndex를 사용하면 특정 사용 사례에 맞게 적응할 수 있는 스마트 LLM을 신속하게 만들 수 있으며, 일반적인 사전 훈련(GPT) 지식에만 의존하지 않고 목표 정보를 주입하여 정확하고 관련성 있는 답변을 얻을 수 있습니다. 또한 GPT-4, Claude, Llama와 같은 LLM에 외부 데이터셋을 쉽게 연결할 수 있는 방법을 제공합니다. 즉 LlamaIndex는 사용자의 맞춤 지식과 LLM의 광범위한 기능을 연결합니다.



















