ibraheem007 commited on
Commit
735a2dc
Β·
verified Β·
1 Parent(s): 7c3387d

Update generator.py

Browse files
Files changed (1) hide show
  1. generator.py +63 -9
generator.py CHANGED
@@ -10,19 +10,68 @@ import logging
10
  logging.basicConfig(level=logging.INFO)
11
  logger = logging.getLogger(__name__)
12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  def get_api_keys(service_name: str, key_names: List[str]) -> List[str]:
14
- """Get API keys from multiple sources"""
15
  keys = []
16
 
17
- # 1. HuggingFace Spaces Secrets (Primary)
18
- for key_name in key_names:
19
- # Try HF-specific naming first
20
- hf_key_name = f"HF_{service_name.upper()}_{key_name}"
21
  key = os.getenv(hf_key_name)
 
 
 
 
 
 
 
 
22
  if key and key.strip():
23
  keys.append(key.strip())
24
  logger.info(f"βœ… Found {service_name} key in HuggingFace secrets")
25
- break # Use first valid key
26
 
27
  # 2. Standard Environment Variables (fallback)
28
  if not keys:
@@ -31,7 +80,6 @@ def get_api_keys(service_name: str, key_names: List[str]) -> List[str]:
31
  if key and key.strip():
32
  keys.append(key.strip())
33
  logger.info(f"βœ… Found {service_name} key in environment")
34
- break
35
 
36
  # 3. Streamlit Secrets (last resort)
37
  if not keys:
@@ -44,18 +92,24 @@ def get_api_keys(service_name: str, key_names: List[str]) -> List[str]:
44
  if key and key.strip():
45
  keys.append(key.strip())
46
  logger.info(f"βœ… Found {service_name} key in Streamlit secrets")
47
- break
48
  except Exception:
49
  pass
50
 
51
  if not keys:
52
  logger.warning(f"❌ No {service_name} API keys found")
 
 
53
 
54
  return keys
55
 
 
 
 
 
56
  def get_groq_api_keys():
57
  """Get Groq API keys for all environments"""
58
- return get_api_keys("groq", ["api_key", "api_key_1", "api_key_2"])
 
59
 
60
  def get_ollama_url():
61
  """Get Ollama URL from multiple sources"""
 
10
  logging.basicConfig(level=logging.INFO)
11
  logger = logging.getLogger(__name__)
12
 
13
+ # def get_api_keys(service_name: str, key_names: List[str]) -> List[str]:
14
+ # """Get API keys from multiple sources"""
15
+ # keys = []
16
+
17
+ # # 1. HuggingFace Spaces Secrets (Primary)
18
+ # for key_name in key_names:
19
+ # # Try HF-specific naming first
20
+ # hf_key_name = f"HF_{service_name.upper()}_{key_name}"
21
+ # key = os.getenv(hf_key_name)
22
+ # if key and key.strip():
23
+ # keys.append(key.strip())
24
+ # logger.info(f"βœ… Found {service_name} key in HuggingFace secrets")
25
+ # break # Use first valid key
26
+
27
+ # # 2. Standard Environment Variables (fallback)
28
+ # if not keys:
29
+ # for key_name in key_names:
30
+ # key = os.getenv(key_name) or os.getenv(key_name.upper())
31
+ # if key and key.strip():
32
+ # keys.append(key.strip())
33
+ # logger.info(f"βœ… Found {service_name} key in environment")
34
+ # break
35
+
36
+ # # 3. Streamlit Secrets (last resort)
37
+ # if not keys:
38
+ # try:
39
+ # import streamlit as st
40
+ # if hasattr(st, 'secrets') and service_name in st.secrets:
41
+ # secrets = st.secrets[service_name]
42
+ # for key_name in key_names:
43
+ # key = secrets.get(key_name)
44
+ # if key and key.strip():
45
+ # keys.append(key.strip())
46
+ # logger.info(f"βœ… Found {service_name} key in Streamlit secrets")
47
+ # break
48
+ # except Exception:
49
+ # pass
50
+
51
+ # if not keys:
52
+ # logger.warning(f"❌ No {service_name} API keys found")
53
+
54
+ # return keys
55
+
56
  def get_api_keys(service_name: str, key_names: List[str]) -> List[str]:
57
+ """Get API keys from multiple sources with priority for HuggingFace Spaces"""
58
  keys = []
59
 
60
+ # 1. HuggingFace Spaces Secrets (Primary) - multiple keys
61
+ for i in range(1, 6): # Check for HF_GROQ_API_KEY_1 through HF_GROQ_API_KEY_5
62
+ hf_key_name = f"HF_{service_name.upper()}_API_KEY_{i}"
 
63
  key = os.getenv(hf_key_name)
64
+ if key and key.strip():
65
+ keys.append(key.strip())
66
+ logger.info(f"βœ… Found {service_name} key {i} in HuggingFace secrets")
67
+
68
+ # Also check for single key (backward compatibility)
69
+ if not keys:
70
+ single_key_name = f"HF_{service_name.upper()}_API_KEY"
71
+ key = os.getenv(single_key_name)
72
  if key and key.strip():
73
  keys.append(key.strip())
74
  logger.info(f"βœ… Found {service_name} key in HuggingFace secrets")
 
75
 
76
  # 2. Standard Environment Variables (fallback)
77
  if not keys:
 
80
  if key and key.strip():
81
  keys.append(key.strip())
82
  logger.info(f"βœ… Found {service_name} key in environment")
 
83
 
84
  # 3. Streamlit Secrets (last resort)
85
  if not keys:
 
92
  if key and key.strip():
93
  keys.append(key.strip())
94
  logger.info(f"βœ… Found {service_name} key in Streamlit secrets")
 
95
  except Exception:
96
  pass
97
 
98
  if not keys:
99
  logger.warning(f"❌ No {service_name} API keys found")
100
+ else:
101
+ logger.info(f"βœ… Found {len(keys)} {service_name} API keys")
102
 
103
  return keys
104
 
105
+ # def get_groq_api_keys():
106
+ # """Get Groq API keys for all environments"""
107
+ # return get_api_keys("groq", ["api_key", "api_key_1", "api_key_2"])
108
+
109
  def get_groq_api_keys():
110
  """Get Groq API keys for all environments"""
111
+ # Look for multiple HF keys first, then fallback
112
+ return get_api_keys("groq", ["api_key", "api_key_1", "api_key_2", "api_key_3"])
113
 
114
  def get_ollama_url():
115
  """Get Ollama URL from multiple sources"""