🤖 LangChain으로 나만의 AI 만들기 1탄: 초간단 번역 챗봇
안녕하세요! AI에 관심은 많지만 코딩은 아직 어려운 분들을 위해, 요즘 가장 핫한 AI 개발 도구 LangChain에 대해 알아보려고 해요.
LangChain이 뭐냐고요? AI 앱을 레고 블록처럼 쉽고 재미있게 조립할 수 있게 도와주는 마법 같은 도구랍니다! ✨
오늘은 LangChain의 가장 기본적인 기능만으로 '영어를 다른 언어로 번역하는 간단한 AI'를 만들어 볼 거예요. 이 과정만 따라오시면 LangChain의 핵심 원리를 자연스럽게 이해하게 되실 겁니다.
시작하기 전에: 핵심 용어 미리보기
이 글을 더 쉽게 이해하기 위해, 앞으로 계속 나올 핵심 용어들을 먼저 간단히 알아볼까요?
- 언어 모델 (Language Model): AI의 '뇌'🧠 역할을 해요. 우리가 질문하면 똑똑하게 대답해주는 바로 그 부분입니다.
- 프롬프트 템플릿 (Prompt Template): AI에게 내리는 **'임무 지시서'📝**예요. "너는 지금부터 번역가야" 처럼 AI의 역할과 할 일을 정해주는 틀이죠.
- 체인 (Chain): 위 부품들을 파이프(|)로 연결하여 데이터가 흘러가는 **'하나의 파이프라인'🔗**을 만드는 것을 의미해요. LangChain의 가장 핵심적인 개념입니다.
준비운동: 설치와 설정
본격적으로 시작하기 전에, 딱 두 가지만 준비해 주세요.
1. LangChain 설치
컴퓨터의 터미널(명령창)을 열고 아래 명령어를 입력해 주세요.
pip install langchain "langchain[google-genai]"
이 한 줄이면 LangChain과 Google의 Gemini 모델을 사용할 준비가 끝나요!
2. LangSmith 설정 (선택 사항)
AI가 어떤 생각을 하는지 엿보고 싶다면 LangSmith를 설정해두는 게 좋아요. LangSmith 웹사이트에서 가입하고 API 키를 발급받은 뒤, 아래처럼 환경 변수를 설정하면 된답니다. (어려우면 건너뛰어도 괜찮아요!)
export LANGSMITH_TRACING="true"
export LANGSMITH_API_KEY="여러분의_API_키를_여기에_붙여넣으세요"
1단계: AI의 뇌(언어 모델)와 직접 대화하기
먼저 AI의 뇌, 즉 언어 모델을 불러와서 직접 말을 걸어볼게요. 여기서는 Google의 gemini-pro 모델을 사용해 보겠습니다.
# 구글 API 키를 설정합니다. (없다면 구글에서 발급받으세요!)
import os
os.environ["GOOGLE_API_KEY"] = "여러분의_구글_API_키"
# LangChain에서 채팅 모델을 불러옵니다.
from langchain_google_genai import ChatGoogleGenerativeAI
model = ChatGoogleGenerativeAI(model="gemini-pro")
# AI에게 메시지를 보내봅시다!
from langchain_core.messages import HumanMessage, SystemMessage
messages = [
SystemMessage(content="영어를 이탈리아어로 번역해줘."), # AI에게 역할을 부여 (너는 번역가야!)
HumanMessage(content="hi!"), # 내가 AI에게 하는 말
]
# 모델을 호출해서 답변을 받아옵니다.
response = model.invoke(messages)
print(response.content)
결과:
Ciao!
SystemMessage는 AI의 정체성이나 역할을 정해주는 시스템 메시지고, HumanMessage는 우리가 직접 입력하는 사용자 메시지예요. 이렇게 역할을 정해주고 질문을 하니 AI가 이탈리아어로 "Ciao!"라고 정확히 대답했네요! 🥳
2단계: 재사용 가능한 임무 지시서(프롬프트 템플릿) 만들기
매번 번역할 때마다 SystemMessage를 쓰기 귀찮겠죠? 이럴 때 프롬프트 템플릿을 사용하면 아주 편해요. 마치 편지지의 빈칸 채우기처럼, 특정 부분만 바꿔서 계속 재사용할 수 있는 명령어 틀을 만드는 거예요.
from langchain_core.prompts import ChatPromptTemplate
# {language}와 {text} 부분만 나중에 채워 넣을 수 있는 템플릿을 만듭니다.
template = ChatPromptTemplate.from_messages([
("system", "영어를 {language}(으)로 번역해줘."),
("user", "{text}"),
])
# 템플릿의 빈칸을 채워볼까요?
prompt = template.invoke({"language": "이탈리아어", "text": "hi!"})
print(prompt)
invoke를 사용해 language와 text 변수에 원하는 값을 넣어주니, 아까 우리가 직접 만들었던 메시지 목록과 똑같은 결과물이 뚝딱 만들어졌어요. 이제 이 템플릿만 있으면 어떤 언어로든 쉽게 번역을 요청할 수 있겠죠?
3단계: 모든 것을 연결하여 나만의 번역기 완성!
이제 마지막 단계입니다. 방금 만든 '임무 지시서(템플릿)'와 'AI의 뇌(모델)'를 하나로 연결해 볼게요. LangChain에서는 이 연결 과정을 파이프(|) 기호로 아주 간단하게 표현할 수 있어요.
# 1. 프롬프트 템플릿과 모델을 파이프(|)로 연결해서 '체인(Chain)'을 만듭니다.
chain = template | model
# 2. 체인을 실행(invoke)하면서 변수 값만 넘겨줍니다.
response = chain.invoke({"language": "프랑스어", "text": "how are you?"})
# 3. 결과 확인!
print(response.content)
결과:
Comment ça va ?
template | model 이 코드가 바로 LangChain의 핵심이에요! 사용자가 입력한 정보가 템플릿을 거쳐 AI에게 전달되는 이 흐름을 **체인(Chain)**이라고 부릅니다. 이제 language와 text 값만 바꾸면 어떤 문장이든 원하는 언어로 번역하는 나만의 AI가 완성된 거예요! 🚀
마무리하며
어떠셨나요? 생각보다 정말 간단하죠? 오늘 우리는 LangChain의 가장 기본적이면서도 강력한 세 가지 요소인 언어 모델, 프롬프트 템플릿, 그리고 이 둘을 잇는 체인에 대해 배웠습니다.
이 기본기만 잘 익혀두면, 앞으로 훨씬 더 복잡하고 재미있는 AI 애플리케이션(챗봇, 문서 요약, 코드 생성 등)을 자유자재로 만들 수 있답니다. 다음 시간에는 오늘 배운 내용을 바탕으로 좀 더 재미있는 기능을 만들어 볼게요! 기대해주세요! 👍
'개발 이야기 > [스터디] LLM' 카테고리의 다른 글
| LangChain Key Features: Structured Data (4) | 2025.08.08 |
|---|---|
| 랭체인(LangChain) 설치: 패키지 완벽 가이드 (0) | 2025.08.08 |
| AI, 갑자기 이상해진다고? '페르소나 벡터'로 AI 성격을 관리한다! (8) | 2025.08.04 |
| 요즘 세상이 왜 이렇게 이상하게 느껴질까요? (1) | 2025.07.29 |
| AI는 '부조종사'가 정답일까? 우리가 놓치고 있는 'HUD' 디자인의 힘 (2) | 2025.07.29 |