Group2255 commited on
Commit
9ebada2
Β·
verified Β·
1 Parent(s): e31e106

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -33
app.py CHANGED
@@ -1,6 +1,5 @@
1
-
2
  # app.py
3
- # PromptPilot: Unified AI Chatbot with 5 Models (AML-3304 Assignment)
4
 
5
  import streamlit as st
6
  from transformers import AutoTokenizer, AutoModelForCausalLM, AutoModelForSeq2SeqLM
@@ -14,7 +13,7 @@ st.markdown("AML-3304 Assignment: From Tokens to Transformers")
14
  if 'mode' not in st.session_state:
15
  st.session_state.mode = 'Code Generator'
16
 
17
- # UI Buttons for mode switching
18
  cols = st.columns(5)
19
  with cols[0]:
20
  if st.button("πŸ§‘β€πŸ’» Code Generator"):
@@ -26,18 +25,18 @@ with cols[2]:
26
  if st.button("πŸ“Š Bayesian Q&A"):
27
  st.session_state.mode = 'Bayesian Q&A'
28
  with cols[3]:
29
- if st.button("🌐 DeepSeek Coder"):
30
- st.session_state.mode = 'DeepSeek Coder'
31
  with cols[4]:
32
- if st.button("πŸ” Tokenizer Introspector"):
33
- st.session_state.mode = 'Tokenizer'
34
 
35
  st.markdown(f"### πŸ”„ Current Mode: **{st.session_state.mode}**")
36
 
37
  # User input
38
  user_input = st.text_area("Enter your prompt/question:")
39
 
40
- # Cache model loaders
41
  @st.cache_resource
42
  def load_codegen():
43
  tokenizer = AutoTokenizer.from_pretrained("Salesforce/codegen-350M-mono")
@@ -50,19 +49,7 @@ def load_flan():
50
  model = AutoModelForSeq2SeqLM.from_pretrained("google/flan-t5-base")
51
  return tokenizer, model
52
 
53
- @st.cache_resource
54
- def load_deepseek():
55
- tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/deepseek-coder-1.3b-base")
56
- model = AutoModelForCausalLM.from_pretrained("deepseek-ai/deepseek-coder-1.3b-base")
57
- return tokenizer, model
58
-
59
- @st.cache_resource
60
- def load_deepseek_coder():
61
- tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/deepseek-coder-6.7b-instruct")
62
- model = AutoModelForCausalLM.from_pretrained("deepseek-ai/deepseek-coder-6.7b-instruct")
63
- return tokenizer, model
64
-
65
- # Model inference
66
  if user_input and st.session_state.mode:
67
  with st.spinner("Generating response..."):
68
  if st.session_state.mode == 'Code Generator':
@@ -74,31 +61,34 @@ if user_input and st.session_state.mode:
74
  st.code(result, language="python")
75
 
76
  elif st.session_state.mode == 'General Q&A':
77
- tokenizer, model = load_deepseek()
78
  inputs = tokenizer(user_input, return_tensors="pt")
79
  outputs = model.generate(**inputs, max_new_tokens=150)
80
  result = tokenizer.decode(outputs[0], skip_special_tokens=True)
81
- st.subheader("πŸ“˜ Answer")
82
  st.write(result)
83
 
84
  elif st.session_state.mode == 'Bayesian Q&A':
85
- tokenizer, model = load_deepseek()
86
  inputs = tokenizer(user_input, return_tensors="pt")
87
- outputs = model.generate(**inputs, do_sample=True, temperature=0.9, top_k=40, max_new_tokens=100)
88
  result = tokenizer.decode(outputs[0], skip_special_tokens=True)
89
  st.subheader("πŸ“Š Bayesian-style Answer:")
90
  st.write(result)
91
 
92
- elif st.session_state.mode == 'DeepSeek Coder':
93
- tokenizer, model = load_deepseek_coder()
94
  inputs = tokenizer(user_input, return_tensors="pt")
95
  outputs = model.generate(inputs["input_ids"], max_new_tokens=128, do_sample=True, temperature=0.8)
96
  result = tokenizer.decode(outputs[0], skip_special_tokens=True)
97
- st.subheader("🌐 DeepSeek Code:")
98
  st.code(result, language="python")
99
 
100
- elif st.session_state.mode == 'Tokenizer':
101
- tokenizer, _ = load_flan()
102
- tokens = tokenizer.tokenize(user_input)
103
- st.subheader("πŸ”¬ Tokenized Output:")
104
- st.write(tokens)
 
 
 
 
 
1
  # app.py
2
+ # PromptPilot: Unified AI Chatbot with 5 Lightweight Modes (AML-3304 Assignment)
3
 
4
  import streamlit as st
5
  from transformers import AutoTokenizer, AutoModelForCausalLM, AutoModelForSeq2SeqLM
 
13
  if 'mode' not in st.session_state:
14
  st.session_state.mode = 'Code Generator'
15
 
16
+ # UI Buttons
17
  cols = st.columns(5)
18
  with cols[0]:
19
  if st.button("πŸ§‘β€πŸ’» Code Generator"):
 
25
  if st.button("πŸ“Š Bayesian Q&A"):
26
  st.session_state.mode = 'Bayesian Q&A'
27
  with cols[3]:
28
+ if st.button("🌐 Lightweight Coder"):
29
+ st.session_state.mode = 'Lightweight Coder'
30
  with cols[4]:
31
+ if st.button("πŸ” Transformer Explorer"):
32
+ st.session_state.mode = 'Transformer Explorer'
33
 
34
  st.markdown(f"### πŸ”„ Current Mode: **{st.session_state.mode}**")
35
 
36
  # User input
37
  user_input = st.text_area("Enter your prompt/question:")
38
 
39
+ # Load models
40
  @st.cache_resource
41
  def load_codegen():
42
  tokenizer = AutoTokenizer.from_pretrained("Salesforce/codegen-350M-mono")
 
49
  model = AutoModelForSeq2SeqLM.from_pretrained("google/flan-t5-base")
50
  return tokenizer, model
51
 
52
+ # Inference
 
 
 
 
 
 
 
 
 
 
 
 
53
  if user_input and st.session_state.mode:
54
  with st.spinner("Generating response..."):
55
  if st.session_state.mode == 'Code Generator':
 
61
  st.code(result, language="python")
62
 
63
  elif st.session_state.mode == 'General Q&A':
64
+ tokenizer, model = load_flan()
65
  inputs = tokenizer(user_input, return_tensors="pt")
66
  outputs = model.generate(**inputs, max_new_tokens=150)
67
  result = tokenizer.decode(outputs[0], skip_special_tokens=True)
68
+ st.subheader("πŸ“˜ Answer:")
69
  st.write(result)
70
 
71
  elif st.session_state.mode == 'Bayesian Q&A':
72
+ tokenizer, model = load_flan()
73
  inputs = tokenizer(user_input, return_tensors="pt")
74
+ outputs = model.generate(**inputs, do_sample=True, top_k=40, temperature=0.9, max_new_tokens=100)
75
  result = tokenizer.decode(outputs[0], skip_special_tokens=True)
76
  st.subheader("πŸ“Š Bayesian-style Answer:")
77
  st.write(result)
78
 
79
+ elif st.session_state.mode == 'Lightweight Coder':
80
+ tokenizer, model = load_codegen()
81
  inputs = tokenizer(user_input, return_tensors="pt")
82
  outputs = model.generate(inputs["input_ids"], max_new_tokens=128, do_sample=True, temperature=0.8)
83
  result = tokenizer.decode(outputs[0], skip_special_tokens=True)
84
+ st.subheader("🌐 Lightweight Code:")
85
  st.code(result, language="python")
86
 
87
+ elif st.session_state.mode == 'Transformer Explorer':
88
+ tokenizer, model = load_flan()
89
+ prompt = f"Paraphrase this: {user_input}"
90
+ inputs = tokenizer(prompt, return_tensors="pt")
91
+ outputs = model.generate(**inputs, max_new_tokens=100)
92
+ result = tokenizer.decode(outputs[0], skip_special_tokens=True)
93
+ st.subheader("πŸ” Paraphrased by Transformer:")
94
+ st.write(result)