Spaces:
Running
Running
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 | |
) |