Update app.py
Browse files
app.py
CHANGED
|
@@ -19,6 +19,7 @@ from operator import itemgetter
|
|
| 19 |
from langchain_core.runnables.passthrough import RunnablePassthrough
|
| 20 |
import chainlit as cl
|
| 21 |
from langchain_core.runnables.config import RunnableConfig
|
|
|
|
| 22 |
|
| 23 |
load_dotenv()
|
| 24 |
|
|
@@ -68,6 +69,11 @@ def process_file(file: AskFileResponse):
|
|
| 68 |
doc.metadata["source"] = f"source_{i}"
|
| 69 |
return docs
|
| 70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
|
| 72 |
|
| 73 |
@cl.on_chat_start
|
|
@@ -76,8 +82,6 @@ async def on_chat_start():
|
|
| 76 |
files = None
|
| 77 |
|
| 78 |
while files == None:
|
| 79 |
-
# Async method: This allows the function to pause execution while waiting for the user to upload a file,
|
| 80 |
-
# without blocking the entire application. It improves responsiveness and scalability.
|
| 81 |
files = await cl.AskFileMessage(
|
| 82 |
content="Please upload a PDF file to begin!",
|
| 83 |
accept=["application/pdf"],
|
|
@@ -122,7 +126,7 @@ async def on_chat_start():
|
|
| 122 |
)
|
| 123 |
|
| 124 |
# Let the user know that the system is ready
|
| 125 |
-
msg.content =
|
| 126 |
await msg.update()
|
| 127 |
|
| 128 |
cl.user_session.set("chain", retrieval_augmented_qa_chain)
|
|
|
|
| 19 |
from langchain_core.runnables.passthrough import RunnablePassthrough
|
| 20 |
import chainlit as cl
|
| 21 |
from langchain_core.runnables.config import RunnableConfig
|
| 22 |
+
import time
|
| 23 |
|
| 24 |
load_dotenv()
|
| 25 |
|
|
|
|
| 69 |
doc.metadata["source"] = f"source_{i}"
|
| 70 |
return docs
|
| 71 |
|
| 72 |
+
def measure_embedding_time(docs):
|
| 73 |
+
start_time = time.time()
|
| 74 |
+
vectorstore.add_documents(docs)
|
| 75 |
+
elapsed_time = time.time() - start_time
|
| 76 |
+
print(f"{str(docs)} took {elapsed_time:.2f} seconds")
|
| 77 |
|
| 78 |
|
| 79 |
@cl.on_chat_start
|
|
|
|
| 82 |
files = None
|
| 83 |
|
| 84 |
while files == None:
|
|
|
|
|
|
|
| 85 |
files = await cl.AskFileMessage(
|
| 86 |
content="Please upload a PDF file to begin!",
|
| 87 |
accept=["application/pdf"],
|
|
|
|
| 126 |
)
|
| 127 |
|
| 128 |
# Let the user know that the system is ready
|
| 129 |
+
msg.content = measure_embedding_time(docs)
|
| 130 |
await msg.update()
|
| 131 |
|
| 132 |
cl.user_session.set("chain", retrieval_augmented_qa_chain)
|