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

sangin1.park님의 프로필 이미지
sangin1.park

작성한 질문수

모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 2 - 랭체인(LangChain)으로 나만의 ChatGPT 만들기

FewShotPromptTemplate - Few-Shot 프롬프트를 손쉽게 구성하기

memory+ Retriever +llm 질문있습니다.

작성

·

140

0

prompt는 memory+ Retriever +llm를 결합하여 사용할 때 사용할 수 없나요?

답변 1

0

AISchool님의 프로필 이미지
AISchool
지식공유자

안녕하세요~. 반갑습니다.

아래와 같은 형태로 묶어서 사용하시면 됩니다.

1. retriever 설정

retriever = vectorstore.as_retriever()
  1. memory에서 채팅 history를 불러오는 함수 작성

def load_memory(input):
    return memory.load_memory_variables({})["history"]
  1. retriever + memory 결합 prompt 작성

from langchain.prompts import PromptTemplate

template = """다음과 같은 맥락과 채팅히스토리를 사용하여 마지막 질문에 대답하십시오.
맥락: {context}
채팅히스토리: {history}
질문: {question}
도움이 되는 답변:"""
rag_prompt_custom = PromptTemplate.from_template(template)
  1. 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('안녕?')

    좋은 하루되세요~.


    감사합니다.

sangin1.park님의 프로필 이미지
sangin1.park

작성한 질문수

질문하기