RAG2026-5일29차시 · Conditional Edge 실습17 / 19← 이전목차다음 →MetaContents

29차시. Conditional Edge 실습

퀴즈 2 — 인사에는 검색을 부르지 않기

의도가 greeting이면 검색 함수를 호출하지 마세요.

빈칸 코드에서 시작합니다.

Python
def run(intent, search, greet):
    pass
결과 보기 (예시 풀이)
Python
# 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. 실습 ④ — 다중 분기 구현」

← 이전 절29차시 · 퀴즈 1 — 연산 순서대로 1,000 + 2,000 * 3 계산다음 절 →29차시 · 정리