작성
·
148
답변 1
0
안녕하세요~. 반갑습니다.
아래와 같은 형태로 묶어서 사용하시면 됩니다.
1. retriever 설정
retriever = vectorstore.as_retriever()
memory에서 채팅 history를 불러오는 함수 작성
def load_memory(input):
return memory.load_memory_variables({})["history"]
retriever + memory 결합 prompt 작성
from langchain.prompts import PromptTemplate
template = """다음과 같은 맥락과 채팅히스토리를 사용하여 마지막 질문에 대답하십시오.
맥락: {context}
채팅히스토리: {history}
질문: {question}
도움이 되는 답변:"""
rag_prompt_custom = PromptTemplate.from_template(template)
llm과 최종 합성 프롬프트를 사용하여 답변생성
# RAG chain 설정
from langchain.schema.runnable import RunnablePassthrough
from langchain_core.prompts import MessagesPlaceholder
rag_chain = {"context": retriever, "question": RunnablePassthrough(), "history": load_memory} | rag_prompt_custom | llm
rag_chain.invoke('안녕?')
좋은 하루되세요~.
감사합니다.