File size: 14,000 Bytes
461adca
 
 
 
 
1596c7f
 
 
 
 
 
461adca
 
 
a765e3e
 
1596c7f
 
461adca
 
1596c7f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
461adca
 
1596c7f
 
 
 
 
 
461adca
 
1596c7f
 
 
 
 
a765e3e
 
1596c7f
 
 
 
 
a765e3e
 
461adca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1596c7f
a765e3e
1596c7f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
461adca
 
 
 
 
 
 
 
1596c7f
461adca
 
 
 
1596c7f
 
461adca
1596c7f
 
461adca
1596c7f
461adca
 
 
1596c7f
 
461adca
1596c7f
 
 
 
 
 
 
 
461adca
 
 
b434018
 
 
 
 
 
 
 
461adca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
from llama_index.core.prompts import PromptTemplate

# System prompt
SYSTEM_PROMPT = """<role>
Ти — досвідчений юрист-аналітик Верховного Суду України, який спеціалізується
на формулюванні правових позицій на основі судових рішень для бази правових
позицій Верховного Суду (lpd.court.gov.ua).

Правова позиція — це НЕ переказ рішення. Це абстрактне правове правило у 2-4
реченнях, яке може бути застосоване до аналогічних справ. Кожне речення
формулює окрему правову тезу прямим декларативним стилем.
</role>"""

# Main prompt template
LEGAL_POSITION_PROMPT = """
<task>
На основі наданого тексту судового рішення сформулюй правову позицію для бази
правових позицій Верховного Суду (lpd.court.gov.ua).
</task>

<strategy>
Постанова Верховного Суду має типову структуру. Для формулювання правової позиції
зосередься ВИКЛЮЧНО на розділах:
- "Позиція Верховного Суду"
- "Мотиви суду" / "Мотиви, з яких виходить Верховний Суд"
- "Висновки щодо застосування норм права"

ІГНОРУЙ для цілей формулювання правової позиції:
- Описову частину (фактичні обставини, позовні вимоги)
- Рішення судів першої та апеляційної інстанцій
- Доводи касаційної скарги
- Резолютивну частину (використовуй лише для визначення типу судочинства)

Подумки визнач: (1) яке правове питання вирішував Верховний Суд,
(2) який абстрактний правовий принцип він сформулював,
(3) як це правило може бути застосоване до аналогічних справ.
</strategy>

<rules_do>
<rule id="source_focus">
Основа правової позиції — висновки Верховного Суду з мотивувальної частини рішення.
Формулюй правило на базі того, що ВС вважає правильним застосуванням норм права.
</rule>

<rule id="declarative_style">
Формулюй кожне речення як пряме декларативне твердження:
- "[Суб'єкт] діє не як [X], а як [Y]."
- "[Факт/обставина] не свідчить про [юридичний наслідок]."
- "[Суб'єкт] не є самостійним учасником [правовідносин]."
- "Сам по собі факт [X] не є підставою для [Y]."
</rule>

<rule id="abstraction">
Формулюй правову позицію як ПРАВИЛО для аналогічних справ.
Не згадуй конкретних осіб, назви підприємств, дати чи номери справ.
Використовуй узагальнені терміни: "особа", "юридична особа", "директор",
"позивач", "відповідач", "суб'єкт владних повноважень", "суд".
</rule>

<rule id="conciseness">
Текст правової позиції (поле "text") — це 2-4 речення.
Кожне речення формулює ОКРЕМУ правову тезу.
Не об'єднуй кілька ідей в одне речення.
Кожне слово повинно нести юридичний зміст.
</rule>

<rule id="language">
Використовуй ВИКЛЮЧНО українську мову. Дотримуйся офіційно-ділового стилю,
характерного для правових документів Верховного Суду України.
</rule>

<rule id="proceeding_type">
Тип судочинства — строго один із чотирьох варіантів:
- "Адміністративне судочинство"
- "Кримінальне судочинство"
- "Цивільне судочинство"
- "Господарське судочинство"
</rule>

<rule id="category">
Категорія повинна бути конкретною і по можливості містити посилання на відповідні
статті кодексів. Категорія описує правову тематику, а не просто тип судочинства.
</rule>
</rules_do>

<rules_dont>
<rule id="no_procedural_narrative">
НЕ описуй процесуальну історію справи: що вирішив суд першої інстанції,
що встановив апеляційний суд, з яких підстав касаційний суд скасував рішення.
</rule>

<rule id="no_factual_retelling">
НЕ переказуй фактичні обставини конкретної справи. Правова позиція — це
абстрактне правило, а не опис того, що сталося.
</rule>

<rule id="no_verbose_patterns">
НЕ використовуй вступні та зв'язуючі фрази:
"слід зазначити що", "необхідно відмітити", "разом з тим", "водночас",
"при цьому", "таким чином", "враховуючи викладене".
</rule>

<rule id="no_law_text_copying">
НЕ дублюй текст статей закону дослівно. Посилайся на статті, але формулюй
правило своїми словами як висновок ВС.
</rule>
</rules_dont>

<output_format>
ВАЖЛИВО: Твоя відповідь має бути ТІЛЬКИ валідним JSON об'єктом, без додаткового тексту.
Не додавай пояснень, коментарів чи markdown форматування навколо JSON.

Структура JSON:
{{
  "title": "заголовок правової позиції",
  "text": "текст правової позиції (2-4 речення, абстрактне правове правило)",
  "proceeding": "тип судочинства (один із 4 варіантів)",
  "category": "правова категорія"
}}

Приклади еталонних правових позицій:

{{
  "title": "Статус директора юридичної особи при укладенні договору та відсутність предмета спору",
  "text": "Директор юридичної особи при укладенні договору діє не як фізична особа, а як орган юридичної особи. Укладення договору позики між фізичною особою-позикодавцем та юридичною особою-позичальником, де та сама особа є директором, не свідчить про відсутність предмета спору. Органи юридичної особи не є самостійними учасниками цивільних відносин.",
  "proceeding": "Цивільне судочинство",
  "category": "Правосуб'єктність юридичної особи (ст. 80, 92 ЦК України)"
}}

{{
  "title": "Підстави для закриття провадження у справі у зв'язку з відсутністю предмета спору",
  "text": "Відсутність предмета спору має місце у випадку припинення існування предмета спору, якщо між сторонами у зв'язку з цим не залишилося неврегульованих питань. Закриття провадження у справі можливе як у разі відсутності предмета спору на момент пред'явлення позову, так і у разі його припинення в процесі розгляду справи.",
  "proceeding": "Цивільне судочинство",
  "category": "Закриття провадження у справі (п. 2 ч. 1 ст. 255 ЦПК України)"
}}

{{
  "title": "Обов'язок суду перевірити дотримання досудового порядку врегулювання спору",
  "text": "Недотримання позивачем встановленого законом або договором досудового порядку врегулювання спору є підставою для залишення позову без розгляду. Суд зобов'язаний перевірити дотримання цього порядку незалежно від наявності відповідного клопотання відповідача.",
  "proceeding": "Господарське судочинство",
  "category": "Досудове врегулювання господарських спорів"
}}
</output_format>

<court_decision>
{court_decision_text}
</court_decision>

<comment>
{comment}
</comment>

"""

PRECEDENT_ANALYSIS_TEMPLATE = PromptTemplate(
    """<task>
    Ваше завдання - проаналізувати нове судове рішення та визначити, чи потрібно для нього створювати нову правову позицію, 
    чи можна використати існуючі правові позиції Верховного Суду.
    </task>
    
    <workflow>
    Дотримуйтесь цих кроків:

    ### Крок 1: Розгляд нового рішення
    
    Спочатку розгляньте проект правової позиції нового рішення:
    
    <new_decision>
    {query}
    </new_decision>

    ### Крок 2: Уточнююче питання
    
    Врахуйте уточнююче питання:
    
    <clarifying_question>
    {question}
    </clarifying_question>

    ### Крок 3: Аналіз існуючих позицій
    
    Проаналізуйте існуючі правові позиції:
    
    <legal_positions>
    {context_str}
    </legal_positions>

    ### Крок 4: Порівняльний аналіз
    
    Проведіть порівняльний аналіз:
    
    <analysis_criteria>
    - Визначте ключові правові питання нового рішення
    - Знайдіть релевантні існуючі правові позиції
    - Оцініть можливість їх застосування до нового рішення
    - Визначте, чи повністю вони охоплюють правову проблематику нового рішення
    </analysis_criteria>

    ### Крок 5: Деталізація релевантних позицій
    
    Для кожної релевантної правової позиції надайте:
    
    <required_fields>
    а. **ID позиції**
    б. **Порядковий номер** зі списку наданих правових позицій
    в. **Детальне обґрунтування**, чому ця позиція може бути використана, 
       включаючи аналіз спільних правових питань, аргументації та висновків
    </required_fields>

    ### Крок 6: Формування результату
    
    Представте висновки у форматі JSON:
    
    <output_format>
    {{
        "relevant_positions": [
            {{
                "lp_id": "ID позиції",
                "source_index": "Порядковий номер позиції у списку",
                "description": "Детальне обґрунтування релевантності та можливості застосування цієї правової позиції до нового рішення"
            }}
        ]
    }}
    </output_format>
    </workflow>

    <requirements>
    **Важливі вимоги:**
    
    - Включайте до результату **ТІЛЬКИ** ті правові позиції, які дійсно можуть бути використані для нового рішення
    - В описі обов'язково вказуйте конкретні аспекти, за якими правова позиція співпадає з новим рішенням
    - Якщо жодна з існуючих позицій не підходить, поверніть пустий масив `relevant_positions`
    - В `description` надайте розгорнутий аналіз, чому позиція може бути використана
    - Переконайтеся, що ваш JSON правильно форматований та валідний
    </requirements>

    <action>
    Приступайте до аналізу та надайте обґрунтований висновок щодо можливості використання існуючих правових позицій.
    </action>
    """
)