Spaces:
Build error
Build error
| import os | |
| import streamlit as st | |
| import gdown | |
| from pathlib import Path | |
| import logging | |
| logger = logging.getLogger(__name__) | |
| def setup_environment(): | |
| """Setup der Umgebung für die Anwendung""" | |
| try: | |
| status = st.empty() | |
| status.info("Konfiguriere Umgebung...") | |
| # Pfade definieren | |
| BASE_PATH = Path(__file__).resolve().parent | |
| VECTOR_STORE_PATH = BASE_PATH / "vector_stores" | |
| VECTOR_STORE_PATH.mkdir(parents=True, exist_ok=True) | |
| logger.info(f"Vector Store Pfad: {VECTOR_STORE_PATH}") | |
| status.info("Pfade konfiguriert...") | |
| # Dateipfade | |
| VECTOR_STORE_FILE = VECTOR_STORE_PATH / "vectorstore.pkl" | |
| # Wenn die Datei nicht existiert, von Google Drive laden | |
| if not VECTOR_STORE_FILE.exists(): | |
| try: | |
| status.warning("Vector Store wird von Google Drive geladen...") | |
| logger.info("Starte Download von Google Drive...") | |
| # Download mit Feedback | |
| success = gdown.download( | |
| f"https://drive.google.com/uc?id=1EAzau2hzMTu-f4ncCXaD9933HTay2o_8", | |
| str(VECTOR_STORE_FILE), | |
| quiet=False | |
| ) | |
| if success: | |
| status.success("Vector Store erfolgreich geladen!") | |
| logger.info("Download erfolgreich") | |
| else: | |
| raise Exception("Download fehlgeschlagen") | |
| except Exception as e: | |
| error_msg = f"Fehler beim Laden der Vector Store Datei: {str(e)}" | |
| logger.error(error_msg) | |
| status.error(error_msg) | |
| raise | |
| else: | |
| status.info("Vector Store bereits vorhanden") | |
| # API Key Setup | |
| is_hf_space = "SPACE_ID" in os.environ | |
| status.info("Prüfe API Key...") | |
| if is_hf_space: | |
| api_key = os.environ.get('GOOGLE_API_KEY') | |
| if not api_key: | |
| error_msg = "Google API Key nicht gefunden in HF Secrets!" | |
| logger.error(error_msg) | |
| status.error(error_msg) | |
| raise ValueError(error_msg) | |
| else: | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| api_key = os.environ.get('GOOGLE_API_KEY') | |
| if not api_key: | |
| error_msg = "Google API Key nicht in Umgebungsvariablen gefunden!" | |
| logger.error(error_msg) | |
| status.error(error_msg) | |
| raise ValueError(error_msg) | |
| status.info("API Key gefunden") | |
| # Final check | |
| if not VECTOR_STORE_FILE.exists(): | |
| error_msg = "Vector Store Datei konnte nicht geladen werden" | |
| logger.error(error_msg) | |
| status.error(error_msg) | |
| raise FileNotFoundError(error_msg) | |
| logger.info("Environment Setup abgeschlossen") | |
| status.success("Environment erfolgreich konfiguriert!") | |
| status.empty() | |
| return api_key, VECTOR_STORE_PATH | |
| except Exception as e: | |
| error_msg = f"Fehler beim Setup der Umgebung: {str(e)}" | |
| logger.error(error_msg) | |
| if 'status' in locals(): | |
| status.error(error_msg) | |
| else: | |
| st.error(error_msg) | |
| raise |