Study/AI
[LangChain] LLM과 기본 대화하기
728x90
반응형
# 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결과물을 뽑아오기 위해 사용한다.
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 |
댓글