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