File size: 3,472 Bytes
0552b81 df02228 0552b81 df02228 0552b81 df02228 0552b81 df02228 0552b81 df02228 0552b81 df02228 4235103 df02228 4235103 0552b81 df02228 0552b81 df02228 0552b81 df02228 0552b81 df02228 0552b81 df02228 0552b81 df02228 b0ce7e8 df02228 b0ce7e8 df02228 b0ce7e8 df02228 0552b81 df02228 0552b81 df02228 4235103 df02228 0552b81 df02228 0552b81 df02228 4235103 df02228 0552b81 df02228 0552b81 df02228 0552b81 |
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
import streamlit as st
from transformers import pipeline
# Titel und Beschreibung der Anwendung
st.title("🚀 Marketing Text Generator")
st.markdown("*Erstelle kreative Marketing-Texte mit KI-Unterstützung*")
# Wir verwenden @st.cache_resource, damit das Modell nicht bei jeder Interaktion neu geladen wird
@st.cache_resource
def load_gpt2():
"""
Lädt das GPT-2 Modell in einer einfachen Pipeline-Konfiguration.
Die Pipeline vereinfacht die Textgenerierung erheblich.
"""
try:
# device=-1 bedeutet, dass wir die CPU verwenden
return pipeline('text-generation', model='gpt2', device=-1)
except Exception as e:
st.error(f"Modell konnte nicht geladen werden: {str(e)}")
return None
# Hauptformular für die Benutzereingaben
with st.form("marketing_form"):
# Eingabefeld für den Produktnamen
product_name = st.text_input(
"Produktname",
help="Wie heißt das Produkt, für das Sie einen Text erstellen möchten?"
)
# Eingabefeld für die Produkteigenschaften
key_features = st.text_area(
"Produktmerkmale",
help="Was macht Ihr Produkt besonders? (Eigenschaften durch Kommas trennen)"
)
# Längensteuerung für den generierten Text
max_length = st.slider(
"Textlänge",
min_value=50,
max_value=150,
value=100,
help="Längere Texte brauchen mehr Zeit zur Generierung"
)
# Formular-Button
submit = st.form_submit_button("Text generieren")
# Wenn der Button geklickt wurde und alle Felder ausgefüllt sind
if submit and product_name and key_features:
# Modell laden mit Fortschrittsanzeige
with st.spinner("Lade KI-Modell..."):
generator = load_gpt2()
if generator:
# Marketing-spezifischen Prompt erstellen
prompt = f"""
Create a marketing text in German for the following product:
Product: {product_name}
Features: {key_features}
Advertising text in German:
"""
try:
# Text generieren mit Fortschrittsanzeige
with st.spinner("Erstelle Marketing-Text..."):
result = generator(
prompt,
max_length=max_length,
num_return_sequences=1,
temperature=0.7
)
# Generierten Text extrahieren und anzeigen
generated_text = result[0]['generated_text']
st.success("Text wurde generiert!")
st.markdown("### Ihr Marketing-Text:")
st.markdown(generated_text)
# Download-Option
st.download_button(
"Text speichern",
generated_text,
file_name="marketing_text.txt"
)
except Exception as e:
st.error(f"Fehler bei der Textgenerierung: {str(e)}")
# Wenn der Button geklickt wurde, aber Felder fehlen
elif submit:
st.warning("Bitte füllen Sie alle Felder aus.")
# Hilfreiche Informationen am Ende
st.markdown("---")
st.markdown("""
**Hinweise zur Benutzung:**
- Die erste Generierung dauert etwas länger, da das Modell geladen werden muss
- Versuchen Sie verschiedene Beschreibungen für optimale Ergebnisse
- Prüfen und bearbeiten Sie die generierten Texte vor der Verwendung
""") |