| """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 | |