File size: 2,656 Bytes
c80ca44
 
bd8f847
c80ca44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# app.py
import os, requests
import gradio as gr

# === CONFIG ===
HF_TOKEN = os.environ.get("HF_TOKEN") # ustaw w Hugging Face Spaces → Settings → Secrets
MODEL = "google/flan-t5-base" # lekki i darmowy model do generacji tekstów

headers = {"Authorization": f"Bearer {HF_TOKEN}"}

# ===== FUNKCJA DO WYWOŁYWANIA MODELU =====
def call_model(prompt):
    url = f"https://api-inference.huggingface.co/models/{MODEL}"
    payload = {
        "inputs": prompt,
        "parameters": {
            "max_new_tokens": 400,
            "temperature": 0.9, # bardziej kreatywne treści
            "top_p": 0.95
        }
    }
    r = requests.post(url, headers=headers, json=payload, timeout=60)
    data = r.json()

    if isinstance(data, dict) and data.get("error"):
        return "⚠️ Błąd modelu: " + data.get("error")
    if isinstance(data, list) and data and isinstance(data[0], dict):
        return data[0].get("generated_text", str(data))
    if isinstance(data, dict):
        return data.get("generated_text", str(data))
    return str(data)

# ===== FUNKCJA GŁÓWNA – GENERACJA POSTÓW =====
def generate_posts(temat, ton, platforma):
    prompt = f"""
Jesteś ekspertem od pisania angażujących postów na social media w języku polskim.

Temat: {temat}
Platforma: {platforma}
Ton: {ton}

Twoje zadanie:
Wygeneruj 3 różne warianty posta. Każdy wariant podaj w tym formacie:

---
Wariant X:
1) Hook: (1 krótkie, chwytliwe zdanie)
2) Treść: (dostosowana do platformy – 
   • TikTok/Instagram: max 3 zdania, dynamiczne, z emoji
   • Facebook: 3–5 zdań, angażujące, lekkie
   • LinkedIn: 6–8 zdań, profesjonalne, z wartością merytoryczną)
3) Hashtagi: (10 propozycji, oddzielone przecinkami, bez polskich znaków)
4) CTA: (1 krótka linia zachęcająca do działania)
5) Sugestia wizualna: (jedno zdanie, opis pomysłu na zdjęcie/wideo)
---

Pisz konkretnie, naturalnym językiem, bez powtarzania instrukcji.
"""
    out = call_model(prompt)
    return out

# ===== UI =====
iface = gr.Interface(
    fn=generate_posts,
    inputs=[
        gr.Textbox(label="🎯 Temat (np. Jak wstać o 5 rano)"),
        gr.Dropdown(["motywacyjny","informacyjny","sprzedażowy","edukacyjny"], label="🎙 Ton"),
        gr.Dropdown(["TikTok","Instagram","Facebook","LinkedIn"], label="📱 Platforma")
    ],
    outputs=gr.Textbox(label="✨ Wygenerowane posty", lines=25),
    title="🤖 Social Media Post Generator",
    description="Podaj temat, wybierz ton i platformę. Agent wygeneruje 3 gotowe propozycje postów (hook, treść, hashtagi, CTA i sugestia wizualna)."
)

if __name__ == "__main__":
    iface.launch()