Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import torch | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| st.set_page_config(page_title="AI Quote Generator", page_icon="✨") | |
| st.title("🎭 AI Quote Generator with Style Transfer") | |
| def load_model(): | |
| model = AutoModelForCausalLM.from_pretrained("ijuganu/quote-generator") | |
| tokenizer = AutoTokenizer.from_pretrained("ijuganu/quote-generator") | |
| device = "cuda" if torch.cuda.is_available() else "cpu" | |
| model.to(device) | |
| return model, tokenizer, device | |
| with st.spinner("Loading AI model..."): | |
| model, tokenizer, device = load_model() | |
| st.success("Model ready!") | |
| topic = st.text_input("Enter a topic:", "Success") | |
| temperature = st.slider("Creativity", 0.5, 1.5, 0.85) | |
| if st.button("Generate Quote"): | |
| prompt = f"Quote: {topic}" | |
| inputs = tokenizer.encode(prompt, return_tensors='pt').to(device) | |
| attention_mask = torch.ones_like(inputs).to(device) | |
| with torch.no_grad(): | |
| outputs = model.generate( | |
| inputs, | |
| attention_mask=attention_mask, | |
| max_length=100, | |
| temperature=temperature, | |
| do_sample=True, | |
| top_k=50, | |
| pad_token_id=tokenizer.eos_token_id | |
| ) | |
| quote = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| quote = quote.replace(prompt, '').strip() | |
| st.markdown(f"> *\"{quote}\"*") |