pormungtai commited on
Commit
261977f
·
verified ·
1 Parent(s): 4978b47

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -14
app.py CHANGED
@@ -38,6 +38,10 @@ try:
38
  except Exception:
39
  USE_GEMINI = False
40
 
 
 
 
 
41
  # ===== Transformers (open-source backend) =====
42
  import torch
43
  from transformers import AutoProcessor, AutoModelForVision2Seq
@@ -51,14 +55,20 @@ st.markdown(
51
 
52
  with st.sidebar:
53
  st.header("⚙️ Settings")
54
- backend = st.selectbox(
55
- "Backend",
56
- [
57
- "Local Qwen2-VL (Open-Source)",
58
- "Gemini API" if USE_GEMINI else "Gemini API (unavailable)",
59
- ],
60
- index=0,
61
- )
 
 
 
 
 
 
62
 
63
  mode = st.selectbox("Detail level", ["soft", "artistic", "raw"], index=2)
64
 
@@ -71,11 +81,16 @@ with st.sidebar:
71
  max_tokens = st.slider("Max new tokens", 64, 512, 220, 8)
72
  temperature = st.slider("Temperature", 0.0, 1.2, 0.6, 0.05)
73
 
 
 
 
 
 
 
 
74
  st.divider()
75
  st.subheader("🔐 Policy")
76
- st.caption(
77
- "This app only describes consenting adults. It refuses illegal/underage/forced content."
78
- )
79
 
80
  # ---------------- Helpers ----------------
81
  @st.cache_resource(show_spinner=False)
@@ -190,10 +205,9 @@ def extract_tags(text: str):
190
  def get_gemini_response(image: Image.Image):
191
  if not USE_GEMINI:
192
  raise RuntimeError("Gemini library not available in this Space.")
193
- secret_key = os.getenv("SECRET_KEY", "")
194
  if not secret_key:
195
- st.warning("Gemini SECRET_KEY not found; please set it in your Space secrets.")
196
- return ""
197
  genai.configure(api_key=secret_key)
198
  model = genai.GenerativeModel("gemini-2.0-flash")
199
  sys = (
 
38
  except Exception:
39
  USE_GEMINI = False
40
 
41
+ def get_gemini_api_key() -> str:
42
+ # Return Gemini API key from SECRET_KEY or GOOGLE_API_KEY (if present)
43
+ return os.getenv('SECRET_KEY') or os.getenv('GOOGLE_API_KEY') or ''
44
+
45
  # ===== Transformers (open-source backend) =====
46
  import torch
47
  from transformers import AutoProcessor, AutoModelForVision2Seq
 
55
 
56
  with st.sidebar:
57
  st.header("⚙️ Settings")
58
+
59
+ # Gemini availability message
60
+ gem_key = get_gemini_api_key() if USE_GEMINI else ''
61
+ gem_ready = bool(gem_key)
62
+
63
+ backend_opts = ["Local Qwen2-VL (Open-Source)"]
64
+ if USE_GEMINI and gem_ready:
65
+ backend_opts.append("Gemini API")
66
+ elif USE_GEMINI and not gem_ready:
67
+ backend_opts.append("Gemini API (key missing)")
68
+ else:
69
+ backend_opts.append("Gemini API (unavailable)")
70
+
71
+ backend = st.selectbox("Backend", backend_opts, index=0)
72
 
73
  mode = st.selectbox("Detail level", ["soft", "artistic", "raw"], index=2)
74
 
 
81
  max_tokens = st.slider("Max new tokens", 64, 512, 220, 8)
82
  temperature = st.slider("Temperature", 0.0, 1.2, 0.6, 0.05)
83
 
84
+ # Gemini status badge
85
+ if USE_GEMINI:
86
+ if gem_ready:
87
+ st.success("Gemini key detected (SECRET_KEY / GOOGLE_API_KEY)")
88
+ else:
89
+ st.warning("Gemini key not found. Add SECRET_KEY or GOOGLE_API_KEY in Space Secrets.")
90
+
91
  st.divider()
92
  st.subheader("🔐 Policy")
93
+ st.caption("This app only describes consenting adults. It refuses illegal/underage/forced content.")
 
 
94
 
95
  # ---------------- Helpers ----------------
96
  @st.cache_resource(show_spinner=False)
 
205
  def get_gemini_response(image: Image.Image):
206
  if not USE_GEMINI:
207
  raise RuntimeError("Gemini library not available in this Space.")
208
+ secret_key = get_gemini_api_key()
209
  if not secret_key:
210
+ raise RuntimeError("Gemini API key not found. Set SECRET_KEY or GOOGLE_API_KEY in Space secrets.")
 
211
  genai.configure(api_key=secret_key)
212
  model = genai.GenerativeModel("gemini-2.0-flash")
213
  sys = (