Tim13ekd commited on
Commit
775b0e2
·
verified ·
1 Parent(s): 9f8f775

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -45
app.py CHANGED
@@ -1,64 +1,67 @@
1
  import gradio as gr
2
  from groq import Groq
3
- import os
4
 
5
- # ✅ Groq-Client initialisieren (Secret auslesen)
6
- api_key = os.environ.get("GROQ_API_KEY")
7
- if not api_key:
8
- raise ValueError("Bitte GROQ_API_KEY als Secret in deinem Space hinterlegen!")
9
-
10
- client = Groq(api_key=api_key)
11
-
12
- # 🔹 Funktion zur Spiel-Generierung
13
- def generate_game(prompt):
14
  """
15
- Nimmt eine Spielidee als Text und gibt kompletten HTML5-Code zurück.
 
 
16
  """
17
- completion = client.chat.completions.create(
18
- model="llama3-70b-8192",
19
- messages=[
20
- {
21
- "role": "system",
22
- "content": (
23
- "Du bist ein professioneller Game Developer. "
24
- "Erzeuge vollständigen, sauberen HTML5-Spielcode. "
25
- "Nur HTML + JS, keine Erklärungen, kein Markdown. "
26
- "Canvas basiertes Spiel, spielbar im Browser."
27
- )
28
- },
29
- {"role": "user", "content": prompt}
30
- ],
31
- temperature=0.8
32
- )
33
- # Der generierte HTML-Code
34
- return completion.choices[0].message.content
 
 
 
 
 
35
 
36
- # 🔹 Gradio UI
37
  with gr.Blocks() as demo:
38
- gr.Markdown("# ⚡ Groq HTML5 Game Generator")
39
  gr.Markdown(
40
- "Gib eine Spielidee ein, die KI generiert das HTML5-Spiel. "
41
- "Der Code wird direkt spielbar im Browser."
42
  )
43
 
44
- prompt = gr.Textbox(
45
- label="Spielidee",
46
- placeholder="Beispiel: 2D Jump'n'Run mit Gegnern und Score",
47
- lines=3
48
- )
 
 
 
 
 
 
49
 
50
- btn = gr.Button("🎮 Generieren")
51
 
52
- code = gr.Code(
53
  language="html",
54
  label="HTML5 Game Code",
55
  lines=25
56
  )
57
-
58
- preview = gr.HTML(label="Game Vorschau")
59
 
60
  # Events
61
- btn.click(generate_game, prompt, code)
62
- code.change(lambda x: x, code, preview)
63
 
64
- demo.launch()
 
1
  import gradio as gr
2
  from groq import Groq
 
3
 
4
+ def generate_game(api_key, prompt):
 
 
 
 
 
 
 
 
5
  """
6
+ Generiert ein HTML5-Spiel mit Groq.
7
+ api_key: Groq API Key (wird nur im Speicher genutzt)
8
+ prompt: Spielidee
9
  """
10
+ if not api_key:
11
+ return "Bitte API-Key eingeben!"
12
+
13
+ try:
14
+ client = Groq(api_key=api_key)
15
+ completion = client.chat.completions.create(
16
+ model="llama3-70b-8192",
17
+ messages=[
18
+ {
19
+ "role": "system",
20
+ "content": (
21
+ "Du bist ein professioneller Game Developer. "
22
+ "Generiere sauberen, vollständigen HTML5-Code. "
23
+ "Nur HTML + JS, keine Erklärungen, nur Canvas-Spiele."
24
+ )
25
+ },
26
+ {"role": "user", "content": prompt}
27
+ ],
28
+ temperature=0.8
29
+ )
30
+ return completion.choices[0].message.content
31
+ except Exception as e:
32
+ return f"Fehler: {e}"
33
 
34
+ # UI mit Gradio
35
  with gr.Blocks() as demo:
36
+ gr.Markdown("# ⚡ KI HTML5 Game Generator")
37
  gr.Markdown(
38
+ "Trage deinen GROQ API-Key ein (wird nicht gespeichert) und gib eine Spielidee ein. "
39
+ "Die KI generiert HTML5-Code, der direkt spielbar ist."
40
  )
41
 
42
+ with gr.Row():
43
+ api_key_input = gr.Textbox(
44
+ label="GROQ API-Key",
45
+ placeholder="Hier API-Key einfügen",
46
+ type="password"
47
+ )
48
+ prompt_input = gr.Textbox(
49
+ label="Spielidee",
50
+ placeholder="Beispiel: 2D Jump'n'Run mit Gegnern",
51
+ lines=3
52
+ )
53
 
54
+ btn = gr.Button("🎮 Spiel generieren")
55
 
56
+ code_output = gr.Code(
57
  language="html",
58
  label="HTML5 Game Code",
59
  lines=25
60
  )
61
+ preview_output = gr.HTML(label="Game Vorschau")
 
62
 
63
  # Events
64
+ btn.click(generate_game, inputs=[api_key_input, prompt_input], outputs=code_output)
65
+ code_output.change(lambda x: x, code_output, preview_output)
66
 
67
+ demo.launch()