"""Conversational QA chain setup.""" from langchain.chains import ConversationalRetrievalChain from langchain.memory import ConversationBufferMemory def create_qa_chain(llm, retriever): """ Create conversational QA chain with memory. Args: llm: Language model retriever: Document retriever Returns: ConversationalRetrievalChain """ memory = ConversationBufferMemory( memory_key="chat_history", return_messages=True, output_key="answer" ) chain = ConversationalRetrievalChain.from_llm( llm=llm, retriever=retriever, memory=memory, return_source_documents=True ) return chain