Spaces:
Sleeping
Sleeping
File size: 1,477 Bytes
c109c49 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import logging, json, google.generativeai as genai
logger = logging.getLogger(__name__)
def probe_available_models():
try:
models = [m.name for m in genai.list_models()]
for m in ["models/gemini-1.5-flash", "models/gemini-1.5-pro", "models/gemini-pro"]:
if m in models: return m.replace("models/", "")
return models[0].replace("models/", "") if models else "gemini-pro"
except: return "gemini-1.5-flash"
def cleanup_json_response(resp_text):
resp_text = resp_text.strip()
if resp_text.startswith("```"):
resp_text = resp_text.split("```", 2)[1]
if resp_text.startswith("json"): resp_text = resp_text[4:]
resp_text = resp_text.strip()
try:
start_idx = resp_text.index("{")
depth = 0
for i in range(start_idx, len(resp_text)):
if resp_text[i] == "{": depth += 1
elif resp_text[i] == "}":
depth -= 1
if depth == 0: return resp_text[start_idx:i+1]
except: pass
return resp_text
def get_fallback_result(transcript_data):
return {
"metadata": {"title": "Unknown", "detectedMood": "Abstract", "energyLevel": 0.5, "coverArtPrompt": "Moody abstract"},
"script": [{"text": t["text"], "timestamp": t["start"], "duration": 2.5,
"visuals": {"primaryColor": "#ffffff", "typography": "fade", "position": "center", "energy": 0.5}}
for t in transcript_data]
}
|