inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

RAG를 활용한 LLM Application 개발 (feat. LangChain)

3.6 Retrieval 효율 개선을 위한 키워드 사전 활용

3.6 일부 코드가 강의 그대로 따라하면 에러나요

해결된 질문

113

hylee

작성한 질문수 2

0

스크린샷 2025-07-27 12.49.35.png.webp

에러메세지는 이건데요..

KeyError: "Input to ChatPromptTemplate is missing variables {'dictionary'}. Expected: ['dictionary', 'question'] Received: ['question']"

 

그래서 아래처럼 고쳤더니 결과는 잘 나오는데

new_question = dictionary_chain.invoke({
    "dictionary": dictionary,
    "question": query
})

이러고 나서 또 밑에 ai_response관련 코드도 같은 에러가 나오다보니 강의를 매끄럽게 들을 수 없고 자꾸 흐름이 끊기네요.

 

사실 3.5때도 강의코드 그대로 따라하니까 llm이 답변을 제대로 안해줘서, chunk_size / overlap 이렇게 저렇게 조정하고. 조정해보니 또 한번에 넣을 수 없는 사이즈라서 배치처럼 짤라서 넣고. 우여곡절 끝에 강의랑 동일한 결과를 얻긴 했는데요...

빠르게 슥슥 듣고 강사님 다른 강의(ai agent)로 넘어가고싶은데 매끄럽게 안되니까 초큼 힘들어요 ㅠ

제 환경이 잘못 구성된걸까요 ㅠㅠ

vector-database llm langchain rag openai-api

답변 1

0

제이쓴

안녕하세요! 좋은 질문 감사합니다.

제가 제공해드린 코드와 올려주신 스크린샷에는 한가지 차이가 있는데요, 제공해주신 스크린샷에는ChatPromptTemplate을 생성할때 f 가 빠져있습니다. f-string을 사용하지 않는 경우 어떤 차이가 있는지 설명을 드려보자면

랭체인의 PromptTemplate들은, 중괄호로 감싸져있는 항목들을 변수로 인식해서 invoke()를 활용해서 넘겨줘야 합니다.

prompt = ChatPromptTemplate.from_template(f"""
    사용자의 질문을 보고, 우리의 사전을 참고해서 사용자의 질문을 변경해주세요.
    만약 변경할 필요가 없다고 판단된다면, 사용자의 질문을 변경하지 않아도 됩니다.
    그런 경우에는 질문만 리턴해주세요
    사전: {dictionary}
    
    질문: {{question}}
""")

위와 같이 작성하면 f-string 을 활용하기 때문에 중괄호 한겹으로 감싸진 dictionary는 위에 작성한 dictionary 로 치환되고, 중괄호 두겹으로 감싸진 question만 변수로 인식하기 때문에, invoke()를 호출할 때 question만 넘겨주면 됩니다.

하지만 hylee님께서 작성하신 것처럼 아래와 같이 작성하는 경우에는

prompt = ChatPromptTemplate.from_template("""
    사용자의 질문을 보고, 우리의 사전을 참고해서 사용자의 질문을 변경해주세요.
    만약 변경할 필요가 없다고 판단된다면, 사용자의 질문을 변경하지 않아도 됩니다.
    그런 경우에는 질문만 리턴해주세요
    사전: {dictionary}
    
    질문: {{question}}
""")

f-string을 활용하지 않기 때문에 dictionaryquestion을 모두 변수로 인식해서 .invoke()를 호출할 때 작성하신 것처럼 dictionaryquestion을 모두 넘겨줘야합니다.

랭체인 문법에 아직 충분히 익숙하지 않으시다면 말슴하신 AI Agent강의도 좋지만, 한시간으로 끝내는 LangChain 기본기 강의를 통해서 문법에 조금 더 익숙해지신 후에 AI Agent강의로 넘어가시는 걸 추천 드립니다!

1

hylee

안녕하세요!

주말인데도 빠른 답변 감사합니다. f의 차이가 크네요.

말씀해주신 강의도 들었는데....... 잠깐 멈추고 복습을 해야겠네요 ㅠ 감사합니다!!

0

제이쓴

앗 그러시면 제가 강의에서 설명을 충분히 꼼꼼하게 드리지 못한걸수도 있겠네요 ㅠㅠ 강의 들으시면서 질문이 있으시면 지금처럼 편하게 올려주세요!

온톨로지 활용

0

44

2

ollama설치해서 llama로 돌려도 되나요?

0

46

2

소득세법 docx 파일 공유 요청건

0

95

1

EXAONE 모델 불러오기 안되는 문제

0

95

2

[5.1 강의] LLM Evaluator에 Upstage를 사용하는 방법 + 변경된 Langsmith Docs를 참고하여 구현하는 방법 공유

0

125

2

강의 9에 QA관련된 import가 되지 않네요

0

125

2

🚨 python3.14 를 쓰고 계시면 chroma 에서 ConfigError 가 발생합니다.

1

224

1

강의와 책 관련 질문

0

96

1

문서 전처리 고민

0

121

1

RAG 배포 질문드립니다

0

106

1

강의 내용과는 별개로 궁금한 점이 있습니다

0

98

2

폐쇄망 챗봇 모델

0

102

1

AI agent 쿠폰

0

99

2

저는 왜 그대로 했는데 답변이 틀리게 나오는지 모르겠네요

0

109

2

langchain howto/sequence는 지금 doc 공식 사이트 어디서 확인할 수 있나요?

1

100

1

new_question에 대한 답 출력

0

80

2

랭체인 라이브러리

0

159

2

[LangGraph를 활용한 AI Agent 개발] 쿠폰 유효기간

0

111

1

postgresql의 pgvector 벡터는 어떤가요?

0

383

2

doc관련

0

144

2

load_dotenv() 실행 False

0

103

1

RAG 답변 개선을 위한 정답지 활용 구조 검토 요청

0

125

2

3.2 from langchain.chains ~ 에서 모듈을 찾지 못할 때.

2

429

2

강의 완료 오류

0

94

1