LangChain 으로 만드는 웹 기반 챗봇
한눈에
과정의 흐름 — 1장부터 8장까지, 챗봇 하나에 부품이 붙는 차례
시작 전에
환경설정 — Windows PC 에 가상환경을 만들고 LangChain 과 실습 패키지를 설치합니다
준비
과정 안내
로드맵과 실습 안내 — STEP 마다의 요약, 실습에 필요한 키·모델·환경
STEP 1
챗봇과 개발 환경 — LLM 챗봇의 짜임, 가상환경과 API 키 준비 요약 보기
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03이 과정에서 만들 챗봇
- 04규칙 챗봇과 LLM 챗봇
- 05다음 낱말 맞히기
- 06토큰
- 07확률과 온도
- 08메시지와 역할
- 09기억하지 못하는 LLM
- 10환각과 지식 마감일
- 11LLM 챗봇의 짜임
- 12LangChain 생태계와 쓰임새
- 13실습 지도
- 14실습 1 — 규칙 챗봇 만들고 한계 확인하기
- 15실습 2 — 다음 낱말 맞히기 모델 만들기
- 16실습 3 — 토큰 세고 요금 어림하기
- 17실습 4 — 온도로 낱말 고르기 바꾸기
- 18실습 5 — 메시지를 쌓아 대화 흉내 내기
- 19프로젝트 1 — 대화 비용 계산기 만들기
- 20정리
- 21확인문제와 해답
2장
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03가상환경
- 04pip 와 패키지
- 05VS Code 에서 가상환경 고르기
- 06API 와 API 키
- 07키를 코드에 적지 않는 까닭
- 08환경 변수와 .env
- 09OpenAI 라이브러리로 첫 호출
- 10ChatOpenAI 로 첫 호출
- 11자주 나는 오류
- 12실습 지도
- 13실습 1 — 가상환경과 패키지 점검하기
- 14실습 2 — .env 파일 만들고 읽기
- 15실습 3 — OpenAI 라이브러리로 첫 질문 보내기
- 16실습 4 — ChatOpenAI 로 묻고 응답 읽기
- 17실습 5 — 오류를 잡아 친절하게 알리기
- 18프로젝트 1 — 내 PC 점검표 만들기
- 19정리
- 20확인문제와 해답
STEP 2
LCEL 체인과 대화 기억 — 프롬프트·모델·파서 잇기, 구조화 출력, 메모리 전략 요약 보기
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03체인과 LCEL
- 04Runnable 과 invoke·batch·stream
- 05PromptTemplate
- 06ChatPromptTemplate
- 07모델 부품 ChatOpenAI 의 설정
- 08OutputParser 와 StrOutputParser
- 09파이프로 잇기와 데이터가 바뀌는 모습
- 10다양한 프롬프트 1: 역할·형식·제약 지시
- 11다양한 프롬프트 2: 퓨샷과 단계별 지시
- 12RunnablePassthrough·RunnableLambda·RunnableParallel 로 체인 넓히기
- 13실습 지도
- 14실습 1 — 프롬프트 템플릿 만들고 채워 보기
- 15실습 2 — 가짜 모델로 체인 조립하고 시험하기
- 16실습 3 — 구름다리여행 Q&A 챗봇 체인
- 17실습 4 — 다양한 프롬프트 견주기
- 18실습 5 — RunnableParallel 로 요약과 키워드 한 번에 뽑기
- 19프로젝트 1 — 여행지 소개 체인
- 20정리
- 21확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03구조화된 출력이 필요한 까닭
- 04JSON 과 JsonOutputParser
- 05Pydantic 으로 틀 정하기
- 06with_structured_output 으로 틀째 받기
- 07대화 기억의 원리
- 08MessagesPlaceholder 로 기록 자리 만들기
- 09손님마다 기록 상자 나누기
- 10최근 대화만 남기는 Window 메모리
- 11앞부분을 요약하는 Summary 메모리
- 12메모리 전략 고르기
- 13실습 지도
- 14실습 1 — Pydantic 틀로 여행 조건 확인하기
- 15실습 2 — 구조화된 출력으로 요청 글에서 조건 뽑기
- 16실습 3 — 가짜 모델로 세션별 기록 확인하기
- 17실습 4 — 이전 대화를 기억하는 여행 비서
- 18실습 5 — Window 메모리로 최근 대화만 남기기
- 19실습 6 — Summary 메모리로 앞부분 요약하기
- 20프로젝트 1 — 메모리 전략 견주기
- 21정리
- 22확인문제와 해답
STEP 3
도구와 문서로 넓히기 — Tool Calling 과 MCP 기초, PDF 로 만드는 RAG 챗봇 요약 보기
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03모델에게 도구가 필요한 까닭
- 04Tool Calling 의 흐름
- 05@tool 로 도구 만들기
- 06bind_tools 로 도구 목록 건네기
- 07ToolMessage 로 결과 돌려주기
- 08에이전트에게 고리 맡기기
- 09MCP 란 무엇인가
- 10호스트·클라이언트·서버의 짜임
- 11FastMCP 로 서버 만들고 LangChain 에 붙이기
- 12도구를 맡길 때의 안전
- 13실습 지도
- 14실습 1 — @tool 로 상품 찾기·요금 계산 도구 만들기
- 15실습 2 — 도구 실행기 만들기
- 16실습 3 — bind_tools 로 진짜 모델에게 도구 쥐여 주기
- 17실습 4 — 상품 자료 MCP 서버 만들고 붙이기
- 18실습 5 — MCP 도구를 쓰는 에이전트
- 19프로젝트 1 — 데이터를 찾아 답하는 챗봇
- 20정리
- 21확인문제와 해답
6장
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03RAG 란 무엇인가
- 04RAG 파이프라인의 두 단계
- 05PDF 문서 읽기
- 06텍스트 나누기(청킹)
- 07임베딩: 글을 숫자 목록으로
- 08연습용 임베딩과 진짜 임베딩
- 09FAISS 벡터DB 에 저장하고 검색하기
- 10검색기와 k
- 11RetrievalQA 와 LCEL 로 답하기
- 12근거 보여 주기와 모르면 모른다고 답하기
- 13실습 지도
- 14실습 1 — 여행 약관 PDF 읽어 보기
- 15실습 2 — 청킹 견주기와 조항 단위로 나누기
- 16실습 3 — 연습용 임베딩과 FAISS 로 검색 적중 재기
- 17실습 4 — RetrievalQA 와 LCEL 로 근거 붙인 답의 짜임 보기
- 18실습 5 — 진짜 임베딩으로 바꿔 끼우기
- 19프로젝트 1 — 여행 약관 챗봇 만들고 점검하기
- 20정리
- 21확인문제와 해답
STEP 4
웹 화면과 나만의 챗봇 — Streamlit 웹 화면과 배포, 최종 프로젝트 요약 보기
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03Streamlit 기초와 화면 부품
- 04위에서 아래로 다시 도는 실행 모델
- 05st.session_state 로 기억하기
- 06채팅 화면: chat_message 와 chat_input
- 07챗봇 로직과 웹 화면 잇기
- 08캐시: cache_resource 와 cache_data
- 09스트리밍 답: write_stream 과 stream
- 10비밀 값: st.secrets 와 .env
- 11배포 과정: 로컬에서 Streamlit Community Cloud 까지
- 12최종 동작 테스트: 로컬과 웹에서
- 13실습 지도
- 14실습 1 — 첫 화면 만들고 다시 실행 세기
- 15실습 2 — 대화가 쌓이는 채팅 화면
- 16실습 3 — 스트리밍 답과 키 읽기
- 17실습 4 — 진짜 모델을 붙인 채팅 화면
- 18실습 5 — 문서 챗봇 웹 화면
- 19실습 6 — 배포할 폴더 만들기
- 20프로젝트 1 — 배포 점검
- 21정리
- 22확인문제와 해답
8장
참고
참고 자료
실습에 쓰는 파일은 교안과 함께 받은 data 폴더에 있습니다.
부록
장마다 나온 용어를 한곳에 모았습니다. 위의 찾기 칸에 낱말을 넣으면 그 줄만 남습니다.
안내
읽기 전에
LLM 챗봇이 어떻게 움직이는지 이해하고, LangChain 으로 대화를 기억하고 문서에서 근거를 찾아 답하는 챗봇을 만들어 웹에 올리는 과정입니다.
- 수강 대상: 파이썬은 아는 비전공자를 위한 과정입니다. 파이썬 문법은 설명하지 않고, LLM 과 LangChain 의 개념은 처음부터 아주 쉽게 풉니다. 수학은 중고등학교에서 배운 비율, 거듭제곱, 제곱근까지만 씁니다.
- 장마다 "먼저 큰 그림부터"로 시작해 본문, 실습, 프로젝트, 정리, 확인문제 순서로 이어집니다.
- 본문은 일상의 비유와 그림으로 먼저 설명하고 글로 정리합니다.
- 코드 상자의 "복사" 단추를 누르면 코드가 복사됩니다.
- 과정 내내 가상의 여행사 "구름다리여행"의 챗봇을 만든다고 보고 진행합니다. 여행사 이름, 상품, 규정, 대화는 모두 지어낸 것입니다.
- 실습 데이터는 연습용으로 만든 작은 가상 데이터입니다. 실제 회사나 고객의 데이터가 아닙니다.
- 1장의 실습은 API 키 없이 돌아갑니다. 진짜 모델은 2장에서 교수자가 나눠 준 OpenAI API 키로 처음 부릅니다.
- 실행 결과는 Windows 11, Python 3.14.6, langchain 1.4.7, langchain-core 1.7.3 에서 얻은 것입니다.