Spaces:
Running
Running
| """ | |
| Configuration Manager - Obsługa konfiguracji dla Streamlit | |
| Używa st.session_state do przechowywania ustawień | |
| """ | |
| import streamlit as st | |
| class ConfigManager: | |
| """Zarządza konfiguracją aplikacji w Streamlit""" | |
| def __init__(self): | |
| # Initialize session state if not exists | |
| if 'config' not in st.session_state: | |
| st.session_state.config = self._default_config() | |
| def _default_config(self): | |
| """Domyślna konfiguracja""" | |
| return { | |
| "api_key": "", | |
| "model": "gpt-4o", | |
| "temperature": 0.1, | |
| "max_tokens": 2000, | |
| "top_p": 1.0, | |
| "num_responses": 5 | |
| } | |
| def get(self, key, default=None): | |
| """Pobiera wartość z konfiguracji""" | |
| return st.session_state.config.get(key, default) | |
| def set(self, key, value): | |
| """Ustawia wartość w konfiguracji""" | |
| st.session_state.config[key] = value | |
| def get_api_key(self): | |
| """ | |
| Pobiera klucz API - priorytet: | |
| 1. Streamlit secrets (production) | |
| 2. Session state (user input) | |
| """ | |
| # Try Streamlit secrets first (for Hugging Face deployment) | |
| try: | |
| if hasattr(st, 'secrets') and 'OPENAI_API_KEY' in st.secrets: | |
| return st.secrets['OPENAI_API_KEY'] | |
| except: | |
| pass | |
| # Fallback to session state | |
| return st.session_state.config.get("api_key", "") | |
| def set_api_key(self, api_key): | |
| """Zapisuje klucz API do session state""" | |
| st.session_state.config["api_key"] = api_key | |
| def get_all_settings(self): | |
| """Zwraca wszystkie ustawienia""" | |
| return st.session_state.config.copy() | |
| def update_settings(self, settings): | |
| """Aktualizuje wiele ustawień jednocześnie""" | |
| st.session_state.config.update(settings) | |