Study/AI

[LangChain] LLM과 기본 대화하기

hongeeii 2025. 8. 10.
728x90
반응형

langchain 패키지 설치

# langchain 특정 버전 설치
pip3 install langchain_openai==0.3.7

# 버전확인
pip3 show langchain_openai
 

시스템 메시지, 휴먼 메시지 보내기

import os
from langchain_openai import ChatOpenAI

# 환경변수에서 API Key 가져오기
api_key = os.getenv("OPENAI_API_KEY")

llm = ChatOpenAI(model="gpt-4.0-mini", api_key=api_key)

messages = [
   ("system", "사용자가 입력한 문장을 영어로 번역해"),
   ("human", "오늘은 피자를 먹어야지!")
]

result = llm.invoke(messages)
result
 
AIMessage(content='Today we should eat pizza!', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 6, 'prompt_tokens': 44, 'total_tokens': 50, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_name': 'gpt-3.5-turbo-0125', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None}, id='run--b0669363-6670-453c-80ee-d398aaeacdf6-0', usage_metadata={'input_tokens': 44, 'output_tokens': 6, 'total_tokens': 50, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}})
 
  • result.content 만 입력하면 필요한 부분만 가져올 수 있다.

시스템 메시지, 휴먼 메시지 객체 사용하기

messages에 지금처럼 "system", "human"등 하드코딩도 가능하지만 렝체인은 이걸 좀 더 편하게 하기 위해 객체를 제공하고 있다.

  • 렝체인 최신버전 설치
pip3 install langchain==0.3.19
 
from langchain_core.messages import HumanMessage, SystemMessage

messages = [
   SystemMessage("사용자가 입력한 문장을 영어로 번역해"),
   HumanMessage("오늘은 피자를 먹어야지!")
]

result = llm.invoke(messages)
result.content
 

렝체인 파서 사용하기

result.content처럼 특정 필드만 뽑아내기 위해 좀 더 간편한 방법을 parser로 제공한다.

from langchain_core.output_parsers import StrOutputParser
parser = StrOutputParser()
parser.invoke(result)
 
'I should eat pizza today!'
 

=> 결과: 결과물만 뽑아줌 OutputParser는 얻어온 응답값으로부터 필요한 str결과물을 뽑아오기 위해 사용한다.

Parser와 LLM 엮어서 사용하기

llm으로부터 얻어온 결과물을 parser로 넘기서 사용할 수 있다.

chain = llm | parser
chain.invoke(messages)
728x90
반응형

'Study > AI' 카테고리의 다른 글

[LangChain] 메모리 관리  (0) 2025.08.10
[LangChain] 메모리  (4) 2025.08.10
[LangChain] Parser  (5) 2025.08.10
[LangChain] PromptTemplate  (1) 2025.08.10
[LangChain] LangChain이란  (4) 2025.08.10

추천 글