강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

아이테킨님의 프로필 이미지
아이테킨

작성한 질문수

RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)

언어 모델 (LLMs)

create_retrieval_chain에서 context는 지정된 인자인가요?

작성

·

10

0

아래 코드에서 create_retrieval_chain에 인자로 combine_docs_chain을 사용하는데요,

 

retrieval_qa_chat_prompt에서 정의한 {context}는 프롬프트에 고정적으로 있어야 하는 부분인가요?

 

내부적으로 context라는 이름으로 정해져있는 것인지 궁금합니다.

retrieval_qa_chat_prompt = ChatPromptTemplate.from_template("""
다음 컨텍스트를 바탕으로 질문에 답변해주세요. 컨텍스트에 관련 정보가 없다면,
"주어진 정보로는 답변할 수 없습니다."라고 말씀해 주세요.

컨텍스트: {context}

질문: {input}

답변:
""")


# 체인 생성
combine_docs_chain = create_stuff_documents_chain(llm, retrieval_qa_chat_prompt)
rag_chain = create_retrieval_chain(retriever, combine_docs_chain)

# 체인 실행
query = "테슬라 창업자는 누구인가요?"
response = rag_chain.invoke({"input": query})

 

답변 1

0

판다스 스튜디오님의 프로필 이미지
판다스 스튜디오
지식공유자

안녕하세요. 판다스 스튜디오입니다.

여기서 {context}create_retrieval_chain에서 내부적으로 정해진 고정 변수가 맞습니다. retriever에서 가져온 문서들을 자동으로 context라는 키로 combine_docs_chain에 전달하므로, 프롬프트에서는 반드시 {context}를 사용해야 합니다. 마찬가지로 {input}도 사용자 질문을 받는 고정된 키 이름입니다. 이 변수명들을 바꾸면 체인이 제대로 작동하지 않으므로 그대로 사용해야 합니다.

감사합니다.

아이테킨님의 프로필 이미지
아이테킨

작성한 질문수

질문하기