MBilal-72 commited on
Commit
2d6ed01
·
verified ·
1 Parent(s): d7077dd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -10
app.py CHANGED
@@ -1,16 +1,19 @@
1
  import os
2
  import streamlit as st
3
  from groq import Groq
4
- from langchain.embeddings import HuggingFaceEmbeddings
5
- from langchain.vectorstores import FAISS
6
  from langchain.text_splitter import CharacterTextSplitter
7
- from langchain.document_loaders import TextLoader, PyPDFLoader
8
  from langchain.chains import RetrievalQA
9
  from langchain.llms.base import LLM
10
  from tempfile import NamedTemporaryFile
11
 
12
  # Load Groq API key from environment variable
13
  GROQ_API_KEY = os.getenv("GROQ_API_KEY")
 
 
 
14
 
15
  # Initialize Groq client
16
  groq_client = Groq(api_key=GROQ_API_KEY)
@@ -32,8 +35,9 @@ class GroqLLM(LLM):
32
  return "groq_llm"
33
 
34
  # Streamlit UI
35
- st.title("📚 RAG App with Groq + HuggingFace + Streamlit")
36
- st.write("Upload a PDF or TXT file, ask a question, and get answers powered by RAG.")
 
37
 
38
  uploaded_file = st.file_uploader("Upload your document", type=["pdf", "txt"])
39
 
@@ -42,7 +46,7 @@ if uploaded_file:
42
  tmp_file.write(uploaded_file.read())
43
  tmp_path = tmp_file.name
44
 
45
- # Load document
46
  if uploaded_file.type == "application/pdf":
47
  loader = PyPDFLoader(tmp_path)
48
  else:
@@ -58,14 +62,15 @@ if uploaded_file:
58
  embeddings = HuggingFaceEmbeddings()
59
  db = FAISS.from_documents(texts, embeddings)
60
 
61
- # RAG chain
62
  retriever = db.as_retriever()
63
  qa_chain = RetrievalQA.from_chain_type(llm=GroqLLM(), retriever=retriever)
64
 
65
- # Input box
66
- query = st.text_input("Ask something about the document:")
67
 
68
  if query:
69
- result = qa_chain.run(query)
 
70
  st.markdown("### 🧠 Answer:")
71
  st.success(result)
 
1
  import os
2
  import streamlit as st
3
  from groq import Groq
4
+ from langchain_community.embeddings import HuggingFaceEmbeddings
5
+ from langchain_community.vectorstores import FAISS
6
  from langchain.text_splitter import CharacterTextSplitter
7
+ from langchain_community.document_loaders import TextLoader, PyPDFLoader
8
  from langchain.chains import RetrievalQA
9
  from langchain.llms.base import LLM
10
  from tempfile import NamedTemporaryFile
11
 
12
  # Load Groq API key from environment variable
13
  GROQ_API_KEY = os.getenv("GROQ_API_KEY")
14
+ if not GROQ_API_KEY:
15
+ st.error("❌ GROQ_API_KEY is not set in environment variables.")
16
+ st.stop()
17
 
18
  # Initialize Groq client
19
  groq_client = Groq(api_key=GROQ_API_KEY)
 
35
  return "groq_llm"
36
 
37
  # Streamlit UI
38
+ st.set_page_config(page_title="Groq RAG App", layout="centered")
39
+ st.title("📚 RAG App with Groq + LangChain + FAISS")
40
+ st.write("Upload a PDF or TXT file, ask a question, and get smart answers.")
41
 
42
  uploaded_file = st.file_uploader("Upload your document", type=["pdf", "txt"])
43
 
 
46
  tmp_file.write(uploaded_file.read())
47
  tmp_path = tmp_file.name
48
 
49
+ # Load document based on file type
50
  if uploaded_file.type == "application/pdf":
51
  loader = PyPDFLoader(tmp_path)
52
  else:
 
62
  embeddings = HuggingFaceEmbeddings()
63
  db = FAISS.from_documents(texts, embeddings)
64
 
65
+ # Set up RAG chain
66
  retriever = db.as_retriever()
67
  qa_chain = RetrievalQA.from_chain_type(llm=GroqLLM(), retriever=retriever)
68
 
69
+ # Input box for user question
70
+ query = st.text_input("🔍 Ask a question about the document:")
71
 
72
  if query:
73
+ with st.spinner("Thinking..."):
74
+ result = qa_chain.run(query)
75
  st.markdown("### 🧠 Answer:")
76
  st.success(result)