Shreyas094 commited on
Commit
f1e2207
·
verified ·
1 Parent(s): 1525d54

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -12
app.py CHANGED
@@ -460,25 +460,32 @@ def get_response_from_pdf(query, model, selected_docs, num_calls=3, temperature=
460
  yield "No documents available. Please upload PDF documents to answer questions."
461
  return
462
 
463
- retriever = database.as_retriever(search_kwargs={"k": 20})
464
- logging.info(f"Retrieving relevant documents for query: {query}")
465
- relevant_docs = retriever.get_relevant_documents(query)
466
- logging.info(f"Number of relevant documents retrieved: {len(relevant_docs)}")
467
-
468
- # Filter relevant_docs based on selected documents
469
- filtered_docs = [doc for doc in relevant_docs if doc.metadata["source"] in selected_docs]
470
- logging.info(f"Number of filtered documents: {len(filtered_docs)}")
471
 
472
- if not filtered_docs:
473
- logging.warning(f"No relevant information found in the selected documents: {selected_docs}")
 
 
474
  yield "No relevant information found in the selected documents. Please try selecting different documents or rephrasing your query."
475
  return
476
 
477
- for doc in filtered_docs:
 
 
 
 
 
 
 
 
478
  logging.info(f"Document source: {doc.metadata['source']}")
479
  logging.info(f"Document content preview: {doc.page_content[:100]}...") # Log first 100 characters of each document
480
 
481
- context_str = "\n".join([doc.page_content for doc in filtered_docs])
482
  logging.info(f"Total context length: {len(context_str)}")
483
 
484
  if model == "@cf/meta/llama-3.1-8b-instruct":
 
460
  yield "No documents available. Please upload PDF documents to answer questions."
461
  return
462
 
463
+ # Pre-filter the docstore
464
+ filtered_docstore = {
465
+ k: v for k, v in database.docstore._dict.items()
466
+ if v.metadata["source"] in selected_docs
467
+ }
 
 
 
468
 
469
+ logging.info(f"Number of documents after pre-filtering: {len(filtered_docstore)}")
470
+
471
+ if not filtered_docstore:
472
+ logging.warning(f"No documents found for the selected sources: {selected_docs}")
473
  yield "No relevant information found in the selected documents. Please try selecting different documents or rephrasing your query."
474
  return
475
 
476
+ # Create a new FAISS index with only the selected documents
477
+ filtered_db = FAISS(embed.embed_query, filtered_docstore, database.index)
478
+
479
+ retriever = filtered_db.as_retriever(search_kwargs={"k": 10})
480
+ logging.info(f"Retrieving relevant documents for query: {query}")
481
+ relevant_docs = retriever.get_relevant_documents(query)
482
+ logging.info(f"Number of relevant documents retrieved: {len(relevant_docs)}")
483
+
484
+ for doc in relevant_docs:
485
  logging.info(f"Document source: {doc.metadata['source']}")
486
  logging.info(f"Document content preview: {doc.page_content[:100]}...") # Log first 100 characters of each document
487
 
488
+ context_str = "\n".join([doc.page_content for doc in relevant_docs])
489
  logging.info(f"Total context length: {len(context_str)}")
490
 
491
  if model == "@cf/meta/llama-3.1-8b-instruct":