docsa_HD
Add app
aae3317
raw
history blame
2.71 kB
import gradio as gr
import time
from .analyzer import NPAAnalyzer
def create_interface():
try:
analyzer = NPAAnalyzer()
# Функція для форматування результату в Markdown
def analyze_and_format(npa_text):
if not npa_text.strip():
return "### Помилка\nПоле для тексту не може бути порожнім. Введіть текст для аналізу."
start_time = time.time() # Початок відліку часу
status = "Аналіз завершено..."
result = analyzer.analyze_npa(npa_text)
end_time = time.time() # Кінець відліку часу
elapsed_time = end_time - start_time
return f"### Експертний висновок\n{result}\n\n_Час аналізу: {elapsed_time:.2f} секунд._", status
with gr.Blocks() as iface:
gr.Markdown("""
## Антикорупційна експертиза НПА
Система допомагає визначати корупціогенні фактори в проектах НПА відповідно до [офіційної методології](https://nazk.gov.ua/uk/antykoruptsijna-ekspertyza/).
### Інструкція:
1. Введіть текст проекту нормативно-правового акту в поле нижче.
2. Натисніть кнопку "Аналіз" для запуску аналізу.
3. Ознайомтесь із висновком.
""")
with gr.Row():
input_box = gr.Textbox(
lines=12,
label="Введіть текст проекту НПА",
placeholder="Вставте текст проекту нормативно-правового акту для аналізу...",
)
with gr.Row():
analyze_button = gr.Button("Аналіз")
with gr.Row():
output_box = gr.Markdown(label="Експертний висновок")
with gr.Row():
status_box = gr.Textbox(label="Статус", interactive=False)
# Логіка кнопки
analyze_button.click(
analyze_and_format,
inputs=input_box,
outputs=[output_box, status_box]
)
return iface
except Exception as e:
print(f"Помилка при створенні інтерфейсу: {str(e)}")
raise