pradeep4321 commited on
Commit
45b1038
Β·
verified Β·
1 Parent(s): 5d9a347

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +17 -32
src/streamlit_app.py CHANGED
@@ -1,7 +1,6 @@
1
  import streamlit as st
2
  import torch
3
  from transformers import AutoTokenizer, AutoModelForCausalLM
4
- import os
5
 
6
  # ==============================
7
  # πŸ” HIDE STREAMLIT MENU
@@ -21,31 +20,18 @@ footer {visibility: hidden;}
21
  st.set_page_config(page_title="πŸ’» AI Code Generator", layout="wide")
22
 
23
  # ==============================
24
- # HF TOKEN (SECURE)
25
- # ==============================
26
- HF_TOKEN = os.environ.get("HF_TOKEN")
27
-
28
- if not HF_TOKEN:
29
- st.error("❌ HF_TOKEN not found. Add it in Hugging Face Secrets.")
30
- st.stop()
31
-
32
- # ==============================
33
- # LOAD MODEL (CACHED)
34
  # ==============================
35
  @st.cache_resource
36
  def load_model():
37
- model_name = "google/codegemma-2b"
38
 
39
- tokenizer = AutoTokenizer.from_pretrained(
40
- model_name,
41
- token=HF_TOKEN
42
- )
43
 
44
  model = AutoModelForCausalLM.from_pretrained(
45
  model_name,
46
- token=HF_TOKEN,
47
- torch_dtype=torch.float16,
48
- device_map="auto"
49
  )
50
 
51
  return tokenizer, model
@@ -57,38 +43,37 @@ tokenizer, model = load_model()
57
  # ==============================
58
  def generate_code(prompt, language):
59
 
60
- full_prompt = f"""
61
- You are an expert {language} developer.
62
-
63
- Write clean, optimized, production-ready code.
64
 
65
  Task:
66
  {prompt}
67
 
68
- Rules:
69
- - Only return code
70
- - No explanation
71
  """
72
 
73
- inputs = tokenizer(full_prompt, return_tensors="pt").to(model.device)
74
 
75
  outputs = model.generate(
76
  **inputs,
77
- max_new_tokens=300,
78
  temperature=0.2,
79
  top_p=0.9,
80
- do_sample=True
81
  )
82
 
83
  result = tokenizer.decode(outputs[0], skip_special_tokens=True)
84
 
85
- # Remove prompt from output
86
- return result.replace(full_prompt, "").strip()
 
 
 
87
 
88
  # ==============================
89
  # UI
90
  # ==============================
91
- st.title("πŸ’» AI Code Generator (CodeGemma)")
92
 
93
  col1, col2 = st.columns(2)
94
 
 
1
  import streamlit as st
2
  import torch
3
  from transformers import AutoTokenizer, AutoModelForCausalLM
 
4
 
5
  # ==============================
6
  # πŸ” HIDE STREAMLIT MENU
 
20
  st.set_page_config(page_title="πŸ’» AI Code Generator", layout="wide")
21
 
22
  # ==============================
23
+ # LOAD MODEL (FAST)
 
 
 
 
 
 
 
 
 
24
  # ==============================
25
  @st.cache_resource
26
  def load_model():
27
+ model_name = "microsoft/phi-2"
28
 
29
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
 
 
 
30
 
31
  model = AutoModelForCausalLM.from_pretrained(
32
  model_name,
33
+ torch_dtype=torch.float32, # CPU friendly
34
+ device_map=None # avoid GPU issues
 
35
  )
36
 
37
  return tokenizer, model
 
43
  # ==============================
44
  def generate_code(prompt, language):
45
 
46
+ full_prompt = f"""### Instruction:
47
+ Write a {language} program for the following task.
 
 
48
 
49
  Task:
50
  {prompt}
51
 
52
+ ### Response:
 
 
53
  """
54
 
55
+ inputs = tokenizer(full_prompt, return_tensors="pt")
56
 
57
  outputs = model.generate(
58
  **inputs,
59
+ max_new_tokens=150,
60
  temperature=0.2,
61
  top_p=0.9,
62
+ do_sample=False
63
  )
64
 
65
  result = tokenizer.decode(outputs[0], skip_special_tokens=True)
66
 
67
+ # Extract only response part
68
+ if "### Response:" in result:
69
+ result = result.split("### Response:")[-1]
70
+
71
+ return result.strip()
72
 
73
  # ==============================
74
  # UI
75
  # ==============================
76
+ st.title("πŸ’» AI Code Generator (Fast & Accurate)")
77
 
78
  col1, col2 = st.columns(2)
79