Satyam0077 commited on
Commit
af147bb
·
verified ·
1 Parent(s): f7fb9bf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -42
app.py CHANGED
@@ -1,42 +1,43 @@
1
- import streamlit as st
2
- import pickle
3
- import faiss
4
- import numpy as np
5
- from transformers import pipeline
6
-
7
- # Load saved quotes and embeddings
8
- with open("model/quote_embeddings.pkl", "rb") as f:
9
- quotes, embeddings = pickle.load(f)
10
-
11
- # Initialize embedder and FAISS index
12
- embedder = SentenceTransformer('all-MiniLM-L6-v2')
13
-
14
- embeddings = embeddings.astype('float32')
15
- index = faiss.IndexFlatIP(embeddings.shape[1])
16
- faiss.normalize_L2(embeddings)
17
- index.add(embeddings)
18
-
19
- # Initialize text generator pipeline
20
- generator = pipeline('text-generation', model='distilgpt2')
21
-
22
- # Define RAG search function
23
- def rag_search(query, top_k=3):
24
- q_emb = embedder.encode([query]).astype('float32')
25
- faiss.normalize_L2(q_emb)
26
- scores, indices = index.search(q_emb, top_k)
27
- context = "\n".join([f"{quotes[i]['quote']} — {quotes[i].get('author','Unknown')}" for i in indices[0]])
28
- prompt = f"Answer using these quotes:\n{context}\nQuestion: {query}\nAnswer:"
29
- outputs = generator(prompt, max_length=100, num_return_sequences=1)
30
- answer = outputs[0]['generated_text'].split('Answer:')[-1].strip()
31
- return answer
32
-
33
- # Streamlit UI starts here
34
- st.title("RAG Quote-Based Q&A")
35
-
36
- user_query = st.text_input("Ask a question related to quotes:")
37
-
38
- if user_query:
39
- with st.spinner("Generating answer..."):
40
- answer = rag_search(user_query)
41
- st.markdown("### Answer:")
42
- st.write(answer)
 
 
1
+ import streamlit as st
2
+ import pickle
3
+ import faiss
4
+ import numpy as np
5
+ from sentence_transformers import SentenceTransformer
6
+ from transformers import pipeline
7
+
8
+ # Load saved quotes and embeddings from root directory
9
+ with open("quote_embeddings.pkl", "rb") as f:
10
+ quotes, embeddings = pickle.load(f)
11
+
12
+ # Initialize embedder and FAISS index
13
+ embedder = SentenceTransformer('all-MiniLM-L6-v2')
14
+
15
+ embeddings = embeddings.astype('float32')
16
+ index = faiss.IndexFlatIP(embeddings.shape[1])
17
+ faiss.normalize_L2(embeddings)
18
+ index.add(embeddings)
19
+
20
+ # Initialize text generator pipeline
21
+ generator = pipeline('text-generation', model='distilgpt2')
22
+
23
+ # Define RAG search function
24
+ def rag_search(query, top_k=3):
25
+ q_emb = embedder.encode([query]).astype('float32')
26
+ faiss.normalize_L2(q_emb)
27
+ scores, indices = index.search(q_emb, top_k)
28
+ context = "\n".join([f"{quotes[i]['quote']} {quotes[i].get('author','Unknown')}" for i in indices[0]])
29
+ prompt = f"Answer using these quotes:\n{context}\nQuestion: {query}\nAnswer:"
30
+ outputs = generator(prompt, max_length=100, num_return_sequences=1)
31
+ answer = outputs[0]['generated_text'].split('Answer:')[-1].strip()
32
+ return answer
33
+
34
+ # Streamlit UI starts here
35
+ st.title("RAG Quote-Based Q&A")
36
+
37
+ user_query = st.text_input("Ask a question related to quotes:")
38
+
39
+ if user_query:
40
+ with st.spinner("Generating answer..."):
41
+ answer = rag_search(user_query)
42
+ st.markdown("### Answer:")
43
+ st.write(answer)