라마인덱스로 배우는 데이터 기반 AI 애플리케이션 (파이썬과 Streamlit으로 만드는 생성형 AI와 RAG 실전 LLM 개발)

라마인덱스로 배우는 데이터 기반 AI 애플리케이션 (파이썬과 Streamlit으로 만드는 생성형 AI와 RAG 실전 LLM 개발)

$32.88
Description
데이터와 LLM을 연결해서 진짜 쓸모 있는 AI 애플리케이션을 만들자
생성형 AI와 대형 언어 모델(LLM)은 막대한 가능성을 지닌 강력한 도구지만, 잘못된 정보 생성이나 짧은 문맥 처리, 최신 데이터 반영의 어려움 같은 약점도 분명히 존재한다. 이 책은 그 한계를 극복할 수 있는 검색 증강 생성(RAG)과 LlamaIndex 활용법을 구체적으로 안내하며, 파이썬과 Streamlit으로 직접 프로젝트를 만들면서 데이터 수집, 색인, 검색, 쿼리, 프롬프트 엔지니어링, 배포까지 AI 애플리케이션 개발의 전 과정을 실습할 수 있도록 돕는다. 기본 개념에서 출발해 챗봇과 에이전트 구축, 사용자 정의와 실제 배포 전략까지 한 권에 담았다. 이 책을 통해 단순한 실습을 넘어 데이터를 다루고 최적화하는 전 과정을 직접 경험하며, LLM의 한계를 넘어서는 정확하고 지능적인 AI 애플리케이션을 직접 구축할 수 있는 역량을 키우자.
저자

안드레이게오르기우

저자:안드레이게오르기우(AndreiGheorghiu)
20년이상의경력을가진IT전문가이자ITAcademy의숙련된트레이너.교육,컨설팅,IT감사분야에서폭넓은경험을쌓았다.ITIL마스터,CISA,ISO27001선임심사원,CISSP등다양한국제자격을보유하고있으며,지금까지수천명의수강생에게IT서비스관리,정보보안,IT거버넌스와감사분야를교육했다.또한ERP와CRM시스템구축,다양한조직의보안평가및감사수행등다양한프로젝트를수행하며컨설턴트로서의전문성을입증했다.혁신에대한열정을바탕으로방대한지식을나누고,최신기술발전에발맞추어현실적인문제해결방안을제시하는데힘쓰고있다.미래지향적인교육자로서,생성형AI시대에도사람들이경쟁력을유지할수있도록역량강화와재교육을통한생산성향상을위해서도노력하고있다.

역자:동동구
현재전략기획업무를수행하고있다.이전에는B2C및B2B웹애플리케이션,Brew/WIPI/SKVM등의피처폰애플리케이션,iOS/안드로이드/윈도우폰/타이젠애플리케이션등의설계및개발,엔지니어관리업무를수행했다.최근에는국내개발자들을위해IT서적을번역하고있으며,옮긴책으로는《파이썬과JAX로추천시스템구축하기》,《파이썬시계열예측분석》(이상제이펍),《MLOps도입가이드》,《파이썬비동기라이브러리Asyncio》(이상한빛미디어)등이있다.

목차

옮긴이머리말xii
베타리더후기xiv
시작하며xvi
이책에대하여xvii

PARTI생성형AI와LlamaIndex소개

CHAPTER1대형언어모델이해하기3
1.1생성형AI와LLM소개하기4
__1.1.1생성형AI란무엇인가?4/1.1.2LLM이란무엇인가?4
1.2현대기술에서LLM의역할이해하기6
1.3LLM이직면한도전과제탐구하기8
1.4RAG로LLM증강하기12
1.5요약14

CHAPTER02LlamaIndex:숨겨진보석?LlamaIndex생태계소개15
2.1기술적요구사항15
2.2언어모델최적화?파인튜닝,RAG,LlamaIndex의상호작용16
__2.2.1RAG가유일한해결책인가?16/2.2.2LlamaIndex의기능18
2.3점진적으로복잡성을공개하는방식의장점발견20
__2.3.1고려해야할중요한측면21
2.4LlamaIndex실습프로젝트?PITS소개21
__2.4.1작동방식21
2.5코딩환경준비하기23
__2.5.1파이썬설치하기24/2.5.2Git설치하기24/2.5.3LlamaIndex설치하기25/2.5.4OpenAIAPI키등록하기25/2.5.5Streamlit탐구하기?빠른구축과배포를위한완벽한도구28/2.5.6Streamlit설치하기29/2.5.7마무리하기29/2.5.8최종확인30
2.6LlamaIndex코드저장소구조파악하기31
2.7요약32

PARTII첫LlamaIndex프로젝트시작하기

CHAPTER03LlamaIndex로여정시작하기37
3.1기술적요구사항37
3.2LlamaIndex의필수구성요소파악하기?문서,노드,인덱스38
__3.2.1문서38/3.2.2노드41/3.2.3Node객체를수동으로생성하기43/3.2.4스플리터를사용하여Document에서Node자동추출하기43/3.2.5Node는혼자있는것을좋아하지않습니다?관계를갈망합니다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.1LlamaIndex의로깅기능을사용하여로직을이해하고애플리케이션디버깅하기54/3.3.2LlamaIndex에서사용하는LLM사용자정의하기55/3.3.31-2-3만큼쉽습니다55/3.3.4온도매개변수56/3.3.5사용자정의를위한Settings사용방법이해하기58
3.4실습?PITS프로젝트시작하기59
__3.4.1소스코드살펴보기61
3.5요약64

CHAPTER04RAG워크플로에데이터가져오기65
4.1기술적요구사항65
4.2LlamaHub를통한데이터수집66
4.3LlamaHub개요67
4.4LlamaHub데이터로더를사용하여콘텐츠수집하기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.5chunk_size와chunk_overlap이해하기83/4.5.6include_prev_next_rel을사용한관계포함85/4.5.7이러한노드생성모델을사용하는실용적인방법86
4.6문맥을개선하기위해메타데이터활용하기88
__4.6.1SummaryExtractor90/4.6.2QuestionsAnsweredExtractor91/4.6.3TitleExtractor91/4.6.4EntityExtractor92/4.6.5KeywordExtractor93/4.6.6PydanticProgramExtractor94/4.6.7MarvinMetadataExtractor94/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

CHAPTER05LlamaIndex로인덱싱하기111
5.1기술적요구사항111
5.2데이터인덱싱?전체적관점112
__5.2.1모든인덱스유형의공통적특징113
5.3VectorStoreIndex이해하기114
__5.3.1VectorStoreIndex의간단한사용예시114/5.3.2임베딩이해하기116/5.3.3유사도검색이해하기118/5.3.4LlamaIndex는이러한임베딩을어떻게생성하나요?122/5.3.5어떤임베딩모델을사용해야할까요?124
5.4인덱스지속성및재사용125
__5.4.1StorageContext이해하기127/5.4.2벡터저장소와벡터데이터베이스의차이129
5.5LlamaIndex의다른인덱스유형131
__5.5.1SummaryIndex131/5.5.2DocumentSummaryIndex133/5.5.3KeywordTableIndex135/5.5.4TreeIndex137/5.5.5KnowledgeGraphIndex142
5.6ComposableGraph를사용하여인덱스위에인덱스구축하기145
__5.6.1ComposableGraph사용방법146/5.6.2이개념에대한더자세한설명147
5.7인덱스구축및쿼리의잠재적비용추정148
5.8실습?PITS학습자료인덱싱152
5.9요약153

PARTIII인덱싱된데이터의검색및활용155

CHAPTER06데이터쿼리하기,1단계?맥락검색157
6.1기술적요구사항157
6.2쿼리메커니즘개요158
6.3기본검색기의이해158
__6.3.1VectorStoreIndex검색기160/6.3.2SummaryIndex검색기162/6.3.3DocumentSummaryIndex검색기164/6.3.4TreeIndex검색기167/6.3.5KeywordTableIndex검색기170/6.3.6KnowledgeGraphIndex검색기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.3LlamaIndex에서희소검색구현하기195/6.5.4다른고급검색방법탐색198
6.6요약199

CHAPTER07데이터쿼리하기,2단계?후처리및응답합성200
7.1기술요구사항200
7.2후처리기를사용한노드의재정렬,변환,필터링201
__7.2.1후처리기가노드를필터링,변환,재정렬하는방법탐구202/7.2.2SimilarityPostprocessor204/7.2.3KeywordNodePostprocessor205/7.2.4PrevNextNodePostprocessor208/7.2.5LongContextReorder209/7.2.6PIINodePostprocessor와NERPIINodePostprocessor209/7.2.7MetadataReplacementPostprocessor210/7.2.8SentenceEmbeddingOptimizer212/7.2.9시간기반후처리기213/7.2.10후처리기재정렬하기215/7.2.11노드후처리기에대한최종생각220
7.3응답합성기이해하기220
7.4출력파싱기법구현하기224
__7.4.1출력파서를사용하여구조화된출력추출하기225/7.4.2Pydantic프로그램을사용하여구조화된출력추출하기229
7.5쿼리엔진구축및사용하기230
__7.5.1쿼리엔진구축의다양한방법탐색230/7.5.2QueryEngine인터페이스의고급활용231
7.6실습?PITS에서퀴즈만들기239
7.7요약242

CHAPTER08LlamaIndex로챗봇과에이전트구축하기243
8.1기술요구사항243
8.2챗봇과에이전트이해하기244
__8.2.1ChatEngine탐색하기246/8.2.2다양한채팅모드이해하기248
8.3앱에에이전트전략구현하기258
__8.3.1에이전트를위한도구와ToolSpec클래스구축하기259/8.3.2추론루프이해하기262/8.3.3OpenAIAgent264/8.3.4ReActAgent269/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

PARTIV사용자정의,프롬프트엔지니어링,그리고결론

CHAPTER09LlamaIndex프로젝트의사용자정의및배포291
9.1기술요구사항291
9.2RAG구성요소사용자정의하기292
__9.2.1LLaMA와LLaMA2가오픈소스환경에미친영향292/9.2.2LMStudio를사용하여로컬LLM실행하기293/9.2.3Neutrino나OpenRouter와같은서비스를사용하여LLM간라우팅하기300/9.2.4임베딩모델을사용자정의하는것은어떨까요?303/9.2.5LlamaPacks의플러그앤플레이편리성활용하기303/9.2.6LlamaCLI사용하기306
9.3고급추적및평가기술사용하기308
__9.3.1Phoenix를사용하여RAG워크플로추적하기309/9.3.2우리의RAG시스템평가하기312
9.4Streamlit을활용한배포소개319
9.5실습?단계별배포가이드3

출판사 서평

생성형AI,이제‘구경’이아니라‘직접만들’때다

ChatGPT로대표되는생성형AI시대,아이디어를실제서비스로구현해보고싶지만어디서부터시작해야할지막막한개발자를위해이책이탄생했다.단순히API를호출해모델을쓰는것으로만족할수없다.나만의데이터로학습시키고,실시간으로대화하며,바로서비스를배포할수있어야한다.이책은바로그과정을단계별로안내한다.복잡한개념을피하고,실습으로배우며,‘나도만들수있겠다’는확신을심어주는실전형가이드다.

이책은파이썬과Streamlit을기반으로생성형AI와RAG(검색증강생성)의원리를실습중심으로다룬다.특히LlamaIndex를중심으로데이터수집,파싱,인덱싱,검색,후처리까지이어지는RAG전체파이프라인을직접구현해본다.단순한기능설명에그치지않고,각단계가왜필요한지,실제프로젝트에서는어떻게최적화할수있는지구체적인코드를통해보여준다.
또한실무에서바로응용할수있는챗봇과에이전트구현,맞춤형프롬프트엔지니어링,비용관리,배포전략까지폭넓게다룬다.VectorStore,KnowledgeGraph,QueryEngine등핵심구성요소를이해하고나면,여러분의아이디어를데이터기반AI애플리케이션으로빠르게전환할수있을것이다.

이책을덮을때쯤이면여러분은단순한사용자에서‘AI를직접구현하고개선할수있는개발자’로성장해있을것이다.복잡한이론보다코드를통해배우고싶은분,RAG와LlamaIndex로실전형LLM프로젝트를완성하고싶은분에게이책은가장현실적인출발점이될것이다.

주요내용

●LlamaIndex생태계와핵심구성요소이해하기
●다양한소스(웹,DB,파일등)에서데이터수집·파싱·인덱싱하기
●VectorStore,KnowledgeGraph등맞춤형인덱스설계및활용
●효율적인쿼리,검색,후처리,응답합성기법학습
●챗봇과에이전트구현으로대화형애플리케이션개발
●프롬프트엔지니어링의모범사례와활용전략
●비용예측,개인정보보호,윤리적고려사항다루기
●Streamlit을활용한프로젝트배포및확장