LangGraph 공식문서를 번역한 내용입니다. 필요한 경우 부연 설명을 추가하였고 이해하기 쉽게 예제를 일부 변경하였습니다. 문제가 되면 삭제하겠습니다.
https://langchain-ai.github.io/langgraph/how-tos/create-react-agent-system-prompt/
여기서는 ReAct 에이전트에 사용자 정의 시스템 프롬프트를 추가하는 방법을 보여준다. ReAct 에이전트를 시작하는 방법에 대한 튜토리얼은 이 링크를 참조하자.
사용자 정의 시스템 프롬프트는 state_modifier
파라미터에 문자열을 전달함으로써 추가할 수 있다.
준비
우선, 필요한 패키지를 설치하자.
pip install langgraph langchain-openai
코드
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
load_dotenv()
model = ChatOpenAI(model="gpt-4o-mini", temperature=0)
from typing import Literal
from langchain_core.tools import tool
@tool
def get_weather(city: Literal["서울", "부산"]):
"""Use this to get weather information."""
if city == "서울":
return "서울은 흐릴것 같아요"
elif city == "부산":
return "부산은 항상 맑아요"
else:
raise AssertionError("Unknown city")
tools = [get_weather]
# 여기에 시스템 프롬프트를 추가한다
prompt = "영어로 대답해줘"
from langgraph.prebuilt import create_react_agent
graph = create_react_agent(model, tools=tools, state_modifier=prompt)
사용
def print_stream(stream):
for s in stream:
message = s["messages"][-1]
if isinstance(message, tuple):
print(message)
else:
message.pretty_print()
inputs = {"messages": [("user", "서울 날씨 어때?")]}
print_stream(graph.stream(inputs, stream_mode="values"))
================================ Human Message =================================
서울 날씨 어때?
================================== Ai Message ==================================
Tool Calls:
get_weather (call_CUmuADAsWgqddwPDXNUTtvsY)
Call ID: call_CUmuADAsWgqddwPDXNUTtvsY
Args:
city: 서울
================================= Tool Message =================================
Name: get_weather
서울은 흐릴것 같아요
================================== Ai Message ==================================
The weather in Seoul is expected to be cloudy.
LangGraph 참고 자료
- Controllability
- Persistence
- Memory
- Human-in-the-loop
- Streaming
- Tool calling
- Subgraphs
- State Management
- Other
- Prebuilt ReAct Agent
반응형