EduProfit commited on
Commit
540e4af
·
verified ·
1 Parent(s): c80ca44

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -16
app.py CHANGED
@@ -1,27 +1,35 @@
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):
@@ -34,14 +42,11 @@ def call_model(prompt):
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)
@@ -53,7 +58,6 @@ Wariant X:
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)
@@ -63,13 +67,15 @@ Pisz konkretnie, naturalnym językiem, bez powtarzania instrukcji.
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__":
 
1
  # app.py
2
+ import os
3
+ import requests
4
  import gradio as gr
5
 
6
  # === CONFIG ===
7
+ HF_TOKEN = os.environ.get("HF_TOKEN") # ustaw w Hugging Face Spaces → Settings → Secrets
8
+ MODEL = "sdadas/mistual-base-polish" # polski model do generowania treści
9
 
10
  headers = {"Authorization": f"Bearer {HF_TOKEN}"}
11
 
12
  # ===== FUNKCJA DO WYWOŁYWANIA MODELU =====
13
  def call_model(prompt):
14
+ url = f"https://api-inference.huggingface.co/models/{MODEL}" # USUNIĘTO SPACJE!
15
  payload = {
16
  "inputs": prompt,
17
  "parameters": {
18
  "max_new_tokens": 400,
19
+ "temperature": 0.9,
20
  "top_p": 0.95
21
  }
22
  }
23
+ try:
24
+ r = requests.post(url, headers=headers, json=payload, timeout=60)
25
+ r.raise_for_status() # rzuci wyjątek, jeśli status != 200
26
+ data = r.json()
27
+ except requests.exceptions.RequestException as e:
28
+ return f"⚠️ Błąd połączenia: {str(e)}"
29
+ except Exception as e:
30
+ return f"⚠️ Nieoczekiwany błąd: {str(e)}"
31
 
32
+ # Obsługa różnych formatów odpowiedzi
33
  if isinstance(data, dict) and data.get("error"):
34
  return "⚠️ Błąd modelu: " + data.get("error")
35
  if isinstance(data, list) and data and isinstance(data[0], dict):
 
42
  def generate_posts(temat, ton, platforma):
43
  prompt = f"""
44
  Jesteś ekspertem od pisania angażujących postów na social media w języku polskim.
 
45
  Temat: {temat}
46
  Platforma: {platforma}
47
  Ton: {ton}
 
48
  Twoje zadanie:
49
  Wygeneruj 3 różne warianty posta. Każdy wariant podaj w tym formacie:
 
50
  ---
51
  Wariant X:
52
  1) Hook: (1 krótkie, chwytliwe zdanie)
 
58
  4) CTA: (1 krótka linia zachęcająca do działania)
59
  5) Sugestia wizualna: (jedno zdanie, opis pomysłu na zdjęcie/wideo)
60
  ---
 
61
  Pisz konkretnie, naturalnym językiem, bez powtarzania instrukcji.
62
  """
63
  out = call_model(prompt)
 
67
  iface = gr.Interface(
68
  fn=generate_posts,
69
  inputs=[
70
+ gr.Textbox(label="🎯 Temat (np. Jak wstać o 5 rano)", placeholder="Wpisz temat..."),
71
+ gr.Dropdown(["motywacyjny", "informacyjny", "sprzedażowy", "edukacyjny"], label="🎙 Ton", value="motywacyjny"),
72
+ gr.Dropdown(["TikTok", "Instagram", "Facebook", "LinkedIn"], label="📱 Platforma", value="LinkedIn")
73
  ],
74
  outputs=gr.Textbox(label="✨ Wygenerowane posty", lines=25),
75
+ title="🤖 Generator Postów AI — po polsku",
76
+ description="Podaj temat, wybierz ton i platformę. Agent wygeneruje 3 gotowe propozycje postów (hook, treść, hashtagi, CTA i sugestia wizualna).",
77
+ theme="soft",
78
+ allow_flagging="never"
79
  )
80
 
81
  if __name__ == "__main__":