Spaces:
Runtime error
Runtime error
import os | |
from pathlib import Path | |
from dotenv import load_dotenv | |
# Завантаження змінних середовища з .env файлу, якщо він існує | |
load_dotenv() | |
# Базові шляхи | |
BASE_DIR = Path(__file__).parent.absolute() | |
DATA_DIR = BASE_DIR / "data" | |
REPORTS_DIR = BASE_DIR / "reports" | |
TEMP_DIR = BASE_DIR / "temp" | |
LOG_DIR = BASE_DIR / "logs" | |
# Створення директорій, якщо вони не існують | |
DATA_DIR.mkdir(exist_ok=True, parents=True) | |
REPORTS_DIR.mkdir(exist_ok=True, parents=True) | |
TEMP_DIR.mkdir(exist_ok=True, parents=True) | |
LOG_DIR.mkdir(exist_ok=True, parents=True) | |
# Налаштування додатку | |
APP_NAME = "Jira AI Assistant" | |
APP_VERSION = "1.0.0" | |
DEFAULT_INACTIVE_DAYS = 14 | |
MAX_RESULTS = 500 | |
# API ключі та налаштування | |
JIRA_URL = os.getenv("JIRA_URL", "") | |
JIRA_USERNAME = os.getenv("JIRA_USERNAME", "") | |
JIRA_API_TOKEN = os.getenv("JIRA_API_TOKEN", "") | |
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "") | |
OPENAI_MODEL = os.getenv("OPENAI_MODEL", "gpt-3.5-turbo") | |
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "") | |
GEMINI_MODEL = os.getenv("GEMINI_MODEL", "gemini-pro") | |
SLACK_BOT_TOKEN = os.getenv("SLACK_BOT_TOKEN", "") | |
# Налаштування логування | |
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO") | |
LOG_FILE = os.getenv("LOG_FILE", LOG_DIR / f"{APP_NAME.lower().replace(' ', '_')}.log") | |
# Додаткові налаштування для Gradio | |
GRADIO_THEME = "huggingface" # Доступні теми: default, huggingface, grass, peach | |
GRADIO_AUTH = [] # Список кортежів (username, password) для авторизації | |
GRADIO_SHARE = False # Чи використовувати публічний URL для додатку | |
# Функція для збереження налаштувань у конфігураційний файл | |
def save_config(): | |
import json | |
config = { | |
"app_name": APP_NAME, | |
"version": APP_VERSION, | |
"data_dir": str(DATA_DIR), | |
"reports_dir": str(REPORTS_DIR), | |
"temp_dir": str(TEMP_DIR), | |
"log_dir": str(LOG_DIR), | |
"log_level": LOG_LEVEL, | |
"default_inactive_days": DEFAULT_INACTIVE_DAYS, | |
"openai_model": OPENAI_MODEL, | |
"gemini_model": GEMINI_MODEL, | |
"max_results": MAX_RESULTS, | |
"gradio_theme": GRADIO_THEME, | |
"gradio_share": GRADIO_SHARE | |
} | |
with open(BASE_DIR / "config.json", "w", encoding="utf-8") as f: | |
json.dump(config, f, indent=2) | |
# Функція для завантаження налаштувань з конфігураційного файлу | |
def load_config(): | |
import json | |
config_file = BASE_DIR / "config.json" | |
if config_file.exists(): | |
with open(config_file, "r", encoding="utf-8") as f: | |
config = json.load(f) | |
return config | |
return None | |
# Створення конфігураційного файлу при імпорті, якщо він не існує | |
if not (BASE_DIR / "config.json").exists(): | |
save_config() |