Python_tutor / app.py
krisha06's picture
Update app.py
f8eaabf verified
Raw
History Blame
1.44 kB
import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers import pipeline
import streamlit as st
import os
# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained("TinyLlama/TinyLlama-1.1B-Chat-v1.0")
# Load base model
base_model = AutoModelForCausalLM.from_pretrained(
"TinyLlama/TinyLlama-1.1B-Chat-v1.0",
device_map="auto",
torch_dtype=torch.float32
)
# Load LoRA adapter
model = PeftModel.from_pretrained(base_model, "lora_adapter", device_map="auto")
# Load pipeline
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)
# Streamlit UI
st.title("🧠 TinyLLaMA Python Tutor (LoRA)")
st.write("Ask me any Python programming question:")
user_input = st.text_input("Your question")
if user_input:
if "python" in user_input.lower() or "list" in user_input.lower() or "tuple" in user_input.lower() or "def " in user_input.lower() or "class" in user_input.lower():
prompt = f"""You are a helpful and friendly Python tutor. Only answer Python programming questions. Be clear and concise.
Question: {user_input}
Answer:"""
response = pipe(prompt, max_new_tokens=256, temperature=0.7, do_sample=True)[0]["generated_text"]
answer = response.split("Answer:")[-1].strip()
st.markdown(f"💬 **Answer:**\n\n{answer}")
else:
st.warning("❌ Sorry, I can only answer Python programming questions.")