sample_coder / src /streamlit_app.py
pradeep4321's picture
Update src/streamlit_app.py
7087b82 verified
raw
history blame
2.27 kB
import streamlit as st
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
# ==============================
# πŸ” HIDE STREAMLIT MENU
# ==============================
st.markdown("""
<style>
#MainMenu {visibility: hidden;}
header {visibility: hidden;}
footer {visibility: hidden;}
.stDeployButton {display:none;}
</style>
""", unsafe_allow_html=True)
# ==============================
# PAGE CONFIG
# ==============================
st.set_page_config(page_title="πŸ’» AI Code Generator", layout="wide")
# ==============================
# LOAD MODEL
# ==============================
@st.cache_resource
def load_model():
model_name = "codellama/CodeLlama-7b-Instruct-hf"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16,
device_map="auto"
)
return tokenizer, model
tokenizer, model = load_model()
# ==============================
# CODE GENERATION FUNCTION
# ==============================
def generate_code(prompt, language):
full_prompt = f"""
You are an expert {language} developer.
Write clean, optimized, production-ready code.
Task:
{prompt}
Rules:
- Only return code
- No explanation
"""
inputs = tokenizer(full_prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=300,
temperature=0.2,
top_p=0.9
)
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
return result.replace(full_prompt, "").strip()
# ==============================
# UI
# ==============================
st.title("πŸ’» AI Code Generator")
col1, col2 = st.columns(2)
with col1:
user_prompt = st.text_area("Describe your task", height=200)
with col2:
language = st.selectbox(
"Select Programming Language",
["Python", "JavaScript", "SQL", "Java", "C++", "HTML", "CSS"]
)
if st.button("Generate Code"):
if not user_prompt.strip():
st.warning("Please enter a task")
else:
with st.spinner("Generating code..."):
code = generate_code(user_prompt, language)
st.success("βœ… Generated Code")
st.code(code, language=language.lower())