15차시. 기본 RAG 앱 만들기
퀴즈 1 — 답과 출처를 함께 담은 딕셔너리 돌려주기
ask가 답과 출처를 함께 반환하게 작성하세요.
빈칸 코드에서 시작합니다.
def ask(answer, sources):
pass결과 보기 (예시 풀이)
def ask(answer, sources):
# 답만 돌려주지 않고 출처를 같은 딕셔너리에 담습니다.
# 키 이름 answer, sources는 app.py와 web.py가 읽는 이름입니다.
return {"answer": answer, "sources": sources}
# 출처가 있는 경우: 화면이 result["sources"]를 돌며 출처를 찍을 수 있습니다.
result = ask("환불은 7일 이내에 신청할 수 있습니다[1].",
[{"file": "manual.pdf", "page": 2}])
print(result["answer"])
for s in result["sources"]:
print(" 출처:", s["file"], s["page"], "페이지")
# 출처가 없는 경우에도 같은 모양입니다. sources는 빈 리스트입니다.
print(ask("관련 자료를 찾지 못했습니다.", []))
실행 결과
환불은 7일 이내에 신청할 수 있습니다[1].
출처: manual.pdf 2 페이지
{'answer': '관련 자료를 찾지 못했습니다.', 'sources': []}채점 기준: 키 이름은 answer와 sources.
관련 교안: 15차시 「5. 실습 ③ — rag.py (핵심)」