DocUA's picture
Initial commit
a7174ff
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()