▣ 1장: 대규모 언어 모델(LLM)을 이용한 애플리케이션을 개발하고 싶다!
1.1 챗GPT를 사용해 보자
1.2 프롬프트로 할 수 있는 일
__일상 업무에 활용해 보자
1.3 프로그래밍에 활용해 보자
1.4 챗GPT 사용 시 주의 사항
1.5 챗GPT의 유료 플랜으로 할 수 있는 것들
__GPT-4
__브라우징
__데이터 분석
__챗GPT 외의 OpenAI 서비스
1.6 대규모 언어 모델(LLM)을 비즈니스에 활용
1.7 LLM을 활용한 비즈니스 및 응용 사례 소개
__사이다스 주식회사 사례: CYDAS PEOPLE Copilot Chat
__PingCAP 주식회사 사례: Chat2Query
__Alexa 기술 사례 (개인 개발) : helloGPT
__주식회사 소라콤 사례: SORACOM Harvest Data Intelligence
1.8 LLM을 이용한 애플리케이션 개발에서 주의해야 할 점
1.9 이 책에서 다루는 기술에 대하여
__랭체인
__클라우드 서비스 (특히 서버리스)
__슬랙 앱으로 협업을 촉진
요약
▣ 2장: 프롬프트 엔지니어링
2.1 왜 갑자기 프롬프트 엔지니어링?
__챗GPT의 프롬프트 엔지니어링
__애플리케이션 개발에서의 프롬프트 엔지니어링
__프롬프트 엔지니어링은 위험하지 않나?
2.2 프롬프트 엔지니어링이란?
2.3 프롬프트 구성 요소의 기초
__주제: 레시피 생성 AI 앱
__프롬프트 템플릿화
__명령과 입력 데이터의 분리
__문맥을 제공하기
__출력 형식 지정하기
__프롬프트 구성 요소 요약
2.4 Prompt Engineering Guide에서: 챗GPT의 무한한 잠재력을 이끌어내다
__Zero-shot 프롬프팅
__Few-shot 프롬프팅
__Zero-shot Chain of Thought 프롬프팅
요약
▣ 3장: 챗GPT의 API를 사용하는 방법
3.1 OpenAI의 문서 생성 모델
__챗GPT의 ‘모델’
__OpenAI의 API로 사용할 수 있는 문서 생성 모델
__모델 스냅숏
3.2 챗GPT의 API 기본 사항
__Chat Completions API
__Chat Completions API 요금
__발생된 요금 확인
3.3 입출력 길이 제한과 과금에 영향을 미치는 ‘토큰’
__토큰
__Tokenizer와 tiktoken 소개
__한국어의 토큰 수
3.4 Chat Completions API를 사용할 수 있는 환경 준비하기
__Google Colab이란?
__Google Colab 노트북 만들기
__OpenAI의 API 키 준비
3.5 Chat Completions API를 만져보기
__OpenAI의 라이브러리
__Chat Completions API 호출
__대화 기록에 기반한 응답 얻기
__응답을 스트리밍으로 받기
__기본 파라미터
3.6 Function calling
__Function calling 개요
__Function calling 샘플 코드
__파라미터 ‘function_call’
__Function calling을 응용한 JSON 생성
요약
▣ 4장: 랭체인 기초
4.1 랭체인 개요
__랭체인 사용 사례
__랭체인을 배우는 이유
__랭체인의 모듈
__랭체인 설치
4.2 Language models
__LLMs
__Chat Models
__Callback을 이용한 스트리밍
__언어 모델 요약
4.3 Prompts
__PromptTemplate
__ChatPromptTemplate
__Example selectors
__프롬프트 요약
4.4 Output parsers
__Output parsers 개요
__PydanticOutputParser를 이용해 Python 객체 가져오기
__Output parsers 요약
4.5 Chains
__LLMChain-PromptTemplate, Language model, OutputParser 연결하기
__SimpleSequentialChain-Chain과 Chain 연결하기
__Chains 요약
4.6 Memory
__ConversationBufferMemory
__더욱 편리한 Memory
__Memory 저장 위치
__Memory 요약
▣ 5장: 랭체인 활용
5.1 Data connection
__RAG(Retrieval Augmented Generation)
__Data connection 개요
__Document loaders
__Document transformers
__Text embedding models
__Vector stores
__Retrievers
__RetrievalQA(Chain)
__Data connection 요약
5.2 Agents
__Agents 개요
__Agents 사용 예시
__Agents의 작동 원리와 ReAct 개념
__Tools
__Toolkits
__Function calling을 사용하는 OpenAI Functions Agent
__한 번에 여러 도구를 사용하기
__Agents 요약
요약
▣ 6장: 외부 검색과 히스토리를 바탕으로 응답하는 웹 앱 구현하기
6.1 이번 장에서 구현할 응용 프로그램
__구현할 애플리케이션의 구성
__이 책으로 개발하는 방법
__AWS Cloud9 개요
__스트림릿 개요
__전체 코드
6.2 Cloud9 실행 및 개발 환경 구축하기
__Cloud9 환경 만들기
__깃허브 저장소 생성하기
__Cloud9과 깃허브 연동
__파이썬 환경 구축하기
6.3 스트림릿의 헬로 월드
6.4 사용자 입력 받기
6.5 입력 내용과 응답을 화면에 표시하기
6.6 대화 기록 보기
6.7 LangChain으로 OpenAI의 Chat Completions API 실행하기
6.8 Agent를 사용하여 필요에 따라 외부 정보 검색하게 하기
6.9 채팅 대화 기록을 바탕으로 응답하기
6.10 스트림릿 커뮤니티 클라우드에 배포
__종속 패키지 목록 작성
__깃허브에 소스 코드 업로드하기
__스트림릿 커뮤니티 클라우드에 배포하기
__다른 사용자 초대하기
요약
▣ 7장: 스트림 형식으로 히스토리를 기반으로 응답하는 슬랙 앱 구현
7.1 슬랙 앱을 만드는 이유
__어떤 구성으로 할까?
__개발 환경
__깃허브 저장소의 파일 구성
7.2 환경 준비
__Cloud9 환경 만들기
__깃허브에서 슬랙 앱용 저장소 생성하기
__파이썬 가상 환경 활성화하기
7.3 환경 설정 파일 만들기
7.4 슬랙 앱 새로 만들기
7.5 소켓 모드 활성화
7.6 애플리케이션 만들기
7.7 이벤트 설정하기
7.8 액션 전송 및 응답하기
7.9 스레드 내 답글 달기
7.10. OpenAI API 호출하기
7.11 스트리밍으로 응답하기
7.12 대화 기록 보관하기
__Momento Cache란?
7.13 Lazy 리스너에서 슬랙 재시도 전에 간단한 응답을 반환하는 방법
7.14 AWS Lambda에서 실행되는 핸들러 함수 만들기
7.15 chat.update API 제한 우회하기
7.16 AI 생성 메시지임을 표시하기
7.17 배포하기
7.18 Socket Mode에서 AWS Lambda로 전환하기
요약
▣ 8장: 사내 문서에 관해 답변하는 슬랙 앱 구현하기
8.1 챗GPT가 독자적인 지식으로 답변하게 한다
__파인튜닝과 RAG
__RAG 워크플로
__답변문 생성에 LLM이 필요한가?
__업무를 압박하는 ‘무언가를 찾는 시간’
__사내 데이터 정비하기
8.2 임베딩이란?
8.3 구현할 애플리케이션 개요
__완성판 소스코드
8.4 개발 환경 구축하기
__Cloud9의 디스크 공간이 부족할 때 확장하는 방법
8.5 샘플 데이터 준비
8.6 파인콘 설정
__파인콘이란?
__파인콘 이외의 벡터 데이터베이스
__파인콘 가입하기
8.7 파인콘에 벡터 데이터 저장하기
8.8 파인콘 검색 및 답변하기
8.9 대화 기록을 바탕으로 질의응답하기
__단순히 대화 기록을 넣어도 잘 작동하지 않는 경우
__대화 이력을 바탕으로 질문을 다시 작성한다.
8.10 RunnablePassthrough 사용하기
요약
▣ 9장: LLM 앱의 프로덕션 릴리스를 향해
9.1 기업에서 생성 AI를 활용하려면
9.2 공공기관·협회의 ‘생성형 AI 이용 가이드라인’을 바탕으로 자체 가이드라인 마련
__외부 서비스 이용 시 서비스 약관을 꼼꼼히 읽을 것
9.3 서비스 기획 및 설계 단계에서의 과제
__프로젝트 리스크 대응
9.4 테스트 및 평가에 대하여
__LLM 부분 평가 방법
__랭스미스의 성능 모니터링
9.5 보안 대책에 대하여
__OWASP Top 10 for Large Language Model Applications
__랭체인 코어의 취약점 제거에 대하여
9.6 개인 정보 보호 관점 및 일본의 개인정보 보호 제도
__개인정보보호법에서 규정한 본인 동의 및 목적 내 사용
__개인정보 보호에 관한 ‘결정지향적’ 이익모델과 정보적 타자성으로부터의 자유에 대하여
9.7 EU에서 규정한 금지 AI 및 고위험 AI 처리 동향
▣ 부록A: 웹 앱, 슬랙 앱 개발 환경 구축
A.1 AWS 가입
A.2 Cloud9 환경 생성
__Cloud9 요금 설명
A.3 Cloud9와 깃허브 연동
__깃허브와 SSH 설정
__Git 사용자 설정
__깃허브에서 저장소 복제하기
A.4 Cloud9에서 파이썬 환경 구축
__pyenv 설치
__Python 3.10 설치
__Python 3.10을 사용하기 위한 절차
__가상 환경에 대하여
A.5 Momento 가입
▣ 부록B: 랭체인의 새로운 표기법 ‘랭체인 표현 언어(LCEL)’ 소개
B.1 LCEL(LangChain Expression Language)이란?
B.2 LCEL의 기본 사용법
__prompt와 model을 연결하기
__output_parser 연결
B.3 LCEL의 작동 방식
B.4 약간 더 복잡한 LCEL 예제
__규칙 기반 처리(일반 함수) 끼워 넣기
__RAG(검색 증강 생성)
B.5 결론