Keira James
update app
5bb2577
raw
history blame
1.68 kB
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)