단행본
랭체인 완벽 입문: 혁신적인 LLM 앱을 구축하기 위한 랭체인 활용법
- 저자
- 타무라 하루카 지음;, 최용 옮김
- 발행사항
- 파주: 위키북스, 2024
- 형태사항
- 264 p.: 삽도, 24cm
- 비통제주제어
- 프로그래밍
소장정보
위치 | 등록번호 | 청구기호 / 출력 | 상태 | 반납예정일 |
---|---|---|---|---|
지금 이용 불가 (1) | ||||
한국청소년정책연구원 | 00032154 | 대출중 | 2024.12.17 |
지금 이용 불가 (1)
- 등록번호
- 00032154
- 상태/반납예정일
- 대출중
- 2024.12.17
- 위치/청구기호(출력)
- 한국청소년정책연구원
책 소개
랭체인을 사용하여 생성 AI 앱을 개발하고자 하는 분들을 위한 완벽 입문서!
챗지피티(ChatGPT)와 같은 대화형 AI의 '두뇌'는 대규모 언어 모델(LLM: Large Language Model)이다. ChatGPT의 API가 공개된 이후, 많은 기업과 엔지니어가 경쟁적으로 LLM 응용 프로그램 개발에 착수했는데, 이러한 개발을 효율화하는 도구가 랭체인(LangChain)이다. 랭체인은 파이썬(Python) 등에서 호출할 수 있는 라이브러리 중 하나로, '챗지피티 같은 언어 생성 AI를 사용한 애플리케이션 개발에 유용한 도구 모음'과 같은 것이다. 언어 생성 AI 모델의 라이브러리는 많지만, 랭체인이 기능의 풍부함과 사용의 용이성 등에서 뛰어나 현재는 사실상의 표준이 됐다. 이 책은 랭체인을 사용해 애플리케이션을 개발하면서 랭체인의 기능을 자세히 설명한다.
★ 이 책에서 다루는 내용 ★
◎ 랭체인의 각 모듈을 활용해 AI 애플리케이션을 개발하는 방법을 이해한다.
◎ 다양하고 실용적인 예제 코드를 통해 구체적인 개발 접근 방식을 배운다.
◎ 파이썬과 비주얼 스튜디오 코드(VS Code)를 이용한 개발 방법을 익혀 여러 플랫폼에서의 개발에 적용한다.
◎ 프롬프트 엔지니어링의 기초를 배워 AI와 대화하는 방법을 익힌다.
챗지피티(ChatGPT)와 같은 대화형 AI의 '두뇌'는 대규모 언어 모델(LLM: Large Language Model)이다. ChatGPT의 API가 공개된 이후, 많은 기업과 엔지니어가 경쟁적으로 LLM 응용 프로그램 개발에 착수했는데, 이러한 개발을 효율화하는 도구가 랭체인(LangChain)이다. 랭체인은 파이썬(Python) 등에서 호출할 수 있는 라이브러리 중 하나로, '챗지피티 같은 언어 생성 AI를 사용한 애플리케이션 개발에 유용한 도구 모음'과 같은 것이다. 언어 생성 AI 모델의 라이브러리는 많지만, 랭체인이 기능의 풍부함과 사용의 용이성 등에서 뛰어나 현재는 사실상의 표준이 됐다. 이 책은 랭체인을 사용해 애플리케이션을 개발하면서 랭체인의 기능을 자세히 설명한다.
★ 이 책에서 다루는 내용 ★
◎ 랭체인의 각 모듈을 활용해 AI 애플리케이션을 개발하는 방법을 이해한다.
◎ 다양하고 실용적인 예제 코드를 통해 구체적인 개발 접근 방식을 배운다.
◎ 파이썬과 비주얼 스튜디오 코드(VS Code)를 이용한 개발 방법을 익혀 여러 플랫폼에서의 개발에 적용한다.
◎ 프롬프트 엔지니어링의 기초를 배워 AI와 대화하는 방법을 익힌다.
목차
1장: 챗지피티와 랭체인
01. 챗지피티와 언어 모델에 관해 알아보기
-챗지피티란?
-OpenAI의 API에서 사용할 수 있는 대표적인 두 가지 언어 모델
-OpenAI 이외의 언어 모델 알아보기
02. 랭체인 개요
-언어 모델을 이용한 애플리케이션 개발
-랭체인으로 언어 모델을 이용한 애플리케이션 개발이 쉬워진다
-랭체인에 준비된 6개의 모듈
03. 랭체인을 이용한 애플리케이션 예시
-PDF에 대해 질문할 수 있는 챗봇
-파일 상호작용 및 인터넷 검색이 가능한 챗봇
04. 실습 준비
-파이썬 실행 환경 구축
-VS Code에서 파이썬을 이용한 개발이 쉬워지는 확장 기능
-OpenAI API 키 받기
-환경 변수에 API 키 설정하기
05. OpenAI의 API를 호출해 작동을 확인한다
-Chat 모델의 API를 호출해 보자
2장: Model I/O - 언어 모델을 다루기 쉽게 만들기
01. 언어 모델을 이용한 응용 프로그램 작동 방식
-언어 모델 호출이란?
-Model I/O는 랭체인의 가장 기본적인 모듈이다
-Model I/O를 구성하는 3개의 서브모듈
-Language models를 사용해 gpt-3.5-turbo 호출하기
-PromptTemplate로 변수를 프롬프트에 전개하기
-PromptTemplate에서 제공하는 다른 기능들
-Language models와 PromptTemplate의 결합
-목록 형식으로 결과 받기
02. Language models - 사용하기 쉬운 모델
-통일된 인터페이스로 사용하기 쉬움
___Chat models와 LLMs
___Language models의 편리한 기능
03. Templates - 프롬프트 구축의 효율성 향상
___프롬프트 엔지니어링을 통한 결과 최적화
04. Output parsers - 출력 구조화
___결과를 날짜와 시간 형식으로 받아보기
___출력 형식을 직접 정의하기
___잘못된 결과가 반환될 때 수정을 지시할 수 있게 한다
▣ 3장: Retrieval - 알지 못하는 데이터를 다루기
01. 언어 모델이 미지의 데이터를 처리할 수 있게 하려면
___모르는 정보에 기반한 답변을 할 수 있는 구조
___답변에 필요한 문장을 찾는 방법이 중요
___유사 문장 검색을 위해 필요한 벡터화란?
___언어 모델을 사용해 텍스트를 벡터화하기
___벡터 유사도 검색
___벡터 유사도 검색에서 RAG를 통합하는 구체적인 절차
___사전 준비
___검색 및 프롬프트 구축
02. 주어진 PDF를 기반으로 답변하는 챗봇 만들기
___PDF에서 문장 불러오기
___문장 나누기
___분할된 문장을 벡터화해 데이터베이스에 저장한다
___벡터 데이터베이스에서 검색 실행하기
___검색 결과와 질문을 조합해 질문에 답하게 한다
___채팅 화면 만들기
___채팅 화면에서 질문을 입력할 수 있게 하기
___채팅 시작 시 파일 업로드 가능
03. RetrievalQA로 QA 시스템 구축이 쉬워진다
___RetrievalQA란?
___RetrievalQA로 코드를 간단하게
04. 준비된 Retrievers를 사용해 위키백과를 정보원으로 활용
___Retrievers는 문서를 검색하는 기능 세트
___Retrievers에서 어떤 검색을 할지 제어하는 방법
▣ 4장: Memory - 과거의 대화를 장·단기 기억하기
01. 언어 모델에서 대화란 무엇인가
___HumanMessage와 AIMessage를 번갈아 가며 대화한다
02. 문맥에 맞는 답변을 할 수 있는 챗봇 만들기
___Chat models로 대화 기록을 기반으로 한 응답을 하게 하는 것
___ConversationChain을 통해 알기 쉽게 처리
03. 히스토리를 데이터베이스에 저장하고 영속화하기
___데이터베이스에 저장해 대화 기록을 영속화할 수 있다
___데이터베이스 준비하기
___환경 변수에 레디스 정보 설정하기
___레디스를 사용해 대화를 영속화한다
04. 여러 개의 대화 기록을 가질 수 있는 챗봇 만들기
___세션 ID를 바꿔서 대화 기록 전환하기
05. 매우 긴 대화 기록에 대응한다
___대화 기록이 너무 길어지면 언어 모델을 호출할 수 없다
___오래된 대화 삭제하기
___대화를 요약해 토큰 수 제한에 대응한다
▣ 5장: Chains - 여러 프로세스를 통합
01. 다중 처리를 정리할 수 있다
___Chains는 일련의 과정을 정리할 수 있다
02. 여러 모듈을 쉽게 조합할 수 있는 Chains
___LLMChain을 사용해 여러 모듈을 통합하는 방법
___ConversationChain으로 기억을 가진 애플리케이션 개발이 쉬워진다
___Chains에서 어떤 처리가 이뤄지고 있는지 자세히 보기
03. 특정 기능에 특화된 Chains
___특정 URL에 접속해 정보를 얻게 하는 방법
04. Chains 자체 정리하기
___Chains 자체를 순서대로 실행하는 SimpleSequentialChain
▣ 6장: Agents - 자율적으로 외부와 상호작용해 언어 모델의 한계를 뛰어넘기
01. 외부와 상호작용하면서 자율적으로 행동하는 Agents
___언어 모델에 도구를 부여할 수 있다
___주어진 URL에서 정보를 얻게 하기
02. Tool을 추가해 Agent가 할 수 있는 일을 늘리기
___Agent가 할 수 있는 것은 전달하는 Tool에 따라 달라진다
___환경 변수에 SerpApi의 API 키 설정하기
___google-search-results 설치하기
03. Tool을 직접 제작해 기능 확장하기
___Tool을 직접 만들어서 할 수 있는 일의 폭을 더욱 넓힌다
04. Retrievers를 사용해 문장을 검색하는 Tool 만들기
___Retrievers는 Tool로 변환할 수 있다
05. 문맥에 맞게 답변하는 에이전트 만들기
___대화 기록을 보관하는 에이전트 생성하기
▣ 7장: Callbacks - 다양한 이벤트 발생 시 처리하기
01. Callbacks 모듈로 할 수 있는 일 알아보기
___로그 수집 및 모니터링, 다른 애플리케이션과 연동 가능
02. Callbacks 모듈을 사용해 외부 라이브러리와 연동하기
___준비된 클래스를 사용해 외부 라이브러리와 연동할 수 있다
03. 로그를 터미널에 표시할 수 있는 Callbacks 만들기
___Callbacks 모듈을 직접 제작해 이벤트 발생 시 처리를 수행한다
▣ 부록: 랭체인에 대해 더 자세히 알아보는 팁
01. 공식 문서의 사용 사례에서 배우기
___공식 문서 보기
___Code understanding
___Tagging
02. 랭체인의 공식 블로그 및 기타 소스 확인
___랭체인 공식 블로그
___awesome-langchain으로 랭체인 관련 정보 수집하기
___랭체인과 연동할 수 있는 언어 모델 및 외부 시스템 확인하기