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>
"""
)
|