import os import logging from pathlib import Path import sys # Додаємо поточну директорію до PYTHONPATH для правильного імпорту модулів current_dir = os.path.dirname(os.path.abspath(__file__)) if current_dir not in sys.path: sys.path.append(current_dir) # Налаштування логування logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=[ logging.FileHandler("huggingface_jira_assistant.log"), logging.StreamHandler(sys.stdout) ] ) logger = logging.getLogger("jira_assistant_hf") # Створення необхідних директорій for directory in ["data", "reports", "temp", "logs", "temp/indices", "current_data"]: Path(directory).mkdir(exist_ok=True, parents=True) logger.info(f"Робоча директорія: {os.getcwd()}") logger.info(f"Вміст робочої директорії: {os.listdir('.')}") logger.info(f"Python path: {sys.path}") # Перевірка середовища Hugging Face is_huggingface = os.environ.get("SPACE_ID") is not None if is_huggingface: logger.info("Виявлено середовище Hugging Face Spaces") # Спроба імпорту основного додатку try: # Імпорт уніфікованого менеджера індексів from modules.data_management.unified_index_manager import UnifiedIndexManager # Створюємо глобальний екземпляр менеджера індексів # Це дозволить використовувати один і той же менеджер в різних модулях index_manager = UnifiedIndexManager() # Додаємо менеджер індексів до глобальних змінних import builtins builtins.index_manager = index_manager # Імпорт основного додатку з перейменованого файлу from jira_assistant import JiraAssistantApp from interface import launch_interface # Створення екземпляру додатку app = JiraAssistantApp() # Передаємо менеджер індексів у додаток app.index_manager = index_manager # Отримання інтерфейсу Gradio interface = launch_interface(app) # Запуск інтерфейсу if __name__ == "__main__": interface.launch( server_name="0.0.0.0", server_port=7860, share=False ) except Exception as e: import traceback logger.error(f"Помилка при ініціалізації програми: {e}") logger.error(traceback.format_exc()) # Створення спрощеного інтерфейсу при помилці import gradio as gr def simplified_interface(): with gr.Blocks(title="Jira AI Assistant") as interface: gr.Markdown("# 🔍 Jira AI Assistant") gr.Markdown(f""" ## ⚠️ Помилка запуску Виникла помилка при запуску програми. Перевірте логи для детальної інформації. Помилка: {str(e)} Вміст директорії: {os.listdir('.')} Python path: {sys.path} """) return interface interface = simplified_interface() if __name__ == "__main__": interface.launch( server_name="0.0.0.0", server_port=7860, share=False )