node 함수관련 초보적인 질문하나만 드리겠습니다!
강사님 안녕하세요!
하단의 generate함수는 파라미터로 AgentState를 받고 AgentState를 리턴하는데
함수의 리턴값이 "context"를 key로 가지는 딕셔너리형태인데, 어떻게 AgentState가 되는지 궁금합니다.. ㅠㅠ
class AgentState(TypedDict):
query: str
context: List[Document]
answer: str
def retrieve(state: AgentState) -> AgentState:
"""
사용자의 질문에 기반하여 벡터 스토어에서 관련 문서를 검색합니다.
Args:
state (AgentState): 사용자의 질문을 포함한 에이전트의 현재 state.
Returns:
AgentState: 검색된 문서가 추가된 state를 반환합니다.
"""
query = state['query']
docs = retriever.invoke(query)
return {'context': docs}
답변 1
1
안녕하세요! 좋은 질문 감사합니다. 간단하게 답변드리자면 AgentState가 query, context, answer를 key로 갖는 딕셔너리이기 때문입니다. TypedDict는 각 키별로 타입을 지정한 딕셔너리라고 이해하시면 됩니다.

TypedDict 의 기본값이 비어있어서, agent_state가 빈 딕셔너리로 보이는데요, 기본값을 지정해주면 아래와 같이 값이 들어간 것을 볼 수 있습니다.

그리고 노드의 실행결과에서 {'context': docs} 만 리턴하게 되면, query 와 answer 는 이전의 값을 유지한 상태로 context 만 변경된다고 보시면 됩니다.
추가로 설명한 부분이 있다면 말씀해주세요!
1
답변이 엄청빠르시네요 ㄷㄷㄷ 감사합니다
from typing_extensions import List, TypedDict
from langchain_core.documents import Document
class AgentState(TypedDict):
query: str
context: List[Document]
answer: str
def test(state: AgentState) -> AgentState:
"""
This function takes an AgentState object, processes it, and returns the updated state.
Args:
state (AgentState): The initial state of the agent.
Returns:
AgentState: The updated state of the agent.
"""
# Example processing: just return the state as is
return {"anwser": "hello world!"}
initial_state = AgentState({"query":"query","context":[Document("asdf")],"answer":""})
test(initial_state)저는 처음에는 이렇게 이해를 했었습니다.
강사님 말씀은 langGraph에서 node를 실행할때 노트에 사용한 함수는 리턴값을 그대로 돌려주는것이 아니라, state에서 해당 키의 value만 변경하는 것으로 이해하면될까요??
2.3 Agentic RAG 관련 질문이 있습니다.
0
11
1
깃허브 레포지토리 확인 요청
0
45
2
제공해주신 레포가 Windows 환경에 너무 비친화적입니다.
0
74
2
마크다운을 텍스트 파일로 변환하기
0
74
1
max token을 제한하는게 왜 성능을 개선하게 되는걸까요?
0
76
2
pyzerox 유니코드 에러
0
97
2
영상 메타데이터 생성 관련 LLM 활용 질문
0
92
1
종합부동산세 부분 tool 사용 질문 드립니다.
0
90
2
uv sync 파이썬 버전문제 onnxruntime
-1
143
2
MCP를 활용해서 간단한 에이전트를 만들어보세요
0
121
1
PDF 형식
0
85
1
5.3 langchain-mcp-adpater를 활용한 MCP 도구 사용 tool_list 지연 사유
0
107
2
3.6 human_in_the_loop 3rd case
0
94
1
summary 를. 시스템메세지에 추가하는 부분에 관하여
0
100
3
병렬 처리 중 retrieve 관련 궁금한 사항
0
88
1
query 에 대한 answer 결과값이 나오지 않습니다.
0
108
2
사람과 관련된 표현이 없는데 rewrite 로 이동하지 않는경우
0
85
1
retriever 관련 질문
0
70
1
인터룹 관련 질문
0
52
2
2.4 Self-RAG 결과가 달라요!
0
90
2
md vs txt 차이..
0
183
2
OpenAI API 호출 때문에 발생하는 Error code: 429 문제
0
137
2
단순 도구 사용과 도구를 가진 에이전트를 사용하는 것의 차이가 궁금합니다.
0
94
1
LangChain과 LangGraph v1
0
143
1





