sky-meilin commited on
Commit
193fda1
·
verified ·
1 Parent(s): 84d88d2

Create app_v3.py

Browse files
Files changed (1) hide show
  1. app_v3.py +83 -0
app_v3.py ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import requests
3
+ import os
4
+ from PIL import Image, ImageDraw, ImageFont
5
+ import random
6
+
7
+ # Perplexity API Config
8
+ PPLX_API_KEY = os.getenv("PPLX_API_KEY", "pplx-your-key-here")
9
+ PPLX_URL = "https://api.perplexity.ai/v1/responses"
10
+
11
+ # Deine Assets
12
+ videos = ["https://agi-prod-file-upload-public-main-use1.s3.amazonaws.com/file97.mp4"] # Mock S3 URLs
13
+ images = ["https://agi-prod-file-upload-public-main-use1.s3.amazonaws.com/9a84aff3-d56b-4001-8ad8-471e0bd23b6d"]
14
+
15
+ def generate_ai_task(bewerbung):
16
+ """Perplexity API: Custom Task basierend auf User-Input"""
17
+ headers = {
18
+ "Authorization": f"Bearer {PPLX_API_KEY}",
19
+ "Content-Type": "application/json"
20
+ }
21
+ payload = {
22
+ "model": "sonar-pro", # Oder sonar (schneller)
23
+ "messages": [
24
+ {
25
+ "role": "system",
26
+ "content": "Du bist Goddess Annabelle. Generiere 3 demütigende BNWO Sissy-Tasks basierend auf der Bewerbung."
27
+ },
28
+ {
29
+ "role": "user",
30
+ "content": f"Bewerbung: {bewerbung}"
31
+ }
32
+ ],
33
+ "max_tokens": 300,
34
+ "temperature": 0.8
35
+ }
36
+
37
+ try:
38
+ response = requests.post(PPLX_URL, json=payload, headers=headers)
39
+ response.raise_for_status()
40
+ return response.json()["choices"][0]["message"]["content"]
41
+ except Exception as e:
42
+ return f"⚠️ API Error: {str(e)}"
43
+
44
+ def generate_cert_v3(name, bewerbung, tribut):
45
+ if float(tribut) < 35:
46
+ return "❌ Mind. 35€!", None, None, None
47
+
48
+ # Cert generieren
49
+ img = Image.new('RGB', (800, 600), 'black')
50
+ draw = ImageDraw.Draw(img)
51
+ font = ImageFont.load_default()
52
+ draw.text((50, 50), f"SISSY CERT
53
+ {name}
54
+ ✅ Verifiziert", fill='red', font=font)
55
+
56
+ # AI-Task via Perplexity
57
+ ai_task = generate_ai_task(bewerbung)
58
+
59
+ # Random Video
60
+ video = random.choice(videos)
61
+
62
+ return "✅ Cert + AI-Task erteilt!", img, video, ai_task
63
+
64
+ # Gradio Interface
65
+ iface = gr.Interface(
66
+ fn=generate_cert_v3,
67
+ inputs=[
68
+ gr.Textbox(label="Sissy Name", placeholder="z.B. Sissy Sabrina"),
69
+ gr.Textbox(label="Bewerbung (min. 100 Zeichen)", lines=5),
70
+ gr.Number(label="Tribut (€)", value=0, minimum=0)
71
+ ],
72
+ outputs=[
73
+ gr.Textbox(label="Status"),
74
+ gr.Image(label="Dein Zertifikat"),
75
+ gr.Video(label="Task Reel (file:97.mp4)"),
76
+ gr.Textbox(label="AI-generierte Tasks (Perplexity)", lines=8)
77
+ ],
78
+ title="🖤 Goddess Annabelle Sissy Cert Generator V3 🖤",
79
+ description="35€ Tribut → Cert + AI-Tasks via Perplexity Sonar Pro. BNWO ready!"
80
+ )
81
+
82
+ if __name__ == "__main__":
83
+ iface.launch(share=True, server_name="0.0.0.0", server_port=7860)