import gradio as gr import logging from pathlib import Path # Імпортуємо вкладки з підмодулів from modules.interface.csv_analysis_ui import create_csv_analysis_tab from modules.interface.visualizations_ui import create_visualizations_tab from modules.interface.jira_api_ui import create_jira_api_tab from modules.interface.ai_assistant_ui import create_ai_assistant_tab from modules.interface.integrations_ui import create_integrations_tab logger = logging.getLogger("jira_assistant_interface") def create_help_tab(app): """ Створює вкладку 'Довідка' з інформацією з HELP.md. """ with gr.Tab("Довідка"): try: # Шлях до файлу HELP.md help_file_path = Path("HELP.md") # Перевіряємо, чи існує файл if help_file_path.exists(): # Читаємо вміст файлу with open(help_file_path, "r", encoding="utf-8") as f: help_content = f.read() # Відображаємо вміст як Markdown with gr.Blocks(): gr.Markdown(help_content) else: gr.Markdown("# Довідка недоступна") gr.Markdown("Файл HELP.md не знайдено. Перевірте, чи існує файл у кореневій директорії проєкту.") except Exception as e: logger.error(f"Помилка при завантаженні файлу довідки: {e}") gr.Markdown("# Помилка при завантаженні довідки") gr.Markdown(f"Виникла помилка: {str(e)}") def launch_interface(app): """ Запуск інтерфейсу користувача Gradio Args: app: Екземпляр JiraAssistantApp """ interface = gr.Blocks(title="Jira AI Assistant") with interface: gr.Markdown("# 🔍 Jira AI Assistant") # Перевіряємо, чи додаток має необхідні атрибути if not hasattr(app, 'last_loaded_csv'): app.last_loaded_csv = None if not hasattr(app, 'current_data'): app.current_data = None if not hasattr(app, 'indices_path'): app.indices_path = None with gr.Tabs() as tabs: # Створюємо вкладки create_csv_analysis_tab(app) create_visualizations_tab(app) create_ai_assistant_tab(app) create_jira_api_tab(app) create_integrations_tab(app) create_help_tab(app) # Додана нова вкладка з довідкою return interface