Update app.py
Browse files
app.py
CHANGED
|
@@ -571,6 +571,9 @@ Example: "Here's the setup: [IMAGE: double slit experiment diagram]"
|
|
| 571 |
# -----------------------------------------------------------------------------
|
| 572 |
# 6. SIDEBAR CONFIGURATION
|
| 573 |
# -----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
| 574 |
with st.sidebar:
|
| 575 |
# Header
|
| 576 |
col1, col2 = st.columns([1, 3])
|
|
@@ -606,7 +609,7 @@ with st.sidebar:
|
|
| 606 |
|
| 607 |
enable_voice = st.toggle("🗣️ Text-to-Speech", value=False)
|
| 608 |
|
| 609 |
-
|
| 610 |
|
| 611 |
# Image Analysis Settings
|
| 612 |
st.header("🖼️ Image Analysis")
|
|
@@ -618,39 +621,46 @@ with st.sidebar:
|
|
| 618 |
help="Choose image analysis service"
|
| 619 |
)
|
| 620 |
|
| 621 |
-
# Initialize variables
|
| 622 |
hf_token = None
|
| 623 |
together_key = None
|
| 624 |
openrouter_key = None
|
| 625 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 626 |
if image_analysis_mode == "Hugging Face":
|
| 627 |
-
|
| 628 |
-
|
| 629 |
-
st.success("✓ Hugging Face Token configured")
|
| 630 |
-
elif "HF_TOKEN" in os.environ:
|
| 631 |
-
hf_token = os.environ["HF_TOKEN"]
|
| 632 |
st.success("✓ Hugging Face Token configured")
|
| 633 |
else:
|
| 634 |
st.warning("Add HF_TOKEN to secrets")
|
| 635 |
st.info("Get token: huggingface.co/settings/tokens")
|
| 636 |
|
| 637 |
elif image_analysis_mode == "Together.ai":
|
| 638 |
-
|
| 639 |
-
|
| 640 |
-
st.success("✓ Together.ai API configured")
|
| 641 |
-
elif "TOGETHER_API_KEY" in os.environ:
|
| 642 |
-
together_key = os.environ["TOGETHER_API_KEY"]
|
| 643 |
st.success("✓ Together.ai API configured")
|
| 644 |
else:
|
| 645 |
st.warning("Add TOGETHER_API_KEY to secrets")
|
| 646 |
st.info("Get key: together.ai (free credits available)")
|
| 647 |
|
| 648 |
elif image_analysis_mode == "OpenRouter":
|
| 649 |
-
|
| 650 |
-
|
| 651 |
-
st.success("✓ OpenRouter API configured")
|
| 652 |
-
elif "OPENROUTER_API_KEY" in os.environ:
|
| 653 |
-
openrouter_key = os.environ["OPENROUTER_API_KEY"]
|
| 654 |
st.success("✓ OpenRouter API configured")
|
| 655 |
else:
|
| 656 |
st.warning("Add OPENROUTER_API_KEY to secrets")
|
|
|
|
| 571 |
# -----------------------------------------------------------------------------
|
| 572 |
# 6. SIDEBAR CONFIGURATION
|
| 573 |
# -----------------------------------------------------------------------------
|
| 574 |
+
# -----------------------------------------------------------------------------
|
| 575 |
+
# 6. SIDEBAR CONFIGURATION
|
| 576 |
+
# -----------------------------------------------------------------------------
|
| 577 |
with st.sidebar:
|
| 578 |
# Header
|
| 579 |
col1, col2 = st.columns([1, 3])
|
|
|
|
| 609 |
|
| 610 |
enable_voice = st.toggle("🗣️ Text-to-Speech", value=False)
|
| 611 |
|
| 612 |
+
st.divider()
|
| 613 |
|
| 614 |
# Image Analysis Settings
|
| 615 |
st.header("🖼️ Image Analysis")
|
|
|
|
| 621 |
help="Choose image analysis service"
|
| 622 |
)
|
| 623 |
|
| 624 |
+
# Initialize variables - FIXED SECRETS CHECKING
|
| 625 |
hf_token = None
|
| 626 |
together_key = None
|
| 627 |
openrouter_key = None
|
| 628 |
|
| 629 |
+
# Safe secrets checking function
|
| 630 |
+
def get_secret(key, default=None):
|
| 631 |
+
"""Safely get a secret from st.secrets or environment."""
|
| 632 |
+
try:
|
| 633 |
+
# First try st.secrets (Hugging Face Spaces)
|
| 634 |
+
if hasattr(st, 'secrets'):
|
| 635 |
+
# Check if secrets is loaded and has the key
|
| 636 |
+
secrets_dict = dict(st.secrets)
|
| 637 |
+
if key in secrets_dict:
|
| 638 |
+
return secrets_dict[key]
|
| 639 |
+
except:
|
| 640 |
+
pass
|
| 641 |
+
|
| 642 |
+
# Fallback to environment variables
|
| 643 |
+
return os.environ.get(key, default)
|
| 644 |
+
|
| 645 |
if image_analysis_mode == "Hugging Face":
|
| 646 |
+
hf_token = get_secret("HF_TOKEN")
|
| 647 |
+
if hf_token:
|
|
|
|
|
|
|
|
|
|
| 648 |
st.success("✓ Hugging Face Token configured")
|
| 649 |
else:
|
| 650 |
st.warning("Add HF_TOKEN to secrets")
|
| 651 |
st.info("Get token: huggingface.co/settings/tokens")
|
| 652 |
|
| 653 |
elif image_analysis_mode == "Together.ai":
|
| 654 |
+
together_key = get_secret("TOGETHER_API_KEY")
|
| 655 |
+
if together_key:
|
|
|
|
|
|
|
|
|
|
| 656 |
st.success("✓ Together.ai API configured")
|
| 657 |
else:
|
| 658 |
st.warning("Add TOGETHER_API_KEY to secrets")
|
| 659 |
st.info("Get key: together.ai (free credits available)")
|
| 660 |
|
| 661 |
elif image_analysis_mode == "OpenRouter":
|
| 662 |
+
openrouter_key = get_secret("OPENROUTER_API_KEY")
|
| 663 |
+
if openrouter_key:
|
|
|
|
|
|
|
|
|
|
| 664 |
st.success("✓ OpenRouter API configured")
|
| 665 |
else:
|
| 666 |
st.warning("Add OPENROUTER_API_KEY to secrets")
|