Spaces:
Build error
Build error
File size: 3,376 Bytes
21c5884 60e5d5a 21c5884 417616a 60e5d5a 417616a 60e5d5a bac7627 417616a bac7627 417616a 60e5d5a bac7627 417616a 60e5d5a 417616a 60e5d5a 417616a 60e5d5a bac7627 60e5d5a 417616a 60e5d5a 417616a 60e5d5a 21c5884 bac7627 60e5d5a bac7627 60e5d5a 417616a 21c5884 417616a 60e5d5a 417616a | 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | 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 |