|
import streamlit as st |
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
import torch |
|
|
|
|
|
st.title("🚀 Marketing Text Generator mit Falcon") |
|
st.markdown("*Generiere kreative Marketing-Texte mit dem Falcon-7B Modell*") |
|
|
|
|
|
|
|
@st.cache_resource |
|
def load_falcon_model(): |
|
""" |
|
Lädt das Falcon Modell und den zugehörigen Tokenizer. |
|
Falcon ist bekannt für seine kreativen Textgenerierungsfähigkeiten. |
|
""" |
|
try: |
|
|
|
model_name = "tiiuae/falcon-7b" |
|
|
|
|
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
|
|
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
model_name, |
|
trust_remote_code=True, |
|
device_map="auto", |
|
load_in_8bit=True |
|
) |
|
|
|
return model, tokenizer |
|
|
|
except Exception as e: |
|
st.error(f"Fehler beim Laden des Modells: {str(e)}") |
|
return None, None |
|
|
|
|
|
with st.form("marketing_form"): |
|
|
|
product_name = st.text_input( |
|
"Produktname", |
|
help="Geben Sie den Namen Ihres Produkts ein" |
|
) |
|
|
|
key_features = st.text_area( |
|
"Produktmerkmale", |
|
help="Beschreiben Sie die wichtigsten Eigenschaften (durch Kommas getrennt)" |
|
) |
|
|
|
|
|
submit = st.form_submit_button("Marketing-Text generieren") |
|
|
|
|
|
if submit and product_name and key_features: |
|
|
|
with st.spinner("Lade Falcon Modell..."): |
|
model, tokenizer = load_falcon_model() |
|
|
|
if model and tokenizer: |
|
|
|
prompt = f""" |
|
Erstelle einen kurzen, überzeugenden Marketing-Text für folgendes Produkt: |
|
Produkt: {product_name} |
|
Merkmale: {key_features} |
|
|
|
Der Text sollte professionell und ansprechend sein. |
|
""" |
|
|
|
|
|
with st.spinner("Generiere Marketing-Text..."): |
|
|
|
inputs = tokenizer(prompt, return_tensors="pt").to(model.device) |
|
|
|
|
|
with torch.no_grad(): |
|
outputs = model.generate( |
|
**inputs, |
|
max_length=200, |
|
temperature=0.7, |
|
top_p=0.9, |
|
num_return_sequences=1 |
|
) |
|
|
|
|
|
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
|
|
|
|
st.success("Text wurde erfolgreich generiert!") |
|
st.markdown("### Ihr Marketing-Text:") |
|
st.markdown(generated_text) |
|
|
|
|
|
st.download_button( |
|
"Text als Datei speichern", |
|
generated_text, |
|
file_name="marketing_text.txt" |
|
) |
|
elif submit: |
|
st.warning("Bitte füllen Sie alle Felder aus.") |
|
|
|
|
|
st.markdown("---") |
|
st.markdown(""" |
|
**Hinweise zur Nutzung:** |
|
- Die erste Generierung kann etwas länger dauern, da das Modell geladen werden muss |
|
- Experimentieren Sie mit verschiedenen Beschreibungen für beste Ergebnisse |
|
""") |