root layout

패스트캠퍼스

map_to_analysts는 add_conditional_edges가 아니라 add_edges가 아닌가요?

2025.01.01 16:57 작성

질문 1)

Ch4 Map-reduce 강의에서



def map_to_analysts(state: AnalysisState):

company = state["company"]

return [

Send("financial_analyst", {"company": company, "task": "financial"}),

Send("stock_analyst", {"company": company, "task": "stock"}),

Send("market_analyst", {"company": company, "task": "market"})

]


함수를


workflow.add_conditional_edges(

START,

map_to_analysts,

{

"financial_analyst": "financial_analyst",

"stock_analyst": "stock_analyst",

"market_analyst": "market_analyst"

}

)


로 conditional_edges를 선언하시던데, 컨디셔널은 보통 조건문이 있지만 map_to_analysts는 조건문 없이 바로 보내주기 때문에 add_edges 메소드를 써야 하는 거 아닌가요??


질문 2)

그리고 이게 왜 map-reduce인지 이해하지 못 했는데, map이나 reduce 함수를 쓰신게 아니라 함수형 프로그래밍처럼 배열(이터레이션)을 비동기적으로 실행을 하고 그들을 합쳐서(reduce) 처리하기 때문에 map-to-reduce라고 명명하신건가요?



질문 3)

이건 이 질문과 다른 질문인데, 질문 대댓글이 안 되서 여기서 다시 질문 드려요. 저번에 드린 질문 중 node와 agent가 헷갈려 했는데, agent는 LLM+tool이라고 하셨어요. 근데 Ch3_03의 report_generator는 LLM을 사용하지 않는 함수여서 agent인지 헷갈려요. 그래서 https://fastcampus.co.kr/communities/questions/100042 에서 한 질문으로 tool 코드를 agent처럼 사용해도 되냐고 한 질문이 여기서 나온 거에요. tool이 하는 것과 agent가 하는 행동이 모두 프로그래밍 함수로 똑같이 보이고 add_node 매소드로 추가해주면 어떠한 목적을 위해 실행하는 걸로 보여서요. 즉 llm 기능이 있더라도 툴로 정의하고 agent에 추가해서 노드로 만들 수도 있고, llm 기능이 없지만 node로도 추가할 수 있는게 아닌가? 해서요. 좀 더 구체적으로 설명해주실 수 있을까요?





답변 

연관 질문

커뮤니티 질문보기