fahadkhan93 commited on
Commit
a3676a0
·
verified ·
1 Parent(s): 5c8aff0

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -0
app.py ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from datasets import load_dataset
3
+ from sklearn.feature_extraction.text import TfidfVectorizer
4
+ from sklearn.metrics.pairwise import cosine_similarity
5
+ import numpy as np
6
+
7
+ # Load dataset and build vectorizer
8
+ ds = load_dataset("STEM‑AI‑mtl/electrical‑engineering", split="train")
9
+ docs = [q + " " + a for q, a in zip(ds["question"], ds["answer"])]
10
+ vectorizer = TfidfVectorizer().fit(docs)
11
+ tfidf_matrix = vectorizer.transform(docs)
12
+
13
+ def get_answer(user_question, top_k=1):
14
+ user_vec = vectorizer.transform([user_question])
15
+ sims = cosine_similarity(user_vec, tfidf_matrix).flatten()
16
+ idxs = np.argsort(-sims)[:top_k]
17
+ return "\n\n".join([f"**Q:** {ds['question'][i]}\n**A:** {ds['answer'][i]}" for i in idxs])
18
+
19
+ with gr.Blocks() as demo:
20
+ gr.Markdown("# 🛠️ Electronics Q&A Assistant")
21
+ question = gr.Textbox(label="Ask a question about electronics", lines=2)
22
+ answer = gr.Markdown()
23
+ ask_btn = gr.Button("Get Answer")
24
+ ask_btn.click(fn=get_answer, inputs=question, outputs=answer)
25
+
26
+ if __name__ == "__main__":
27
+ demo.launch()