EduProfit commited on
Commit
cb0baf6
·
verified ·
1 Parent(s): 1d280f0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -75
app.py CHANGED
@@ -1,76 +1,32 @@
1
- # app.py
2
- import os, requests
3
  import gradio as gr
4
-
5
- # === CONFIG ===
6
- HF_TOKEN = os.environ.get("HF_TOKEN") # ustaw w Hugging Face Spaces → Settings → Secrets
7
- MODEL = "google/flan-t5-base" # lekki i darmowy model do generacji tekstów
8
-
9
- headers = {"Authorization": f"Bearer {HF_TOKEN}"}
10
-
11
- # ===== FUNKCJA DO WYWOŁYWANIA MODELU =====
12
- def call_model(prompt):
13
- url = f"https://api-inference.huggingface.co/models/{MODEL}"
14
- payload = {
15
- "inputs": prompt,
16
- "parameters": {
17
- "max_new_tokens": 400,
18
- "temperature": 0.9, # bardziej kreatywne treści
19
- "top_p": 0.95
20
- }
21
- }
22
- r = requests.post(url, headers=headers, json=payload, timeout=60)
23
- data = r.json()
24
-
25
- if isinstance(data, dict) and data.get("error"):
26
- return "⚠️ Błąd modelu: " + data.get("error")
27
- if isinstance(data, list) and data and isinstance(data[0], dict):
28
- return data[0].get("generated_text", str(data))
29
- if isinstance(data, dict):
30
- return data.get("generated_text", str(data))
31
- return str(data)
32
-
33
- # ===== FUNKCJA GŁÓWNA – GENERACJA POSTÓW =====
34
- def generate_posts(temat, ton, platforma):
35
- prompt = f"""
36
- Jesteś ekspertem od pisania angażujących postów na social media w języku polskim.
37
-
38
- Temat: {temat}
39
- Platforma: {platforma}
40
- Ton: {ton}
41
-
42
- Twoje zadanie:
43
- Wygeneruj 3 różne warianty posta. Każdy wariant podaj w tym formacie:
44
-
45
- ---
46
- Wariant X:
47
- 1) Hook: (1 krótkie, chwytliwe zdanie)
48
- 2) Treść: (dostosowana do platformy –
49
- • TikTok/Instagram: max 3 zdania, dynamiczne, z emoji
50
- • Facebook: 3–5 zdań, angażujące, lekkie
51
- • LinkedIn: 6–8 zdań, profesjonalne, z wartością merytoryczną)
52
- 3) Hashtagi: (10 propozycji, oddzielone przecinkami, bez polskich znaków)
53
- 4) CTA: (1 krótka linia zachęcająca do działania)
54
- 5) Sugestia wizualna: (jedno zdanie, opis pomysłu na zdjęcie/wideo)
55
- ---
56
-
57
- Pisz konkretnie, naturalnym językiem, bez powtarzania instrukcji.
58
- """
59
- out = call_model(prompt)
60
- return out
61
-
62
- # ===== UI =====
63
- iface = gr.Interface(
64
- fn=generate_posts,
65
- inputs=[
66
- gr.Textbox(label="🎯 Temat (np. Jak wstać o 5 rano)"),
67
- gr.Dropdown(["motywacyjny","informacyjny","sprzedażowy","edukacyjny"], label="🎙 Ton"),
68
- gr.Dropdown(["TikTok","Instagram","Facebook","LinkedIn"], label="📱 Platforma")
69
- ],
70
- outputs=gr.Textbox(label="✨ Wygenerowane posty", lines=25),
71
- title="🤖 Social Media Post Generator",
72
- description="Podaj temat, wybierz ton i platformę. Agent wygeneruje 3 gotowe propozycje postów (hook, treść, hashtagi, CTA i sugestia wizualna)."
73
- )
74
-
75
- if __name__ == "__main__":
76
- iface.launch()
 
 
 
1
  import gradio as gr
2
+ from transformers import pipeline
3
+
4
+ # 🔹 Polski model GPT-2 (mały, działa na CPU w Hugging Face Spaces)
5
+ generator = pipeline("text-generation", model="flax-community/polish-gpt2-small")
6
+
7
+ def generate_post(prompt, platform):
8
+ style = ""
9
+ if platform == "TikTok":
10
+ style = "Napisz krótki, dynamiczny opis z emoji i hashtagiem."
11
+ elif platform == "Instagram":
12
+ style = "Napisz inspirujący post z emoji i hashtagiem."
13
+ elif platform == "LinkedIn":
14
+ style = "Napisz profesjonalny, motywacyjny post."
15
+ elif platform == "Twitter":
16
+ style = "Napisz krótki tweet z emoji i hashtagiem."
17
+
18
+ input_text = f"{style}\nTemat: {prompt}\nPost:"
19
+ result = generator(input_text, max_length=120, num_return_sequences=1, do_sample=True, temperature=0.9)
20
+ return result[0]["generated_text"]
21
+
22
+ with gr.Blocks() as demo:
23
+ gr.Markdown("## 🤖 Social Media Generator (Polski) Twój darmowy agent AI")
24
+ with gr.Row():
25
+ prompt = gr.Textbox(label="Podaj temat posta", placeholder="np. motywacja do działania")
26
+ platform = gr.Dropdown(["TikTok", "Instagram", "LinkedIn", "Twitter"], label="Platforma")
27
+ output = gr.Textbox(label="Wygenerowany post")
28
+
29
+ btn = gr.Button("Generuj post")
30
+ btn.click(generate_post, inputs=[prompt, platform], outputs=output)
31
+
32
+ demo.launch()