Jan Kirenz
using gpt-2
df02228
raw
history blame
3.47 kB
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
""")