larrysim commited on
Commit
c969c2f
Β·
verified Β·
1 Parent(s): 9209303

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -15
app.py CHANGED
@@ -24,7 +24,7 @@ for k, v in defaults.items():
24
  with st.sidebar:
25
  st.header("πŸ” API Configuration")
26
 
27
- # -------- BEFORE VALIDATION --------
28
  if not st.session_state.api_validated:
29
  st.text_input(
30
  "Enter Google API Key",
@@ -37,35 +37,40 @@ with st.sidebar:
37
  st.warning("Please enter an API key.")
38
  else:
39
  try:
 
40
  client = genai.Client(
41
  api_key=st.session_state.api_key_input
42
  )
43
 
 
 
 
 
 
 
 
44
  models = [
45
  m.name for m in client.models.list()
46
  if "gemini" in m.name.lower()
47
  ]
48
 
49
- if not models:
50
- st.error("API key valid, but no Gemini models available.")
51
- else:
52
- # βœ… Persist validated state
53
- st.session_state.api_key = st.session_state.api_key_input
54
- st.session_state.client = client
55
- st.session_state.models = models
56
- st.session_state.selected_model = models[0]
57
- st.session_state.api_validated = True
58
 
59
- # πŸ”’ Clear visible input immediately
60
- st.session_state.api_key_input = ""
61
 
62
- st.success("API key validated")
63
 
64
  except Exception as e:
65
- st.error("Invalid API key")
66
  st.caption(str(e))
67
 
68
- # -------- AFTER VALIDATION --------
69
  else:
70
  st.success("πŸ”’ API Key validated (hidden)")
71
 
 
24
  with st.sidebar:
25
  st.header("πŸ” API Configuration")
26
 
27
+ # ---------- BEFORE VALIDATION ----------
28
  if not st.session_state.api_validated:
29
  st.text_input(
30
  "Enter Google API Key",
 
37
  st.warning("Please enter an API key.")
38
  else:
39
  try:
40
+ # 1️⃣ Initialize client
41
  client = genai.Client(
42
  api_key=st.session_state.api_key_input
43
  )
44
 
45
+ # 2️⃣ REAL validation call (this is the key fix)
46
+ test_response = client.models.generate_content(
47
+ model="gemini-2.5-flash",
48
+ contents="Say OK"
49
+ )
50
+
51
+ # 3️⃣ Only after success, list models
52
  models = [
53
  m.name for m in client.models.list()
54
  if "gemini" in m.name.lower()
55
  ]
56
 
57
+ # 4️⃣ Persist validated state
58
+ st.session_state.api_key = st.session_state.api_key_input
59
+ st.session_state.client = client
60
+ st.session_state.models = models
61
+ st.session_state.selected_model = models[0]
62
+ st.session_state.api_validated = True
 
 
 
63
 
64
+ # πŸ”’ Clear visible input
65
+ st.session_state.api_key_input = ""
66
 
67
+ st.success("βœ… API key validated successfully")
68
 
69
  except Exception as e:
70
+ st.error("❌ Invalid or restricted API key")
71
  st.caption(str(e))
72
 
73
+ # ---------- AFTER VALIDATION ----------
74
  else:
75
  st.success("πŸ”’ API Key validated (hidden)")
76