Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,43 +1,8 @@
|
|
| 1 |
-
|
| 2 |
-
|
|
|
|
| 3 |
|
|
|
|
| 4 |
from langchain_community.document_loaders import PyPDFLoader
|
| 5 |
-
from
|
| 6 |
-
from langchain.embeddings import HuggingFaceEmbeddings
|
| 7 |
-
from langchain.vectorstores import FAISS
|
| 8 |
-
from langchain.chains.question_answering import load_qa_chain
|
| 9 |
-
from langchain.llms import OpenAI # replace with Groq if needed
|
| 10 |
-
|
| 11 |
-
import chainlit as cl
|
| 12 |
-
|
| 13 |
-
@cl.on_chat_start
|
| 14 |
-
async def start():
|
| 15 |
-
await cl.Message("👋 Upload a PDF to ask questions!").send()
|
| 16 |
-
|
| 17 |
-
@cl.on_message
|
| 18 |
-
async def handle_message(message: cl.Message):
|
| 19 |
-
files = await cl.AskFileMessage("📎 Upload your PDF", accept=["application/pdf"]).send()
|
| 20 |
-
if not files:
|
| 21 |
-
await cl.Message("❌ No file received.").send()
|
| 22 |
-
return
|
| 23 |
-
|
| 24 |
-
file = files[0]
|
| 25 |
-
file_path = file.path
|
| 26 |
-
|
| 27 |
-
loader = PyPDFLoader(file_path)
|
| 28 |
-
documents = loader.load()
|
| 29 |
-
|
| 30 |
-
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
|
| 31 |
-
chunks = splitter.split_documents(documents)
|
| 32 |
-
|
| 33 |
-
embeddings = HuggingFaceEmbeddings()
|
| 34 |
-
vectordb = FAISS.from_documents(chunks, embeddings)
|
| 35 |
-
|
| 36 |
-
qa_chain = load_qa_chain(OpenAI(temperature=0), chain_type="stuff") # or Groq
|
| 37 |
-
|
| 38 |
-
query = message.content
|
| 39 |
-
docs = vectordb.similarity_search(query)
|
| 40 |
-
answer = qa_chain.run(input_documents=docs, question=query)
|
| 41 |
-
|
| 42 |
-
await cl.Message(answer).send()
|
| 43 |
|
|
|
|
| 1 |
+
# ✅ OLD (deprecated)
|
| 2 |
+
# from langchain.document_loaders import PyPDFLoader
|
| 3 |
+
# from langchain.llms import OpenAI
|
| 4 |
|
| 5 |
+
# ✅ NEW (correct)
|
| 6 |
from langchain_community.document_loaders import PyPDFLoader
|
| 7 |
+
from langchain_community.llms import OpenAI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
|