29차시. Conditional Edge 실습
퀴즈 2 — 인사에는 검색을 부르지 않기
의도가 greeting이면 검색 함수를 호출하지 마세요.
빈칸 코드에서 시작합니다.
def run(intent, search, greet):
pass결과 보기 (예시 풀이)
# intent 에 따라 검색을 부를지 말지 정합니다. 인사에는 검색을 부르지 않습니다.
def run(intent, search, greet):
if intent == "greeting":
return greet()
if intent == "document":
return search()
# 그 밖의 유형은 검색 없이 안내만 돌려줍니다.
return {"answer": "범위를 벗어났습니다"}
# 검색이 몇 번 불렸는지 세기 위한 가짜 함수들입니다.
calls = {"search": 0}
def fake_search():
calls["search"] += 1
return {"answer": "환불은 7일 이내입니다[1]."}
def fake_greet():
return {"answer": "안녕하세요! 사내 문서에 관한 질문을 도와드립니다."}
# 1) 인사: 검색 횟수가 늘지 않아야 합니다.
print(run("greeting", fake_search, fake_greet), "검색 횟수:", calls["search"])
# 2) 문서 질문: 이때만 검색이 1 늘어납니다.
print(run("document", fake_search, fake_greet), "검색 횟수:", calls["search"])
# 3) 범위 밖: 검색 없이 안내만 나와야 합니다.
print(run("scope", fake_search, fake_greet), "검색 횟수:", calls["search"])
실행 결과
{'answer': '안녕하세요! 사내 문서에 관한 질문을 도와드립니다.'} 검색 횟수: 0
{'answer': '환불은 7일 이내입니다[1].'} 검색 횟수: 1
{'answer': '범위를 벗어났습니다'} 검색 횟수: 1채점 기준: greeting에서 search를 호출하면 오답이다.
관련 교안: 29차시 「5. 실습 ④ — 다중 분기 구현」