Spaces:
Sleeping
Sleeping
Adding memory to chat
Browse files
app.py
CHANGED
|
@@ -28,23 +28,28 @@ qa_chain = RetrievalQA.from_chain_type(
|
|
| 28 |
retriever=vectordb.as_retriever()
|
| 29 |
)
|
| 30 |
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
|
|
|
|
|
|
|
|
|
| 34 |
|
| 35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
|
| 37 |
|
| 38 |
# Streamed response emulator
|
| 39 |
def response_generator(prompt):
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
#
|
| 44 |
-
# )
|
| 45 |
-
|
| 46 |
-
response = qa_chain({"query": prompt})['result']
|
| 47 |
-
|
| 48 |
for word in response.split():
|
| 49 |
yield word + " "
|
| 50 |
time.sleep(0.05)
|
|
|
|
| 28 |
retriever=vectordb.as_retriever()
|
| 29 |
)
|
| 30 |
|
| 31 |
+
# Conversation memory
|
| 32 |
+
from langchain.memory import ConversationBufferMemory
|
| 33 |
+
memory = ConversationBufferMemory(
|
| 34 |
+
memory_key="chat_history",
|
| 35 |
+
return_messages=True
|
| 36 |
+
)
|
| 37 |
|
| 38 |
+
from langchain.chains import ConversationalRetrievalChain
|
| 39 |
+
retriever=vectordb.as_retriever()
|
| 40 |
+
qa_memory = ConversationalRetrievalChain.from_llm(
|
| 41 |
+
llm,
|
| 42 |
+
retriever=retriever,
|
| 43 |
+
memory=memory
|
| 44 |
+
)
|
| 45 |
|
| 46 |
|
| 47 |
# Streamed response emulator
|
| 48 |
def response_generator(prompt):
|
| 49 |
+
|
| 50 |
+
response = qa_memory({"query": prompt})['result']
|
| 51 |
+
|
| 52 |
+
# Fake streaming
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
for word in response.split():
|
| 54 |
yield word + " "
|
| 55 |
time.sleep(0.05)
|