Spaces:
Sleeping
Sleeping
File size: 1,678 Bytes
7c6b19a 80e7abb d19bd0a 7c6b19a 5bb2577 80e7abb d19bd0a 5bb2577 d19bd0a 5bb2577 d19bd0a 7c6b19a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
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)
|