ahmadsanafarooq commited on
Commit
ff82bb6
·
verified ·
1 Parent(s): 8b95a88

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -11
app.py CHANGED
@@ -1,5 +1,3 @@
1
- # app.py
2
-
3
  import os
4
  import gradio as gr
5
  from langchain.text_splitter import RecursiveCharacterTextSplitter
@@ -15,11 +13,11 @@ import numpy as np
15
  from sklearn.feature_extraction.text import TfidfVectorizer
16
  from dotenv import load_dotenv
17
 
18
- # ----------------- Logger Configuration ------------------
19
  logging.basicConfig(level=logging.INFO)
20
  logger = logging.getLogger(__name__)
21
 
22
- # ----------------- Simple TF-IDF Fallback Embeddings ------------------
23
  class SimpleEmbeddings:
24
  def __init__(self):
25
  self.vectorizer = TfidfVectorizer(max_features=384, stop_words='english')
@@ -36,7 +34,7 @@ class SimpleEmbeddings:
36
  return [0.0] * 384
37
  return self.vectorizer.transform([text]).toarray()[0].tolist()
38
 
39
- # ----------------- RAG Assistant Class ------------------
40
  class RAGAssistant:
41
  def __init__(self, groq_api_key: str):
42
  self.groq_api_key = groq_api_key
@@ -191,7 +189,7 @@ class RAGAssistant:
191
  logger.error(f"Error in code helper: {str(e)}")
192
  return f"Error generating response: {str(e)}"
193
 
194
- # ----------------- Gradio UI Interface ------------------
195
  def create_gradio_interface(assistant: RAGAssistant):
196
  def upload_learning_files(files):
197
  if not files:
@@ -220,11 +218,11 @@ def create_gradio_interface(assistant: RAGAssistant):
220
  return history, ""
221
 
222
  with gr.Blocks(title="RAG-Based Learning & Code Assistant", theme=gr.themes.Soft()) as demo:
223
- gr.Markdown("# 🎓 RAG-Based Learning & Code Assistant")
224
  gr.Markdown("Upload documents and get smart, personalized answers.")
225
 
226
  with gr.Tabs():
227
- with gr.TabItem("📚 Learning Tutor"):
228
  gr.Markdown("### Upload lecture notes or textbooks below:")
229
  with gr.Row():
230
  with gr.Column(scale=1):
@@ -240,7 +238,7 @@ def create_gradio_interface(assistant: RAGAssistant):
240
  learning_submit.click(learning_chat, inputs=[learning_input, learning_chatbot], outputs=[learning_chatbot, learning_input])
241
  learning_input.submit(learning_chat, inputs=[learning_input, learning_chatbot], outputs=[learning_chatbot, learning_input])
242
 
243
- with gr.TabItem("💻 Code Documentation Helper"):
244
  gr.Markdown("### Upload code docs or API guides below:")
245
  with gr.Row():
246
  with gr.Column(scale=1):
@@ -257,11 +255,11 @@ def create_gradio_interface(assistant: RAGAssistant):
257
  code_input.submit(code_chat, inputs=[code_input, code_chatbot], outputs=[code_chatbot, code_input])
258
 
259
  gr.Markdown("---")
260
- gr.Markdown("Built with ❤️ using LangChain, ChromaDB, and Groq API")
261
 
262
  return demo
263
 
264
- # ----------------- Main Function ------------------
265
  def main():
266
  load_dotenv()
267
  groq_api_key = os.getenv("GROQ_API_KEY")
 
 
 
1
  import os
2
  import gradio as gr
3
  from langchain.text_splitter import RecursiveCharacterTextSplitter
 
13
  from sklearn.feature_extraction.text import TfidfVectorizer
14
  from dotenv import load_dotenv
15
 
16
+ # Logger Configuration
17
  logging.basicConfig(level=logging.INFO)
18
  logger = logging.getLogger(__name__)
19
 
20
+ # Simple TF-IDF Fallback Embeddings
21
  class SimpleEmbeddings:
22
  def __init__(self):
23
  self.vectorizer = TfidfVectorizer(max_features=384, stop_words='english')
 
34
  return [0.0] * 384
35
  return self.vectorizer.transform([text]).toarray()[0].tolist()
36
 
37
+ # RAG Assistant Class
38
  class RAGAssistant:
39
  def __init__(self, groq_api_key: str):
40
  self.groq_api_key = groq_api_key
 
189
  logger.error(f"Error in code helper: {str(e)}")
190
  return f"Error generating response: {str(e)}"
191
 
192
+ # Gradio UI Interface
193
  def create_gradio_interface(assistant: RAGAssistant):
194
  def upload_learning_files(files):
195
  if not files:
 
218
  return history, ""
219
 
220
  with gr.Blocks(title="RAG-Based Learning & Code Assistant", theme=gr.themes.Soft()) as demo:
221
+ gr.Markdown("# RAG-Based Learning & Code Assistant")
222
  gr.Markdown("Upload documents and get smart, personalized answers.")
223
 
224
  with gr.Tabs():
225
+ with gr.TabItem(" Learning Tutor"):
226
  gr.Markdown("### Upload lecture notes or textbooks below:")
227
  with gr.Row():
228
  with gr.Column(scale=1):
 
238
  learning_submit.click(learning_chat, inputs=[learning_input, learning_chatbot], outputs=[learning_chatbot, learning_input])
239
  learning_input.submit(learning_chat, inputs=[learning_input, learning_chatbot], outputs=[learning_chatbot, learning_input])
240
 
241
+ with gr.TabItem("Code Documentation Helper"):
242
  gr.Markdown("### Upload code docs or API guides below:")
243
  with gr.Row():
244
  with gr.Column(scale=1):
 
255
  code_input.submit(code_chat, inputs=[code_input, code_chatbot], outputs=[code_chatbot, code_input])
256
 
257
  gr.Markdown("---")
258
+ gr.Markdown("Built with using LangChain, ChromaDB, and Groq API")
259
 
260
  return demo
261
 
262
+ # Main Function
263
  def main():
264
  load_dotenv()
265
  groq_api_key = os.getenv("GROQ_API_KEY")