KARTE / test_app.py
shuhayas's picture
Merge changes from hf-deployment branch
5896fe9
import streamlit as st
import os
import sys
import platform
import json
# Page config
st.set_page_config(
page_title="KARTE - Diagnostic Test",
page_icon="🔍",
layout="wide"
)
# Title
st.title("🔍 KARTE - Diagnostic Test")
st.markdown("This is a diagnostic app to troubleshoot Hugging Face Spaces deployment issues.")
# System information
st.header("System Information")
st.write(f"Python version: {sys.version}")
st.write(f"Platform: {platform.platform()}")
st.write(f"Current working directory: {os.getcwd()}")
# Environment variables
st.header("Environment Variables")
env_vars = {k: v for k, v in os.environ.items() if not k.startswith('_')}
st.write(f"Number of environment variables: {len(env_vars)}")
st.write("Environment variable names:")
st.write(list(env_vars.keys()))
# Check for specific environment variables
st.header("Required Environment Variables")
required_vars = ["OPENAI_API_KEY", "GROQ_API_KEY", "BASIC_AUTH_USERNAME", "BASIC_AUTH_PASSWORD"]
for var in required_vars:
if var in os.environ:
st.success(f"✅ {var} is set")
else:
st.error(f"❌ {var} is not set")
# Check for Streamlit secrets
st.header("Streamlit Secrets")
if hasattr(st, 'secrets'):
st.success("✅ Streamlit secrets are available")
# Check if our required variables are in secrets
for var in required_vars:
if var in st.secrets:
st.success(f"✅ {var} is in Streamlit secrets")
else:
st.warning(f"⚠️ {var} is not in Streamlit secrets")
else:
st.error("❌ Streamlit secrets are not available")
# File system
st.header("File System")
st.write("Files in current directory:")
st.write(os.listdir('.'))
if os.path.exists("prompts"):
st.success("✅ 'prompts' directory exists")
st.write("Files in 'prompts' directory:")
st.write(os.listdir('prompts'))
else:
st.error("❌ 'prompts' directory does not exist")
# Check for ffmpeg
st.header("External Dependencies")
import subprocess
try:
result = subprocess.run(["ffmpeg", "-version"], capture_output=True, text=True)
if result.returncode == 0:
st.success("✅ ffmpeg is installed")
st.write(result.stdout.split('\n')[0])
else:
st.error("❌ ffmpeg is not installed or not working")
except Exception as e:
st.error(f"❌ Error checking ffmpeg: {str(e)}")
# Python packages
st.header("Python Packages")
try:
import pkg_resources
packages = [d for d in pkg_resources.working_set]
package_dict = {p.key: p.version for p in packages}
required_packages = ["streamlit", "openai", "groq", "python-dotenv", "pydub"]
for pkg in required_packages:
if pkg in package_dict:
st.success(f"✅ {pkg} {package_dict[pkg]} is installed")
else:
st.error(f"❌ {pkg} is not installed")
st.write("All installed packages:")
st.json(package_dict)
except Exception as e:
st.error(f"Error listing packages: {str(e)}")
# Test Streamlit functionality
st.header("Streamlit Functionality Test")
if st.button("Test Button"):
st.success("Button works!")
test_text = st.text_input("Test Text Input", "Type something here")
st.write(f"You typed: {test_text}")