테마
LangChain 소개와 환경설정
LangChain이 무엇이고, 왜 필요한지 이해한 뒤 로컬 개발 환경을 구성합니다
학습 목표
- LangChain의 역할과 핵심 흐름을 이해한다
- 공식 문서가 초심자에게 어려운 이유를 파악한다
- Ollama를 설치하고 로컬에서 LLM을 실행한다
- 개발 환경(가상환경, 패키지)을 구성한다
1. LangChain이란?
LangChain은 LLM(Large Language Model)을 활용한 애플리케이션을 쉽게 만들 수 있도록 도와주는 Python 프레임워크입니다.
핵심은 단순합니다. 프롬프트를 작성하고, LLM에게 전달하고, 응답을 처리하는 것입니다.
LangChain이 해주는 일을 정리하면 이렇습니다:
| 역할 | 설명 | LangChain 도구 |
|---|---|---|
| 프롬프트 구성 | 템플릿으로 프롬프트를 유연하게 작성 | PromptTemplate, ChatPromptTemplate |
| LLM 호출 | 다양한 모델을 동일한 인터페이스로 호출 | ChatOllama, ChatOpenAI, ChatAnthropic |
| 응답 처리 | 결과를 문자열, JSON 등 원하는 형식으로 변환 | OutputParser, Pydantic |
| 체인 구성 | 여러 단계를 파이프라인으로 연결 | LCEL, Runnable |
2. 공식 문서가 어려운 이유
LangChain 공식 문서에는 튜토리얼과 How-to 가이드가 매우 자세하게 있습니다. 하지만 초심자에게는 핵심보다 부가 기능 설명이 너무 많아서 무엇부터 봐야 할지 막막합니다.
요리에 비유하면 이런 느낌입니다:
공식 문서는 이미 LangChain을 알고 있는 사람에게는 훌륭합니다. "이런 것도 되는구나!"를 발견할 수 있거든요. 하지만 처음 배우는 사람에게는 핵심 흐름을 먼저 이해하는 것이 중요합니다.
이 학습 자료에서는 다음 순서로 진행합니다:
- LLM 호출하는 법 - 모델을 불러서 질문하기
- 프롬프트 작성하는 법 - 질문을 잘 구성하기
- 답변 처리하는 법 - 결과를 원하는 형태로 변환하기
3. 로컬 LLM vs 상용 LLM
LLM을 사용하는 방법은 크게 두 가지입니다:
학습 단계에서는 Ollama(로컬 모델)부터 시작하는 것을 권장합니다. 무료이고 설치가 간단하기 때문입니다.
주요 로컬 모델
| 모델 | 파라미터 | 특징 |
|---|---|---|
| DeepSeek | 1.5B ~ 671B | 추론(Reasoning) 모델, Think 토큰 포함 |
| Llama 3.2 | 1B, 3B | Meta 개발, 가볍고 빠름 |
| Llama 3.3 | 70B | Llama 3.1 405B와 유사 성능, 빠른 속도 |
| EXAONE (엑사원) | 32B | LG 개발, 공식 한국어 지원 |
한국어가 필요하다면 EXAONE을 추천합니다. Llama 3.1 405B도 한국어 성능이 괜찮지만 공식 지원은 아닙니다.
4. Ollama 설치
4.1 Ollama 다운로드
- ollama.com 접속
- Download 클릭
- 운영체제 선택 (Mac / Windows / Linux)
- 다운로드된 파일 실행
설치가 완료되면 상단 메뉴바(Mac)에 Ollama 아이콘이 나타납니다.
4.2 모델 다운로드(Pull)
터미널에서 ollama pull 명령으로 모델을 로컬에 저장합니다.
bash
# Llama 3.2 1B 모델 다운로드 (약 30초 ~ 1분)
ollama pull llama3.2:1b
# DeepSeek 1.5B 모델 다운로드
ollama pull deepseek-r1:1.5b팁: 처음에는 1B ~ 1.5B 크기의 작은 모델부터 시작하세요. 큰 모델(예: DeepSeek 671B = 400GB 이상)은 일반 컴퓨터에서 감당할 수 없습니다.
4.3 모델 실행 확인
bash
# 모델 직접 실행 (대화형)
ollama run llama3.2:1b
# 다운로드된 모델 목록 확인
ollama list5. 개발 환경 구성
5.1 가상환경 생성
가상환경은 pyenv, Anaconda, Miniconda, virtualenv 중 편한 것을 사용하면 됩니다.
bash
# pyenv 사용 예시
pyenv virtualenv 3.11 langchain-basics
pyenv activate langchain-basics
# virtualenv 사용 예시
python -m venv langchain-basics
source langchain-basics/bin/activate # Mac/Linux5.2 필수 패키지 설치
bash
# LangChain + Ollama 연동 패키지
pip install langchain langchain-ollama
# Jupyter 노트북 사용 시
pip install ipykernel
# OpenAI 모델 사용 시 (선택)
pip install langchain-openai python-dotenv최신 LangChain Python 기준으로 Ollama 연동은 별도 패키지인 langchain-ollama와 ChatOllama 클래스를 사용한다.
5.3 첫 번째 코드 실행
python
from langchain_ollama import ChatOllama
# LLM 선언 (로컬 Llama 3.2 1B 모델)
llm = ChatOllama(model="llama3.2:1b")
# LLM 호출
response = llm.invoke("What is the capital of France?")
print(response)실행 결과로 AIMessage 객체가 반환됩니다:
AIMessage(content='The capital of France is Paris.', ...)여기서 content가 LLM의 실제 응답 텍스트입니다.
핵심 정리
- LangChain은 LLM 애플리케이션을 만드는 Python 프레임워크
- 핵심 흐름: 프롬프트 작성 → LLM 호출 → 응답 처리
- Ollama로 로컬에서 무료로 LLM을 실행할 수 있음
- 작은 모델(1B~1.5B)부터 시작하는 것을 권장
- 한국어가 필요하면 EXAONE 모델 추천