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
""")