Jan Kirenz commited on
Commit
ad6f073
1 Parent(s): df02228

german gpt2

Browse files
Files changed (2) hide show
  1. .gitignore +1 -0
  2. app.py +21 -31
.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ .env
app.py CHANGED
@@ -1,39 +1,31 @@
1
  import streamlit as st
2
  from transformers import pipeline
3
 
4
- # Titel und Beschreibung der Anwendung
5
  st.title("🚀 Marketing Text Generator")
6
  st.markdown("*Erstelle kreative Marketing-Texte mit KI-Unterstützung*")
7
 
8
- # Wir verwenden @st.cache_resource, damit das Modell nicht bei jeder Interaktion neu geladen wird
9
  @st.cache_resource
10
  def load_gpt2():
11
- """
12
- Lädt das GPT-2 Modell in einer einfachen Pipeline-Konfiguration.
13
- Die Pipeline vereinfacht die Textgenerierung erheblich.
14
- """
15
  try:
16
- # device=-1 bedeutet, dass wir die CPU verwenden
17
- return pipeline('text-generation', model='gpt2', device=-1)
 
 
18
  except Exception as e:
19
  st.error(f"Modell konnte nicht geladen werden: {str(e)}")
20
  return None
21
 
22
- # Hauptformular für die Benutzereingaben
23
  with st.form("marketing_form"):
24
- # Eingabefeld für den Produktnamen
25
  product_name = st.text_input(
26
  "Produktname",
27
  help="Wie heißt das Produkt, für das Sie einen Text erstellen möchten?"
28
  )
29
 
30
- # Eingabefeld für die Produkteigenschaften
31
  key_features = st.text_area(
32
  "Produktmerkmale",
33
  help="Was macht Ihr Produkt besonders? (Eigenschaften durch Kommas trennen)"
34
  )
35
 
36
- # Längensteuerung für den generierten Text
37
  max_length = st.slider(
38
  "Textlänge",
39
  min_value=50,
@@ -42,57 +34,55 @@ with st.form("marketing_form"):
42
  help="Längere Texte brauchen mehr Zeit zur Generierung"
43
  )
44
 
45
- # Formular-Button
46
  submit = st.form_submit_button("Text generieren")
47
 
48
- # Wenn der Button geklickt wurde und alle Felder ausgefüllt sind
49
  if submit and product_name and key_features:
50
- # Modell laden mit Fortschrittsanzeige
51
  with st.spinner("Lade KI-Modell..."):
52
  generator = load_gpt2()
53
 
54
  if generator:
55
- # Marketing-spezifischen Prompt erstellen
56
- prompt = f"""
57
- Create a marketing text in German for the following product:
58
- Product: {product_name}
59
- Features: {key_features}
60
-
61
- Advertising text in German:
62
- """
 
63
 
64
  try:
65
- # Text generieren mit Fortschrittsanzeige
66
  with st.spinner("Erstelle Marketing-Text..."):
67
  result = generator(
68
  prompt,
69
  max_length=max_length,
70
  num_return_sequences=1,
71
- temperature=0.7
 
 
72
  )
73
 
74
- # Generierten Text extrahieren und anzeigen
75
  generated_text = result[0]['generated_text']
76
 
 
 
 
77
  st.success("Text wurde generiert!")
78
  st.markdown("### Ihr Marketing-Text:")
79
- st.markdown(generated_text)
80
 
81
- # Download-Option
82
  st.download_button(
83
  "Text speichern",
84
- generated_text,
85
  file_name="marketing_text.txt"
86
  )
87
 
88
  except Exception as e:
89
  st.error(f"Fehler bei der Textgenerierung: {str(e)}")
90
 
91
- # Wenn der Button geklickt wurde, aber Felder fehlen
92
  elif submit:
93
  st.warning("Bitte füllen Sie alle Felder aus.")
94
 
95
- # Hilfreiche Informationen am Ende
96
  st.markdown("---")
97
  st.markdown("""
98
  **Hinweise zur Benutzung:**
 
1
  import streamlit as st
2
  from transformers import pipeline
3
 
 
4
  st.title("🚀 Marketing Text Generator")
5
  st.markdown("*Erstelle kreative Marketing-Texte mit KI-Unterstützung*")
6
 
 
7
  @st.cache_resource
8
  def load_gpt2():
 
 
 
 
9
  try:
10
+ # Wir verwenden das deutsche GPT-2 Modell für bessere deutsche Texte
11
+ return pipeline('text-generation',
12
+ model='benjamin/german-gpt2',
13
+ device=-1)
14
  except Exception as e:
15
  st.error(f"Modell konnte nicht geladen werden: {str(e)}")
16
  return None
17
 
 
18
  with st.form("marketing_form"):
 
19
  product_name = st.text_input(
20
  "Produktname",
21
  help="Wie heißt das Produkt, für das Sie einen Text erstellen möchten?"
22
  )
23
 
 
24
  key_features = st.text_area(
25
  "Produktmerkmale",
26
  help="Was macht Ihr Produkt besonders? (Eigenschaften durch Kommas trennen)"
27
  )
28
 
 
29
  max_length = st.slider(
30
  "Textlänge",
31
  min_value=50,
 
34
  help="Längere Texte brauchen mehr Zeit zur Generierung"
35
  )
36
 
 
37
  submit = st.form_submit_button("Text generieren")
38
 
 
39
  if submit and product_name and key_features:
 
40
  with st.spinner("Lade KI-Modell..."):
41
  generator = load_gpt2()
42
 
43
  if generator:
44
+ # Verbesserter deutscher Prompt
45
+ prompt = f"""Werbetext für ein innovatives Produkt:
46
+ {product_name}
47
+
48
+ Besondere Eigenschaften:
49
+ {key_features}
50
+
51
+ Überzeugender Werbetext:
52
+ Entdecken Sie {product_name} - """
53
 
54
  try:
 
55
  with st.spinner("Erstelle Marketing-Text..."):
56
  result = generator(
57
  prompt,
58
  max_length=max_length,
59
  num_return_sequences=1,
60
+ temperature=0.8, # Etwas mehr Kreativität
61
+ top_p=0.9, # Mehr Variabilität
62
+ do_sample=True # Kreativeres Sampling
63
  )
64
 
 
65
  generated_text = result[0]['generated_text']
66
 
67
+ # Text nachbearbeiten um nur den generierten Teil zu zeigen
68
+ final_text = generated_text.split("Überzeugender Werbetext:")[-1].strip()
69
+
70
  st.success("Text wurde generiert!")
71
  st.markdown("### Ihr Marketing-Text:")
72
+ st.markdown(final_text)
73
 
 
74
  st.download_button(
75
  "Text speichern",
76
+ final_text,
77
  file_name="marketing_text.txt"
78
  )
79
 
80
  except Exception as e:
81
  st.error(f"Fehler bei der Textgenerierung: {str(e)}")
82
 
 
83
  elif submit:
84
  st.warning("Bitte füllen Sie alle Felder aus.")
85
 
 
86
  st.markdown("---")
87
  st.markdown("""
88
  **Hinweise zur Benutzung:**