
LangChain에서 OpenAI 모델을 사용하기 위해 필요한 패키지를 설치합니다.
pip install langchain-openai langchain-core
| 패키지 | 설명 |
|---|---|
langchain-openai | OpenAI 모델 연동 (ChatOpenAI) |
langchain-core | 메시지 타입 (HumanMessage, SystemMessage 등) |
OpenAI의 GPT 모델을 사용하기 위해 ChatOpenAI 객체를 생성합니다. API 키는 api_key 파라미터로 전달합니다.
from langchain_openai import ChatOpenAI
# ChatOpenAI 객체 생성
llm = ChatOpenAI(
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxx", # OpenAI API 키
model="gpt-4o-mini",
temperature=0.7
)
| 파라미터 | 설명 |
|---|---|
api_key | OpenAI API 키 |
model | 사용할 GPT 모델 지정 (예: gpt-4o-mini, gpt-4) |
temperature | 응답의 창의성 조절 (0: 일관된 응답, 1: 다양한 응답) |
max_tokens | 생성할 최대 토큰 수 |
LangChain에서는 대화를 구성하는 세 가지 메시지 타입을 제공합니다.
from langchain_core.messages import HumanMessage, SystemMessage, AIMessage
| 메시지 타입 | 역할 | 예시 |
|---|---|---|
SystemMessage | AI의 역할과 행동 방식 정의 | "너는 친절한 여행 가이드야" |
HumanMessage | 사용자의 질문이나 요청 | "서울에서 가볼만한 곳 추천해줘" |
AIMessage | AI의 응답 (대화 기록용) | "경복궁을 추천드립니다" |
가장 기본적인 대화 방식입니다.
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
llm = ChatOpenAI(
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxx",
model="gpt-4o-mini"
)
# 단일 메시지 전송
response = llm.invoke([HumanMessage(content="안녕하세요!")])
print(response.content)
시스템 메시지로 AI의 역할을 설정할 수 있습니다.
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
llm = ChatOpenAI(
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxx",
model="gpt-4o-mini"
)
# 시스템 메시지로 AI 역할 설정
messages = [
SystemMessage(content="너는 친절한 한국어 선생님이야. 모든 답변은 한국어로 해줘."),
HumanMessage(content="Hello, how are you?")
]
response = llm.invoke(messages)
print(response.content)
이전 대화 내용을 기억하면서 연속적인 대화를 구현할 수 있습니다.
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage, AIMessage
llm = ChatOpenAI(
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxx",
model="gpt-4o-mini"
)
# 대화 히스토리 구성
messages = [
SystemMessage(content="너는 요리 전문가야."),
HumanMessage(content="김치찌개 만드는 법 알려줘"),
AIMessage(content="김치찌개는 김치, 돼지고기, 두부를 넣고 끓이면 됩니다."),
HumanMessage(content="거기에 뭘 더 넣으면 맛있을까?")
]
response = llm.invoke(messages)
print(response.content)
invoke() 메서드의 응답은 AIMessage 객체로 반환됩니다.
response = llm.invoke([HumanMessage(content="안녕!")])
# 응답 내용 확인
print(response.content) # 응답 텍스트
print(response.response_metadata) # 토큰 사용량 등 메타데이터
{
'token_usage': {
'completion_tokens': 15,
'prompt_tokens': 10,
'total_tokens': 25
},
'model_name': 'gpt-4o-mini',
'finish_reason': 'stop'
}
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
# 1. ChatOpenAI 객체 생성
llm = ChatOpenAI(
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxx", # OpenAI API 키
model="gpt-4o-mini",
temperature=0.7
)
# 2. 메시지 구성
messages = [
SystemMessage(content="너는 친절한 AI 비서야. 항상 공손하게 답변해줘."),
HumanMessage(content="오늘 날씨가 어때?")
]
# 3. 응답 받기
response = llm.invoke(messages)
# 4. 결과 출력
print("AI 응답:", response.content)
print("사용 토큰:", response.response_metadata.get('token_usage'))