import streamlit as st from transformers import AutoTokenizer, AutoModelForCausalLM import torch # Define the model name model_name = "Qwen/Qwen2.5-1.5B-Instruct" # Load the model and tokenizer model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto" ) tokenizer = AutoTokenizer.from_pretrained(model_name) # Function to generate a response def generate_response(prompt): if not prompt: return "Please enter a prompt." # Create the messages for chat-based model messages = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": prompt} ] # Format the input for the model text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) model_inputs = tokenizer([text], return_tensors="pt").to(model.device) # Generate model response generated_ids = model.generate( **model_inputs, max_new_tokens=512 ) # Decode and return the response generated_ids = [ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) ] response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] return response # Streamlit UI st.title("AI Text Generator") prompt = st.text_area("Enter your prompt:", placeholder="Type your question or prompt here...") if st.button("Generate Response"): with st.spinner("Generating response..."): response = generate_response(prompt) st.text_area("Model Response:", value=response, height=200, disabled=True)