작성
·
20
0
노드에게 데이터를 전달하려고 하는데요.
from langgraph.graph import START, END
graph_builder.add_edge(START, 'order_detection_agent')
graph_builder.add_conditional_edges('order_detection_agent', should_continue_user_info, [END, 'parser_agent'])
graph_builder.add_edge('parser_agent', END)
구조는 이러한데,
def order_detection_agent(state: AgentState) -> AgentState:
products = get_products()
query = state['question']
rag_chain = order_detection_prompt | llm | StrOutputParser()
response = rag_chain.invoke({'query': query, 'products': products})
print("order_agent 주문 판단 여부:", response)
print(products['products'])
if response.strip().lower() == 'true':
state['products'] = products['products']
return 'parser_agent', state
return {'message': '주문이 아닌 것으로 판단.'}
이 노드에서 return 'parser_agent', state
이런식으로 노드별로 데이터 전달이 가능한 것은 확인하였습니다. 다만, should_continue를 통과하게 되면 에러가 나는데 should_continue를 통과하여 데이터를 전달할 수는 없나요?
답변 1
0
안녕하세요! 좋은 질문 감사합니다.
should_continue
는 node같아보이지만 다음에 어떤 node를 실행할 지 결정하는 edge의 역할을 하기 때문에, 만약 도구 실행 전 새로운 값을 전달하고 고 싶으시다면, tools
로 가기전에 별도의 node를 작성하고, 해당 node의 작업이 끝나면 tools
를 실행하는 식으로 작업하셔야 합니다.