19차시. Node 이해
퀴즈 2 — 문서 리스트만 돌려주는 검색 노드
검색 노드는 문서 리스트만 반환합니다. 답 문장은 넣지 마세요.
빈칸 코드에서 시작합니다.
def retrieve(state, found):
pass결과 보기 (예시 풀이)
def retrieve(state, found):
# 검색 노드는 근거를 모으는 일만 합니다.
# 답 문장을 만드는 것은 generate 노드의 몫이라 answer는 넣지 않습니다.
return {"documents": found}
def fake_search(query):
# 진짜 벡터 검색 대신, 질문에 '환불'이 있으면 조각 두 개를 돌려줍니다.
if "환불" in query:
return ["환불은 수령 후 7일 이내", "환불은 영수증 지참"]
return []
# 확인 1: 자료가 있는 질문이면 documents에 조각 두 개가 담깁니다.
s1 = {"question": "환불은 며칠 이내인가요?"}
print(retrieve(s1, fake_search(s1["question"])))
# 확인 2: 자료가 없어도 키는 documents 하나뿐이고 값만 빈 리스트입니다.
s2 = {"question": "대표이사 이름은?"}
r2 = retrieve(s2, fake_search(s2["question"]))
print(r2, "/ 키 목록:", list(r2.keys()))
실행 결과
{'documents': ['환불은 수령 후 7일 이내', '환불은 영수증 지참']}
{'documents': []} / 키 목록: ['documents']채점 기준: documents 키만 있어야 한다.