LangChain 기본 사용법
1. 설치
1
2
3
4
5
6
7
8
| # 랭체인 : LLM 애플리케이션을 만들기 위한 Core Framework
pip install langchain
# 랭체인 OpenAI : OpenAI 모델을 LangChain에 연결시켜주는 Integration Package
pip install langchain-openai
# Google GenAI : Google 의 LLM 모델을 LangChain에 연결시켜주는 Integration Package
pip install langchain-google-genai
|
2. API 키 설정
- LangChain 에서는 API 키를 설정하는 두 가지 방식이 있습니다.
(1) 환경변수에 API KEY 저장
- 환경변수에 API KEY를 저장해놓으면, 패키지가 필요할 때 읽어들여 사용합니다.
- OpenAI 모델은 OPENAI_API_KEY 환경변수에 저장하면 되며
- Google 모델은 GOOGLE_API_KEY 환경변수에 저장하면 됩니다.
1
2
3
4
5
| # OpenAI
from langchain_openai import ChatOpenAI
os.environ["OPENAI_API_KEY"] = "MyOpenAIAPIKey..."
model = ChatOpenAI(model="gpt-4o-mini")
|
1
2
3
4
5
| # Google
from langchain_google_genai import ChatGoogleGenerativeAI
os.environ["GOOGLE_API_KEY"] = "MyGoogleAPIKey..."
model = ChatGoogleGenerativeAI(model="gemini-1.5-pro")
|
(2) 클라이언트를 선언할 때 API KEY를 할당
- 외부 LLM 모델과 소통하는 클라이언트를 선언할 때 API KEY를 할당해줄 수도 있습니다.
1
2
3
4
| # OpenAI
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-4o-mini", api_key = "MyOpenAIAPIKey...")
|
1
2
3
4
| # Google
from langchain_google_genai import ChatGoogleGenerativeAI
model = ChatGoogleGenerativeAI(model="gemini-1.5-pro", api_key="YOUR-API-KEY")
|
3. 모델 선언
(1) 선언 방법
- Integration Package의 사용법에 따라 사용합니다.
- 예를 들어 OpenAI는
langchain_openai.ChatOpenAI 의 인스턴스를 선언합니다.
- Google은
langchain_google_genai.ChatGoogleGenerativeAI 의 인스턴스를 선언합니다.
- 모델 인스턴스를 선언할 때에는, 사용할 모델(버전)의 종류를 지정합니다.
1
2
| from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-4o-mini")
|
(2) 사용 가능한 OpenAI 모델
- 자세한 내용은 OpenAI API DOC 참고
| Model |
Model ID |
Description |
| GPT-5.4 |
gpt-5.4 |
Best intelligence at scale for agentic, coding, and professional workflows |
| GPT-5.4 mini |
gpt-5.4-mini |
Our strongest mini model yet for coding, computer use, and subagents |
| GPT-5.4 nano |
gpt-5.4-nano |
Our cheapest GPT-5.4-class model for simple high-volume tasks |
| GPT-4o mini |
gpt-4o-mini |
Fast, affordable small model for focused tasks |
| … |
|
|
Models - OpenAI API
(3) 사용 가능한 Google 모델
- 자세한 내용은 Google API DOC 참고
| Model |
Model ID |
Description |
| Gemini 3.1 Pro |
gemini-3.1-pro-preview |
• 더 나은 사고력, 향상된 토큰 효율, 더 사실에 기반한 일관된 경험 • 정확한 도구 사용 • 안정적인 다단계 실행이 필요한 에이전트 워크플로에 최적화 |
| Gemini 3 Flash |
gemini-3-flash-preview |
• 멀티모달 이해 부분에서 세계 최고 수준의 모델 • Google의 가장 강력한 에이전트형 및 바이브 코딩 모델 • 최첨단 추론을 기반으로 더 풍부한 시각화와 더 심층적인 상호작용 |
| Gemini 3.1 Flash-Light |
gemini-3.1-flash-lite-preview |
• 가장 비용 효율적인 멀티모달 모델 • 고빈도 경량 작업에 가장 빠른 성능을 제공 • 대용량 에이전트 작업, 간단한 데이터 추출 • 지연 시간이 매우 짧은 애플리케이션에 가장 적합 |
| Gemini 2.5 Flash |
gemini-2.5-flash |
• 가격 대비 성능이 가장 우수 • 다양한 기능을 제공하는 모델 • 사고가 필요한 대규모 처리, 짧은 지연 시간, 대량 작업 • 및 에이전트 사용 사례에 가장 적합 |
| … |
|
|
모델 - Gemini API Google AI for Developers
4. 메시지의 종류
- LangChain 에서 메시지 객체는 사용자의 발화나 AI의 응답, 또는 시스템 메시지를 담습니다.
- 메시지 클래스는
langchain_core 의 messages 모듈 안에 정의되어 있습니다.
- 각 메시지의 인스턴스를 만들 때
content 파라미터에 메시지 내용을 넣습니다.
| 클래스 |
설명 |
openai 패키지에서는 |
HumanMessage |
사용자의 발화를 담는 메시지 클래스 |
{”role”:”user”, “content”:…} |
AIMessage |
LLM의 응답을 담는 메시지 클래스 |
{”role”:”assistant”, “content”:…} |
SystemMessage |
시스템 메시지 클래스 |
{”role”:”system”, “content”:…} |
1
2
3
| from langchain_core.messages import HumanMessage, AIMessage, SystemMessage
user_message = HumanMessage(content="안녕? 오늘 날씨 어때?)
|
5. LLM에 메시지 보내기
- model 인스턴스의
invoke 메서드를 이용해 LLM과 메시지를 주고 받을 수 있습니다.
invoke 메서드는 파라미터로 list[Message] 형태의 값을 담아 보냅니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI
import os
# API 키
os.environ["OPENAI_API_KEY"] = "YOUR_API_KEY"
# 모델 선언
model = ChatOpenAI(model="gpt-4o-mini")
# Message
messages = []
messages.append(HumanMessage(content="안녕? 내 이름은 Jongya야."))
# 메시지 보내기
response = model.invoke(messages)
print(response)
|
1
2
3
| content='안녕하세요, Jongya! 만나서 반가워요. 어떻게 도와드릴까요?'
additional_kwargs={'refusal': None}
response_metadata={'token_usage': .... }
|
Stream 방식
- stream 방식 출력을 위해서는
invoke 메서드 대신 stream 메서드를 사용하면 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI
import os
# API 키
os.environ["OPENAI_API_KEY"] = "YOUR_API_KEY"
model = ChatOpenAI(model="gpt-4o-mini")
response = model.stream(
[HumanMessage(content="애국가를 불러줘.")]
)
for r in response:
print(r.content, end="|")
|
1
2
| |애|국|가|의| 일부|는| 다음|과| 같습니다|:
|"|동|해| 물|과| 백|두|산|이| 마|르고| 닳|도록|..."
|
Reference
Do it! LLM을 활용한 AI 에이전트 개발 입문 (이성용 저)
Models | OpenAI API
모델 | Gemini API | Google AI for Developers
Comments