DocUA commited on
Commit
661d212
1 Parent(s): 9e1b473
Files changed (3) hide show
  1. src/analyzer.py +1 -1
  2. src/interface.py +19 -7
  3. src/prompts.py +2 -1
src/analyzer.py CHANGED
@@ -37,7 +37,7 @@ class NPAAnalyzer:
37
  try:
38
  response = self.anthropic.messages.create(
39
  model="claude-3-5-sonnet-latest",
40
- max_tokens=4000,
41
  messages=[
42
  {
43
  "role": "assistant",
 
37
  try:
38
  response = self.anthropic.messages.create(
39
  model="claude-3-5-sonnet-latest",
40
+ max_tokens=8000,
41
  messages=[
42
  {
43
  "role": "assistant",
src/interface.py CHANGED
@@ -1,4 +1,5 @@
1
  import gradio as gr
 
2
  from .analyzer import NPAAnalyzer
3
 
4
  def create_interface():
@@ -7,8 +8,16 @@ def create_interface():
7
 
8
  # Функція для форматування результату в Markdown
9
  def analyze_and_format(npa_text):
 
 
 
 
 
10
  result = analyzer.analyze_npa(npa_text)
11
- return f"### Експертний висновок\n{result}"
 
 
 
12
 
13
  iface = gr.Interface(
14
  fn=analyze_and_format,
@@ -16,18 +25,20 @@ def create_interface():
16
  lines=12,
17
  label="Введіть текст проекту НПА",
18
  placeholder="Вставте текст проекту нормативно-правового акту для аналізу...",
 
19
  ),
20
- outputs=gr.Markdown(
21
- label="Експертний висновок",
22
- ),
 
23
  title="Антикорупційна експертиза НПА",
24
  description="""
25
  ## Система автоматизованого аналізу проектів нормативно-правових актів
26
- Ця система допомагає визначати корупціогенні фактори в проектах НПА відповідно до офіційної [методології](https://nazk.gov.ua/uk/documents/nakaz-vid-18-05-2023-109-23-pro-zatverdzhennya-metodologiyi-provedennya-antykoruptsijnoyi-ekspertyzy-natsionalnym-agentstvom-z-pytan-zapobigannya-koruptsiyi/?hilite=%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D1%96).
27
 
28
  ### Інструкція:
29
  1. Введіть текст проекту нормативно-правового акту в поле нижче.
30
- 2. Натисніть кнопку "Submit" для запуску аналізу.
31
  3. Ознайомтесь із проектом експертного висновку.
32
  """,
33
  theme="compact",
@@ -36,7 +47,8 @@ def create_interface():
36
  # ["Проект НПА: У тексті йдеться про регулювання діяльності в певній сфері, передбачено положення про додаткові узгодження..."]
37
  # ]
38
  )
 
39
  return iface
40
  except Exception as e:
41
  print(f"Помилка при створенні інтерфейсу: {str(e)}")
42
- raise
 
1
  import gradio as gr
2
+ import time
3
  from .analyzer import NPAAnalyzer
4
 
5
  def create_interface():
 
8
 
9
  # Функція для форматування результату в Markdown
10
  def analyze_and_format(npa_text):
11
+ if not npa_text.strip():
12
+ return "### Помилка\nПоле для тексту не може бути порожнім. Введіть текст для аналізу."
13
+
14
+ start_time = time.time() # Початок відліку часу
15
+ status = "Виконується аналіз... будь ласка, зачекайте"
16
  result = analyzer.analyze_npa(npa_text)
17
+ end_time = time.time() # Кінець відліку часу
18
+
19
+ elapsed_time = end_time - start_time
20
+ return f"### Експертний висновок\n{result}\n\n_Час аналізу: {elapsed_time:.2f} секунд._", status
21
 
22
  iface = gr.Interface(
23
  fn=analyze_and_format,
 
25
  lines=12,
26
  label="Введіть текст проекту НПА",
27
  placeholder="Вставте текст проекту нормативно-правового акту для аналізу...",
28
+ interactive=True
29
  ),
30
+ outputs=[
31
+ gr.Markdown(label="Експертний висновок"),
32
+ gr.Textbox(label="Статус", interactive=False)
33
+ ],
34
  title="Антикорупційна експертиза НПА",
35
  description="""
36
  ## Система автоматизованого аналізу проектів нормативно-правових актів
37
+ Ця система допомагає визначати корупціогенні фактори в проектах НПА відповідно до офіційної [методології](https://nazk.gov.ua/uk/documents/nakaz-vid-18-05-2023-109-23-pro-затвердження-metodології-proведення-antykоруptsijnої-ekspertyzy-национальным-агентством-з-пытан-запобігання-корупції/?hilite=%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D1%96).
38
 
39
  ### Інструкція:
40
  1. Введіть текст проекту нормативно-правового акту в поле нижче.
41
+ 2. Натисніть кнопку "Аналіз" для запуску аналізу.
42
  3. Ознайомтесь із проектом експертного висновку.
43
  """,
44
  theme="compact",
 
47
  # ["Проект НПА: У тексті йдеться про регулювання діяльності в певній сфері, передбачено положення про додаткові узгодження..."]
48
  # ]
49
  )
50
+
51
  return iface
52
  except Exception as e:
53
  print(f"Помилка при створенні інтерфейсу: {str(e)}")
54
+ raise
src/prompts.py CHANGED
@@ -152,4 +152,5 @@ def get_analysis_prompt(methodology: str, npa_text: str) -> str:
152
  2. Використовувати всі надані чек-листи
153
  3. Дотримуватися термінології, визначеної в методологічних документах
154
  4. Забезпечувати повноту перевірки всіх аспектів, передбачених методологією
155
- 5. При формулюванні висновків спиратися на структуру та формулювання з методології"""
 
 
152
  2. Використовувати всі надані чек-листи
153
  3. Дотримуватися термінології, визначеної в методологічних документах
154
  4. Забезпечувати повноту перевірки всіх аспектів, передбачених методологією
155
+ 5. При формулюванні висновків спиратися на структуру та формулювання з методології
156
+ 6. Завжди розпочинай із заголовка "ПРОЕКТ ВИСНОВКУ"""