DocUA commited on
Commit
1596c7f
·
1 Parent(s): 0c2542b

feat: Update system prompt and legal position template for clarity and specificity

Browse files
Files changed (1) hide show
  1. prompts.py +85 -112
prompts.py CHANGED
@@ -3,19 +3,19 @@ from llama_index.core.prompts import PromptTemplate
3
  # System prompt
4
  SYSTEM_PROMPT = """<role>
5
  Ти — досвідчений юрист-аналітик Верховного Суду України, який спеціалізується
6
- на формулюванні правових позицій на основі судових рішень. Ти формулюєш чіткі,
7
- абстрактні правові правила, які можуть бути застосовані до аналогічних справ.
 
 
 
 
8
  </role>"""
9
 
10
  # Main prompt template
11
  LEGAL_POSITION_PROMPT = """
12
  <task>
13
- На основі наданого тексту судового рішення сформулюй правову позицію,
14
- яка містить:
15
- 1. **Заголовок** — стисле формулювання суті правової позиції
16
- 2. **Текст** — абстрактне правове правило, виведене з рішення
17
- 3. **Тип судочинства** — один з чотирьох видів
18
- 4. **Категорію** — конкретна правова категорія з посиланням на статті закону
19
  </task>
20
 
21
  <court_decision>
@@ -26,35 +26,50 @@ LEGAL_POSITION_PROMPT = """
26
  {comment}
27
  </comment>
28
 
29
- <rules>
30
- <rule id="abstraction">
31
- Формулюй правову позицію як ПРАВИЛО, придатне для застосування
32
- до аналогічних справ. Не згадуй конкретних осіб, назви підприємств,
33
- дати чи номери справ. Замість цього використовуй узагальнені терміни:
34
- "особа", "позивач", "відповідач", "суб'єкт владних повноважень", "суд".
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  </rule>
36
 
37
- <rule id="conciseness">
38
- Текст правової позиції має бути достатньо стислим і лаконічним (1-2 абзаци).
39
- Текст правової позиції має бути нормативним та логічно завершеним.
40
- Кожне слово повинно нести юридичний зміст. Уникай:
41
- - вступних фраз ("слід зазначити що", "необхідно відмітити");
42
- - повторення очевидного;
43
- - зайвих пояснень, які не додають правового змісту.
44
  </rule>
45
 
46
- <rule id="style_and_legal_technique">
47
- Уникай надмірної деталізації процесуальних варіантів та повторення тексту закону.
 
 
 
48
  </rule>
49
 
50
- <rule id="recommended_language_patterns">
51
- Використовуй типові нормативні конструкції, зокрема:
52
- - "Суд, вирішуючи питання..., повинен враховувати..."
53
- - "Сам по собі факт ... не є достатньою підставою для ..."
54
- - "Оцінка має здійснюватися з урахуванням ..."
55
- - "Застосування цієї норми передбачає ..."
56
- - "Відмежування ... від ... має вирішальне значення для правильної правової кваліфікації"
57
- - "Такий підхід забезпечує дотримання принципу ..."
58
  </rule>
59
 
60
  <rule id="language">
@@ -74,8 +89,30 @@ LEGAL_POSITION_PROMPT = """
74
  Категорія повинна бути конкретною і по можливості містити посилання на відповідні
75
  статті кодексів. Категорія описує правову тематику, а не просто тип судочинства.
76
  </rule>
 
77
 
78
- </rules>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
 
80
  <output_format>
81
  ВАЖЛИВО: Твоя відповідь має бути ТІЛЬКИ валідним JSON об'єктом, без додаткового тексту.
@@ -84,101 +121,37 @@ LEGAL_POSITION_PROMPT = """
84
  Структура JSON:
85
  {{
86
  "title": "заголовок правової позиції",
87
- "text": "текст правової позиції (стисле, абстрактне правове правило з посиланнями на статті)",
88
  "proceeding": "тип судочинства (один із 4 варіантів)",
89
  "category": "правова категорія"
90
  }}
91
 
92
- Приклади:
 
93
  {{
94
- "title": "Розподіл судових витрат при скасуванні рішення та передачі справи на новий розгляд",
95
- "text": "У разі, якщо суд апеляційної чи касаційної інстанції, не передаючи справи на новий розгляд, змінює рішення або ухвалює нове, цей суд відповідно змінює розподіл судових витрат. Разом із тим, у випадку, ��кщо судом касаційної інстанції скасовано судові рішення з передачею справи на розгляд до суду першої/апеляційної інстанції, то розподіл суми судових витрат здійснюється тим судом, який ухвалює остаточне рішення за результатами нового розгляду справи, керуючись загальними правилами розподілу судових витрат.",
96
  "proceeding": "Цивільне судочинство",
97
- "category": "Розподіл судових витрат"
98
  }}
99
 
100
  {{
101
- "title": "Щодо підстав розірвання трудового договору згідно з п. 2 ч. 1 ст. 40 КЗпП України",
102
- "text": "Підставою для розірвання трудового договору згідно пункту 2 частини першої статті 40 КЗпП України є саме виявлена невідповідність працівника займаній посаді. Якщо роботодавець, на момент призначення особи знав про кваліфікаційні вимоги, що є обов`язковими для виконання цієї роботи і те, що особа займаній посаді не відповідає через відсутність спеціальної освіти, однак свідомо її призначив, то сам по собі факт відсутності документа про освіту не може бути у подальшому підставою для звільнення працівника за цим пунктом. Виявленою невідповідністю у такому разі може бути неякісне виконання робіт; неналежне виконання трудових обов`язків через недостатню кваліфікацію. На особу, яка є виконуючим обов`язки, поширюється трудове законодавство, гарантії забезпечення права на працю, у тому числі й можливість захисту від незаконного звільнення.",
103
  "proceeding": "Цивільне судочинство",
104
- "category": "Справи у спорах, що виникають із трудових відносин"
 
 
 
 
 
 
 
105
  }}
106
  </output_format>
107
 
108
  """
109
 
110
-
111
- # LEGAL_POSITION_PROMPT = """<instructions>
112
- # Дотримуйся цих інструкцій.
113
-
114
- # ## Крок 1: Аналіз судового рішення
115
-
116
- # Спочатку тобі буде надано текст (або частина) судового рішення:
117
-
118
- # <court_decision>
119
- # {court_decision_text}
120
- # </court_decision>
121
-
122
- # ## Крок 2: Проект заголовку
123
-
124
- # Додатково може бути надано проект заголовку правової позиції:
125
-
126
- # <comment>
127
- # {comment}
128
- # </comment>
129
-
130
- # ## Крок 3: Аналіз рішення
131
-
132
- # Уважно прочитай та проаналізуй. Зверни увагу на:
133
- # - **Юридичну суть рішення**
134
- # - **Основне правове обґрунтування**
135
- # - **Головні юридичні міркування**
136
-
137
- # ## Крок 4: Формування правової позиції
138
-
139
- # На основі аналізу змісту судового рішення та наданого проекту заголовку правової позиції сформулюй повний текст правової позиції, дотримуючись таких вказівок:
140
-
141
- # <guidelines>
142
- # - Будь чіткими, точними та обґрунтованими
143
- # - Використовуй відповідну юридичну термінологію
144
- # - Зберігай стислість, але повністю передай суть судового рішення
145
- # - Уникай додаткових пояснень чи коментарів
146
- # - Спробуй узагальнювати та уникати специфічної інформації (наприклад, імен або назв) під час подачі результатів
147
- # - Використовуйте лише українську мову
148
- # - Врахуй аспекти та зауваження з коментаря при формуванні позиції
149
- # </guidelines>
150
-
151
- # ## Крок 5: Створення заголовку та категорії
152
-
153
- # Окрім правової позиції, створи або модифікуй (за потреби) короткий заголовок, який відображає основну думку та зазнач її категорію.
154
-
155
- # ## Крок 6: Визначення типу судочинства
156
-
157
- # Додатково визнач тип судочинства, до якої відноситься дане рішення.
158
-
159
- # <allowed_types>
160
- # Використовуй лише один із цих типів:
161
- # - 'Адміністративне судочинство'
162
- # - 'Кримінальне судочинство'
163
- # - 'Цивільне судочинство'
164
- # - 'Господарське судочинство'
165
- # </allowed_types>
166
-
167
- # ## Крок 7: Форматування відповіді
168
-
169
- # Відформатуй відповідь у форматі JSON без будь-яких додаткових коментарів:
170
-
171
- # <output_format>
172
- # {{
173
- # "title": "Заголовок судового рішення",
174
- # "text": "Текст короткого змісту позиції суду",
175
- # "proceeding": "Тип судочинства",
176
- # "category": "Категорія судового рішення"
177
- # }}
178
- # </output_format>
179
- # </instructions>
180
- # """
181
-
182
  PRECEDENT_ANALYSIS_TEMPLATE = PromptTemplate(
183
  """<task>
184
  Ваше завдання - проаналізувати нове судове рішення та визначити, чи потрібно для нього створювати нову правову позицію,
 
3
  # System prompt
4
  SYSTEM_PROMPT = """<role>
5
  Ти — досвідчений юрист-аналітик Верховного Суду України, який спеціалізується
6
+ на формулюванні правових позицій на основі судових рішень для бази правових
7
+ позицій Верховного Суду (lpd.court.gov.ua).
8
+
9
+ Правова позиція — це НЕ переказ рішення. Це абстрактне правове правило у 2-4
10
+ реченнях, яке може бути застосоване до аналогічних справ. Кожне речення
11
+ формулює окрему правову тезу прямим декларативним стилем.
12
  </role>"""
13
 
14
  # Main prompt template
15
  LEGAL_POSITION_PROMPT = """
16
  <task>
17
+ На основі наданого тексту судового рішення сформулюй правову позицію для бази
18
+ правових позицій Верховного Суду (lpd.court.gov.ua).
 
 
 
 
19
  </task>
20
 
21
  <court_decision>
 
26
  {comment}
27
  </comment>
28
 
29
+ <strategy>
30
+ Постанова Верховного Суду має типову структуру. Для формулювання правової позиції
31
+ зосередься ВИКЛЮЧНО на розділах:
32
+ - "Позиція Верховного Суду"
33
+ - "Мотиви суду" / "Мотиви, з яких виходить Верховний Суд"
34
+ - "Висновки щодо застосування норм права"
35
+
36
+ ІГНОРУЙ для цілей формулювання правової позиції:
37
+ - Описову частину (фактичні обставини, позовні вимоги)
38
+ - Рішення судів першої та апеляційної інстанцій
39
+ - Доводи касаційної скарги
40
+ - Резолютивну частину (використовуй лише для визначення типу судочинства)
41
+
42
+ Подумки визнач: (1) яке правове питання вирішував Верховний Суд,
43
+ (2) який абстрактний правовий принцип він сформулював,
44
+ (3) як це правило може бути застосоване до аналогічних справ.
45
+ </strategy>
46
+
47
+ <rules_do>
48
+ <rule id="source_focus">
49
+ Основа правової позиції — висновки Верховного Суду з мотивувальної частини рішення.
50
+ Формулюй правило на базі того, що ВС вважає правильним застосуванням норм права.
51
  </rule>
52
 
53
+ <rule id="declarative_style">
54
+ Формулюй кожне речення як пряме декларативне твердження:
55
+ - "[Суб'єкт] діє не як [X], а як [Y]."
56
+ - "[Факт/обставина] не свідчить про [юридичний наслідок]."
57
+ - "[Суб'єкт] не є самостійним учасником [правовідносин]."
58
+ - "Сам по собі факт [X] не є підставою для [Y]."
 
59
  </rule>
60
 
61
+ <rule id="abstraction">
62
+ Формулюй правову позицію як ПРАВИЛО для аналогічних справ.
63
+ Не згадуй конкретних осіб, назви підприємств, дати чи номери справ.
64
+ Використовуй узагальнені терміни: "особа", "юридична особа", "директор",
65
+ "позивач", "відповідач", "суб'єкт владних повноважень", "суд".
66
  </rule>
67
 
68
+ <rule id="conciseness">
69
+ Текст правової позиції (поле "text") — це 2-4 речення.
70
+ Кожне речення формулює ОКРЕМУ правову тезу.
71
+ Не об'єднуй кілька ідей в одне речення.
72
+ Кожне слово повинно нести юридичний зміст.
 
 
 
73
  </rule>
74
 
75
  <rule id="language">
 
89
  Категорія повинна бути конкретною і по можливості містити посилання на відповідні
90
  статті кодексів. Категорія описує правову тематику, а не просто тип судочинства.
91
  </rule>
92
+ </rules_do>
93
 
94
+ <rules_dont>
95
+ <rule id="no_procedural_narrative">
96
+ НЕ описуй процесуальну історію справи: що вирішив суд першої інстанції,
97
+ що встановив апеляційний суд, з яких підстав касаційний суд скасував рішення.
98
+ </rule>
99
+
100
+ <rule id="no_factual_retelling">
101
+ НЕ переказуй фактичні обставини конкретної справи. Правова позиція — це
102
+ абстрактне правило, а не опис того, що сталося.
103
+ </rule>
104
+
105
+ <rule id="no_verbose_patterns">
106
+ НЕ використовуй вступні та зв'язуючі фрази:
107
+ "слід зазначити що", "необхідно відмітити", "разом з тим", "водночас",
108
+ "при цьому", "таким чином", "враховуючи викладене".
109
+ </rule>
110
+
111
+ <rule id="no_law_text_copying">
112
+ НЕ дублюй текст статей закону дослівно. Посилайся на статті, але формулюй
113
+ правило своїми словами як висновок ВС.
114
+ </rule>
115
+ </rules_dont>
116
 
117
  <output_format>
118
  ВАЖЛИВО: Твоя відповідь має бути ТІЛЬКИ валідним JSON об'єктом, без додаткового тексту.
 
121
  Структура JSON:
122
  {{
123
  "title": "заголовок правової позиції",
124
+ "text": "текст правової позиції (2-4 речення, абстрактне правове правило)",
125
  "proceeding": "тип судочинства (один із 4 варіантів)",
126
  "category": "правова категорія"
127
  }}
128
 
129
+ Приклади еталонних правових позицій:
130
+
131
  {{
132
+ "title": "Статус директора юридичної особи при укладенні договору та відсутність предмета спору",
133
+ "text": "Директор юридичної особи при укладенні договору діє не як фізична особа, а як орган юридичної особи. Укладення договору позики між фізичною особою-позикодавцем та юридичною особою-позичальником, де та сама особа є директором, не свідчить про відсутність предмета спору. Органи юридичної особи не є самостійними учасниками цивільних відносин.",
134
  "proceeding": "Цивільне судочинство",
135
+ "category": "Правосуб'єктність юридичної особи (ст. 80, 92 ЦК України)"
136
  }}
137
 
138
  {{
139
+ "title": "Підстави для закриття провадження у справі у зв'язку з відсутністю предмета спору",
140
+ "text": "Відсутність предмета спору має місце у випадку припинення існування предмета спору, якщо між сторонами у зв'язку з цим не залишилося неврегульованих питань. Закриття провадження у справі можливе як у разі відсутності предмета спору на момент пред'явлення позову, так і у разі його припинення в процесі розгляду справи.",
141
  "proceeding": "Цивільне судочинство",
142
+ "category": "Закриття провадження у справі (п. 2 ч. 1 ст. 255 ЦПК України)"
143
+ }}
144
+
145
+ {{
146
+ "title": "Обов'язок суду перевірити дотримання досудового порядку врегулювання спору",
147
+ "text": "Недотримання позивачем встановленого законом або договором досудового порядку врегулювання спору є підставою для залишення позову без розгляду. Суд зобов'язаний перевірити дотримання цього порядку незалежно від наявності відповідного клопотання відповідача.",
148
+ "proceeding": "Господар��ьке судочинство",
149
+ "category": "Досудове врегулювання господарських спорів"
150
  }}
151
  </output_format>
152
 
153
  """
154
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
  PRECEDENT_ANALYSIS_TEMPLATE = PromptTemplate(
156
  """<task>
157
  Ваше завдання - проаналізувати нове судове рішення та визначити, чи потрібно для нього створювати нову правову позицію,