prithvi1029 commited on
Commit
0d6c083
·
verified ·
1 Parent(s): 6a6cea4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +1 -8
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import gradio as gr
2
 
3
  from langchain_community.document_loaders import PyPDFLoader
4
- from langchain_community.text_splitter import RecursiveCharacterTextSplitter
5
  from langchain_community.embeddings import HuggingFaceEmbeddings
6
  from langchain_community.vectorstores import FAISS
7
  from langchain.chains import RetrievalQA
@@ -12,34 +12,27 @@ def run_qa(pdf_path, question):
12
  if pdf_path is None or question.strip() == "":
13
  return "Please upload a PDF and enter a question."
14
 
15
- # Load PDF
16
  loader = PyPDFLoader(pdf_path)
17
  docs = loader.load()
18
 
19
- # Split into chunks
20
  splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=150)
21
  chunks = splitter.split_documents(docs)
22
 
23
- # Create embeddings + vector store
24
  embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
25
  vectordb = FAISS.from_documents(chunks, embeddings)
26
 
27
- # LLM
28
  llm = ChatOpenAI(temperature=0)
29
 
30
- # Retrieval QA chain
31
  qa = RetrievalQA.from_chain_type(
32
  llm=llm,
33
  retriever=vectordb.as_retriever(),
34
  return_source_documents=True
35
  )
36
 
37
- # Newer LangChain-safe call
38
  result = qa.invoke({"query": question})
39
 
40
  answer_text = result.get("result", "")
41
  source_docs = result.get("source_documents", [])
42
-
43
  sources = "\n\n".join([d.page_content[:500] for d in source_docs[:2]])
44
 
45
  return f"### Answer\n{answer_text}\n\n---\n### Sources\n{sources}"
 
1
  import gradio as gr
2
 
3
  from langchain_community.document_loaders import PyPDFLoader
4
+ from langchain_text_splitters import RecursiveCharacterTextSplitter
5
  from langchain_community.embeddings import HuggingFaceEmbeddings
6
  from langchain_community.vectorstores import FAISS
7
  from langchain.chains import RetrievalQA
 
12
  if pdf_path is None or question.strip() == "":
13
  return "Please upload a PDF and enter a question."
14
 
 
15
  loader = PyPDFLoader(pdf_path)
16
  docs = loader.load()
17
 
 
18
  splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=150)
19
  chunks = splitter.split_documents(docs)
20
 
 
21
  embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
22
  vectordb = FAISS.from_documents(chunks, embeddings)
23
 
 
24
  llm = ChatOpenAI(temperature=0)
25
 
 
26
  qa = RetrievalQA.from_chain_type(
27
  llm=llm,
28
  retriever=vectordb.as_retriever(),
29
  return_source_documents=True
30
  )
31
 
 
32
  result = qa.invoke({"query": question})
33
 
34
  answer_text = result.get("result", "")
35
  source_docs = result.get("source_documents", [])
 
36
  sources = "\n\n".join([d.page_content[:500] for d in source_docs[:2]])
37
 
38
  return f"### Answer\n{answer_text}\n\n---\n### Sources\n{sources}"