▣ 01장: LLM 애플리케이션 개발의 기초
1.1 활용되기 시작한 생성형 AI
1.2 Copilot vs AI 에이전트
1.3 모든 것이 AI 에이전트가 된다
1.4 AI 에이전트의 지식 지도
1.5 요약
▣ 02장: OpenAI 챗 API의 기초
2.1 OpenAI의 챗 모델
__ChatGPT의 ‘모델’
__OpenAI API에서 사용 가능한 챗 모델
__모델 스냅숏
2.2 OpenAI의 챗 API 기본
__Chat Completions API
__Chat Completions API 요금
__발생한 요금 확인
2.3 입출력 길이 제한과 요금에 영향을 미치는 ‘토큰’
__토큰
__Tokenizer와 tiktoken 소개
__한국어의 토큰 수에 대해
2.4 Chat Completions API 테스트 환경 준비
__Google Colab이란
__Google Colab 노트북 생성
__OpenAI API 사용을 위한 등록
__OpenAI API 키 준비
2.5 Chat Completions API 실습
__OpenAI 라이브러리
__Chat Completions API 호출
__대화 이력을 고려한 응답 얻기
__스트리밍으로 응답 얻기
__기본 파라미터
__JSON 모드
__Vision(이미지 입력)
2.6 Function calling
__Function calling 개요
__Function calling 샘플 코드
__tool_choice 파라미터
2.7 요약
▣ 03장: 프롬프트 엔지니어링
3.1 프롬프트 엔지니어링의 필요성
3.2 프롬프트 엔지니어링이란
3.3 프롬프트의 기본 구성 요소
__주제: 레시피 생성 AI 앱
__프롬프트의 템플릿화
__명령과 입력 데이터 분리
__문맥 제공
__출력 형식 지정
__프롬프트 구성 요소 요약
3.4 프롬프트 엔지니어링의 대표적인 기법
__Zero-shot 프롬프팅
__Few-shot 프롬프팅
__Zero-shot Chain of Thought 프롬프팅
3.5 요약
▣ 04장: LangChain 기초
4.1 LangChain 개요
__왜 LangChain을 배워야 하는가
__LangChain 전체 구조
__LangChain의 다양한 컴포넌트를 제공하는 패키지 그룹
__LangChain 설치
__LangSmith 설정
__LangChain의 주요 컴포넌트
4.2 LLM/Chat model
__LLM
__Chat model
__스트리밍
__LLM과 Chat model의 상속 관계
__LLM/Chat model 요약
4.3 Prompt template
__PromptTemplate
__ChatPromptTemplate
__MessagesPlaceholder
__LangSmith의 Prompts
__Prompt template 요약
4.4 Output parser
__Output parser 개요
__PydanticOutputParser를 사용한 Python 객체 변환
__StrOutputParser
__Output parser 요약
4.5 Chain—LangChain Expression Language(LCEL) 개요
__LangChain Expression Language(LCEL)란
__prompt와 model 연결
__StrOutputParser를 연결에 추가
__PydanticOutputParser를 사용한 연결
__Chain 요약
4.6 LangChain의 RAG 관련 컴포넌트
__RAG(Retrieval-Augmented Generation)
__LangChain의 RAG 관련 컴포넌트 개요
__Document loader
__Document transformer
__Embedding model
__Vector store
__LCEL을 사용한 RAG Chain 구현
__LangChain의 RAG 관련 컴포넌트 요약
4.7 요약
▣ 05장: LangChain Expression Language(LCEL) 심층 해설
5.1 Runnable과 RunnableSequen
__LCEL의 가장 기본적인 구성 요소
__Runnable의 실행 방법―invoke·stream·batch
__LCEL의 ‘|’로 다양한 Runnable 연결하기
__LangSmith에서 Chain의 내부 작동 확인
5.2 RunnableLambda―임의의 함수를 Runnable로 만들기
__chain 데코레이터를 사용한 RunnableLamda 구현
__RunnableLambda 자동 변환
__Runnable의 입력 타입과 출력 타입에 주의
5.3 RunnableParallel―여러 Runnable을 병렬로 연결하기
__RunnableParallel의 출력을 Runnable의 입력으로 연결하기
__RunnableParallel 자동 변환
__RunnableLambda와의 조합―itemgetter를 사용한 예시
5.4 RunnablePassthrough - 입력을 그대로 출력하기
__assign―RunnableParallel의 출력에 값 추가하기
5.5 요약
▣ 06장: Advanced RAG
6.1 Advanced RAG 개요
6.2 실습 준비
6.3 검색 쿼리 기법
__HyDE(Hypothetical Document Embeddings)
__복수 검색 쿼리 생성
__검색 쿼리 기법의 요약
6.4 검색 후 기법
__RAG-Fusion
__리랭크 모델 개요
__Cohere 리랭크 모델 사용 준비
__Cohere 리랭크 모델 도입
__검색 후 기법의 요약
6.5 복수 Retriever를 활용하는 기법
__LLM에 의한 라우팅
__하이브리드 검색 예시
__하이브리드 검색 구현
__복수 Retriever를 활용하는 기법의 요약
6.6 요약
▣ 07장: LangSmith를 활용한 RAG 애플리케이션 평가
7.1 7장에서 다룰 평가 개요
__오프라인 평가와 온라인 평가
7.2 LangSmith 개요
__LangSmith 요금 플랜
__LangSmith 기능 전체 구조
7.3 LangSmith와 Ragas를 활용한 오프라인 평가 구성 예시
__Ragas란
__이 장에서 구축할 오프라인 평가 구성
7.4 Ragas를 활용한 합성 테스트 데이터 생성
__Ragas의 합성 테스트 데이터 생성 기능 개요
__패키지 설치
__검색 대상 문서 로드
__Ragas를 활용한 합성 테스트 데이터 생성 구현
__LangSmith의 Dataset 생성
__합성 테스트 데이터 저장
7.5 LangSmith와 Ragas를 활용한 오프라인 평가 구현
__LangSmith의 오프라인 평가 개요
__사용 가능한 Evaluator(평가기)
__Ragas의 평가 메트릭
__커스텀 Evaluator 구현
__추론 함수 구현
__오프라인 평가 구현·실행
__오프라인 평가 주의사항
7.6 LangSmith를 활용한 피드백 수집
__이 절에서 구현할 피드백 기능 개요
__피드백 버튼을 표시하는 함수 구현
__피드백 버튼 표시
7.7 피드백 활용을 위한 자동 처리
__Automation rule을 활용한 처리
__좋은 평가의 트레이스를 자동으로 Dataset에 추가하기
7.8 요약
▣ 08장: AI 에이전트란
8.1 AI 에이전트를 위한 LLM 활용의 기대
8.2 AI 에이전트의 기원과 LLM을 활용한 AI 에이전트의 변천
__LLM 기반 AI 에이전트
__WebGPT
__Chain-of-Thought 프롬프팅
__LLM과 외부 전문 모듈을 조합한 MRKL Systems
__Reasoning and Acting(ReAct)
__Plan-and-Solve 프롬프팅
8.3 범용 LLM 에이전트 프레임워크
__AutoGPT
__BabyAGI
__AutoGen
__crewAI
__crewAI의 유스케이스
8.4 멀티 에이전트 접근법
__멀티 에이전트의 정의
__멀티 에이전트로 Text-to-SQL의 정확도 향상하기
__멀티 에이전트로 소프트웨어 개발 자동화하기
__Self-Organized Agents: 초대규모 코드 생성 및 최적화를
__LLM 기반 다중 에이전트 프레임워크
8.5 AI 에이전트가 안전하게 보급되기 위해
8.6 요약
▣ 09장: LangGraph로 만드는 AI 에이전트 실전 입문
9.1 LangGraph 개요
__LangGraph란 무엇인가
__LangGraph 그래프 구조 접근법
9.2 LangGraph의 주요 컴포넌트
__스테이트: 그래프의 상태 표현
__노드: 그래프를 구성하는 처리 단위
__에지: 노드 간의 연결
__컴파일된 그래프
9.3 실습: Q&A 애플리케이션
__LangChain과 LangGraph 설치
__OpenAI API 키 설정
__역할 정의
__스테이트 정의
__Chat model 초기화
__노드 정의
__그래프 생성
__노드 추가
__에지 정의
__조건부 에지 정의
__그래프 컴파일
__그래프 실행
__결과 표시
9.4 체크포인트 기능: 스테이트의 영속화와 재개
__체크포인트의 데이터 구조
__실습: 체크포인트 작동 확인하기
9.5 요약
▣ 10장: 요구사항 정의서 생성 AI 에이전트 개발
10.1 요구사항 정의서 생성 AI 에이전트 개요
__요구사항 정의란 무엇인가
__선행 연구의 접근법 참고하기
__LangGraph의 워크플로로 설계하기
10.2 환경 설정
10.3 데이터 구조 정의
10.4 주요 컴포넌트 구현
__PersonaGenerator
__InterviewConductor
__InformationEvaluator
__RequirementsDocumentGenerator
10.5 워크플로 구축
10.6 에이전트 실행과 결과 확인
10.7 전체 소스 코드
10.8 요약
▣ 11장: 에이전트 디자인 패턴
11.1 에이전트 디자인 패턴의 개요
__디자인 패턴이란
__에이전트 디자인 패턴이 해결하는 과제 영역
__에이전트 디자인 패턴의 위치 정의
__에이전트 디자인 패턴의 전체도
11.2 18가지 에이전트 디자인 패턴
__1. 패시브 골 크리에이터(Passive Goal Creator)
__2. 프로액티브 골 크리에이터(Proactive Goal Creator)
__3. 프롬프트/응답 옵티마이저(Prompt/Response Optimizer)
__4. 검색 증강 생성(Retrieval-Augmented Generation: RAG)
__5. 싱글 패스 플랜 제너레이터(Single-Path Plan Generator)
__6. 멀티 패스 플랜 제너레이터(Multi-Path Plan Generator)
__7. 셀프 리플렉션(Self-Reflection)
__8. 크로스 리플렉션(Cross-Reflection)
__9. 휴먼 리플렉션(Human-Reflection)
__10. 원샷 모델 쿼리(One-Shot Model Querying)
__11. 인크리멘탈 모델 쿼리(Incremental Model Querying)
__12. 투표 기반 협력(Voting-Based Cooperation)
__13. 역할 기반 협력(Role-Based Cooperation)
__14. 토론 기반 협력(Debate-Based Cooperation)
__15. 멀티모달 가드레일(Multimodal Guardrails)
__16. 툴/에이전트 레지스트리(Tool/Agent Registry)
__17. 에이전트 어댑터(Agent Adapter)
__18. 에이전트 평가기(Agent Evaluator)
11.3 요약
▣ 12장: LangChain/LangGraph로 구현하는 에이전트 디자인 패턴
12.1 이 장에서 다룰 에이전트 디자인 패턴
12.2 환경 설정
__각 패턴의 구현 코드에 관해
12.3 패시브 골 크리에이터(Passive Goal Creator)
__구현 내용 해설
__실행 결과
12.4 프롬프트/응답 최적화(Prompt/Response Optimizer)
__구현 내용 해설
__프롬프트 최적화
__응답 최적화
12.5 싱글 패스 플랜 제너레이터
__구현 내용 해설
__실행 결과
12.6 멀티 패스 플랜 제너레이터
__구현 내용 해설
__실행 결과
12.7 셀프 리플렉션(Self-Reflection)
__구현 내용 해설
__실행 결과
12.8 크로스 리플렉션(Cross-Reflection)
__구현 내용 해설
__실행 결과
12.9 역할 기반 협력(Role-Based Cooperation)
__구현 내용 해설
__실행 결과
12.10 요약
▣ 부록A: 각종 서비스 가입과 각 패턴의 구현 코드
A.1 각종 서비스 가입
__LangSmith 가입
__Cohere 가입
__Anthropic 가입
A.2 각 패턴의 구현 코드
__1. 패시브 골 크리에이터(Passive Goal Creator)
__2. 프롬프트/응답 최적화(Prompt/Response Optimizer)
__3. 싱글 패스 플랜 제너레이터(Single-Path Plan Generator)
__4. 멀티 패스 플랜 제너레이터(Multi-Path Plan Generator)
__5. 셀프 리플렉션(Self-Reflection)
__6. 크로스 리플렉션(Cross-Reflection)
__7. 역할 기반 협력(Role-Based Cooperation)