Update app.py
Browse files
app.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
import os
|
| 2 |
-
|
| 3 |
import json
|
| 4 |
import time
|
| 5 |
import io
|
|
@@ -169,36 +169,19 @@ def call_worker(index, chunk_payload):
|
|
| 169 |
# --- AI PODCAST SCRIPT LOGIC ---
|
| 170 |
def generate_podcast_in_background(task_id, system_prompt, safety_settings):
|
| 171 |
try:
|
| 172 |
-
keys_str = os.environ.get("
|
| 173 |
keys_list = [k.strip() for k in keys_str.split(',') if k.strip()] if keys_str else []
|
| 174 |
-
|
| 175 |
-
if not keys_list:
|
| 176 |
-
single_key = os.environ.get("HF_TOKEN")
|
| 177 |
-
if single_key:
|
| 178 |
-
keys_list = [single_key.strip()]
|
| 179 |
-
else:
|
| 180 |
-
raise ValueError("No HF_TOKENS or HF_TOKEN found in environment variables")
|
| 181 |
|
| 182 |
MAX_ATTEMPTS = 50
|
| 183 |
for attempt in range(MAX_ATTEMPTS):
|
| 184 |
key = random.choice(keys_list)
|
| 185 |
try:
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
)
|
| 190 |
-
|
| 191 |
-
completion = client.chat.completions.create(
|
| 192 |
-
model="google/gemma-4-31B-it:novita",
|
| 193 |
-
messages=[
|
| 194 |
-
{
|
| 195 |
-
"role": "user",
|
| 196 |
-
"content": system_prompt
|
| 197 |
-
}
|
| 198 |
-
],
|
| 199 |
-
)
|
| 200 |
|
| 201 |
-
raw_text =
|
| 202 |
json_string = None
|
| 203 |
match = re.search(r"```json\s*(\{.*?\})\s*```", raw_text, re.DOTALL)
|
| 204 |
if match: json_string = match.group(1)
|
|
@@ -207,7 +190,7 @@ def generate_podcast_in_background(task_id, system_prompt, safety_settings):
|
|
| 207 |
e_idx = raw_text.rfind('}')
|
| 208 |
if s_idx != -1 and e_idx != -1: json_string = raw_text[s_idx:e_idx+1]
|
| 209 |
|
| 210 |
-
if not json_string: raise ValueError("No JSON found
|
| 211 |
|
| 212 |
data = json.loads(json_string)
|
| 213 |
if "script" in data:
|
|
@@ -436,4 +419,4 @@ atexit.register(persist_data_to_hub)
|
|
| 436 |
|
| 437 |
if __name__ == '__main__':
|
| 438 |
port = int(os.environ.get('PORT', 7860))
|
| 439 |
-
app.run(host='0.0.0.0', port=port)
|
|
|
|
| 1 |
import os
|
| 2 |
+
import google.generativeai as genai
|
| 3 |
import json
|
| 4 |
import time
|
| 5 |
import io
|
|
|
|
| 169 |
# --- AI PODCAST SCRIPT LOGIC ---
|
| 170 |
def generate_podcast_in_background(task_id, system_prompt, safety_settings):
|
| 171 |
try:
|
| 172 |
+
keys_str = os.environ.get("ALL_GEMINI_API_KEYS")
|
| 173 |
keys_list = [k.strip() for k in keys_str.split(',') if k.strip()] if keys_str else []
|
| 174 |
+
if not keys_list: raise ValueError("No AI Keys")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 175 |
|
| 176 |
MAX_ATTEMPTS = 50
|
| 177 |
for attempt in range(MAX_ATTEMPTS):
|
| 178 |
key = random.choice(keys_list)
|
| 179 |
try:
|
| 180 |
+
genai.configure(api_key=key)
|
| 181 |
+
model = genai.GenerativeModel('gemini-2.5-flash')
|
| 182 |
+
res = model.generate_content(system_prompt, safety_settings=safety_settings)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 183 |
|
| 184 |
+
raw_text = res.text
|
| 185 |
json_string = None
|
| 186 |
match = re.search(r"```json\s*(\{.*?\})\s*```", raw_text, re.DOTALL)
|
| 187 |
if match: json_string = match.group(1)
|
|
|
|
| 190 |
e_idx = raw_text.rfind('}')
|
| 191 |
if s_idx != -1 and e_idx != -1: json_string = raw_text[s_idx:e_idx+1]
|
| 192 |
|
| 193 |
+
if not json_string: raise ValueError("No JSON found")
|
| 194 |
|
| 195 |
data = json.loads(json_string)
|
| 196 |
if "script" in data:
|
|
|
|
| 419 |
|
| 420 |
if __name__ == '__main__':
|
| 421 |
port = int(os.environ.get('PORT', 7860))
|
| 422 |
+
app.run(host='0.0.0.0', port=port)
|