상세정보
미리보기
랭체인 완벽 입문
- 저자
- 타무라 하루카 저/최용 역
- 출판사
- 위키북스
- 출판일
- 2024-03-15
- 등록일
- 2024-11-26
- 파일포맷
- PDF
- 파일크기
- 7MB
- 공급사
- YES24
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
랭체인을 사용하여 생성 AI 앱을 개발하고자 하는 분들을 위한 완벽 입문서!챗지피티(ChatGPT)와 같은 대화형 AI의 ‘두뇌’는 대규모 언어 모델(LLM: Large Language Model)이다. ChatGPT의 API가 공개된 이후, 많은 기업과 엔지니어가 경쟁적으로 LLM 응용 프로그램 개발에 착수했는데, 이러한 개발을 효율화하는 도구가 랭체인(LangChain)이다. 랭체인은 파이썬(Python) 등에서 호출할 수 있는 라이브러리 중 하나로, ‘챗지피티 같은 언어 생성 AI를 사용한 애플리케이션 개발에 유용한 도구 모음’과 같은 것이다. 언어 생성 AI 모델의 라이브러리는 많지만, 랭체인이 기능의 풍부함과 사용의 용이성 등에서 뛰어나 현재는 사실상의 표준이 됐다. 이 책은 랭체인을 사용해 애플리케이션을 개발하면서 랭체인의 기능을 자세히 설명한다.
저자소개
1990년 도쿄에서 태어났다. 프리랜서 풀스택 엔지니어로서 다수의 웹서비스를 처음부터 개발하고 운영했다. 베이스푸드(BASE FOOD) 주식회사에 첫 번째 엔지니어로 참여해 정기 구매 시스템을 구축했으며, 그 후 상장까지 프런트엔드, 백엔드, 인프라 전부를 담당했다. ChatGPT에 큰 충격을 받고 AI 관련 기술에 관심을 갖게 되었으며, 동영상에 번역 자막을 붙일 수 있는 웹 서비스를 개인적으로 개발해 출시했다(konjac.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으로 랭체인 관련 정보 수집하기 ___랭체인과 연동할 수 있는 언어 모델 및 외부 시스템 확인하기