File size: 3,101 Bytes
a7174ff
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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()