from llama_index.core.prompts import PromptTemplate # System prompt SYSTEM_PROMPT = """ Ти — досвідчений юрист-аналітик Верховного Суду України, який спеціалізується на формулюванні правових позицій на основі судових рішень для бази правових позицій Верховного Суду (lpd.court.gov.ua). Правова позиція — це НЕ переказ рішення. Це абстрактне правове правило у 2-4 реченнях, яке може бути застосоване до аналогічних справ. Кожне речення формулює окрему правову тезу прямим декларативним стилем. """ # Main prompt template LEGAL_POSITION_PROMPT = """ На основі наданого тексту судового рішення сформулюй правову позицію для бази правових позицій Верховного Суду (lpd.court.gov.ua). {court_decision_text} {comment} Постанова Верховного Суду має типову структуру. Для формулювання правової позиції зосередься ВИКЛЮЧНО на розділах: - "Позиція Верховного Суду" - "Мотиви суду" / "Мотиви, з яких виходить Верховний Суд" - "Висновки щодо застосування норм права" ІГНОРУЙ для цілей формулювання правової позиції: - Описову частину (фактичні обставини, позовні вимоги) - Рішення судів першої та апеляційної інстанцій - Доводи касаційної скарги - Резолютивну частину (використовуй лише для визначення типу судочинства) Подумки визнач: (1) яке правове питання вирішував Верховний Суд, (2) який абстрактний правовий принцип він сформулював, (3) як це правило може бути застосоване до аналогічних справ. Основа правової позиції — висновки Верховного Суду з мотивувальної частини рішення. Формулюй правило на базі того, що ВС вважає правильним застосуванням норм права. Формулюй кожне речення як пряме декларативне твердження: - "[Суб'єкт] діє не як [X], а як [Y]." - "[Факт/обставина] не свідчить про [юридичний наслідок]." - "[Суб'єкт] не є самостійним учасником [правовідносин]." - "Сам по собі факт [X] не є підставою для [Y]." Формулюй правову позицію як ПРАВИЛО для аналогічних справ. Не згадуй конкретних осіб, назви підприємств, дати чи номери справ. Використовуй узагальнені терміни: "особа", "юридична особа", "директор", "позивач", "відповідач", "суб'єкт владних повноважень", "суд". Текст правової позиції (поле "text") — це 2-4 речення. Кожне речення формулює ОКРЕМУ правову тезу. Не об'єднуй кілька ідей в одне речення. Кожне слово повинно нести юридичний зміст. Використовуй ВИКЛЮЧНО українську мову. Дотримуйся офіційно-ділового стилю, характерного для правових документів Верховного Суду України. Тип судочинства — строго один із чотирьох варіантів: - "Адміністративне судочинство" - "Кримінальне судочинство" - "Цивільне судочинство" - "Господарське судочинство" Категорія повинна бути конкретною і по можливості містити посилання на відповідні статті кодексів. Категорія описує правову тематику, а не просто тип судочинства. НЕ описуй процесуальну історію справи: що вирішив суд першої інстанції, що встановив апеляційний суд, з яких підстав касаційний суд скасував рішення. НЕ переказуй фактичні обставини конкретної справи. Правова позиція — це абстрактне правило, а не опис того, що сталося. НЕ використовуй вступні та зв'язуючі фрази: "слід зазначити що", "необхідно відмітити", "разом з тим", "водночас", "при цьому", "таким чином", "враховуючи викладене". НЕ дублюй текст статей закону дослівно. Посилайся на статті, але формулюй правило своїми словами як висновок ВС. ВАЖЛИВО: Твоя відповідь має бути ТІЛЬКИ валідним 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": "Досудове врегулювання господарських спорів" }} """ PRECEDENT_ANALYSIS_TEMPLATE = PromptTemplate( """ Ваше завдання - проаналізувати нове судове рішення та визначити, чи потрібно для нього створювати нову правову позицію, чи можна використати існуючі правові позиції Верховного Суду. Дотримуйтесь цих кроків: ### Крок 1: Розгляд нового рішення Спочатку розгляньте проект правової позиції нового рішення: {query} ### Крок 2: Уточнююче питання Врахуйте уточнююче питання: {question} ### Крок 3: Аналіз існуючих позицій Проаналізуйте існуючі правові позиції: {context_str} ### Крок 4: Порівняльний аналіз Проведіть порівняльний аналіз: - Визначте ключові правові питання нового рішення - Знайдіть релевантні існуючі правові позиції - Оцініть можливість їх застосування до нового рішення - Визначте, чи повністю вони охоплюють правову проблематику нового рішення ### Крок 5: Деталізація релевантних позицій Для кожної релевантної правової позиції надайте: а. **ID позиції** б. **Порядковий номер** зі списку наданих правових позицій в. **Детальне обґрунтування**, чому ця позиція може бути використана, включаючи аналіз спільних правових питань, аргументації та висновків ### Крок 6: Формування результату Представте висновки у форматі JSON: {{ "relevant_positions": [ {{ "lp_id": "ID позиції", "source_index": "Порядковий номер позиції у списку", "description": "Детальне обґрунтування релевантності та можливості застосування цієї правової позиції до нового рішення" }} ] }} **Важливі вимоги:** - Включайте до результату **ТІЛЬКИ** ті правові позиції, які дійсно можуть бути використані для нового рішення - В описі обов'язково вказуйте конкретні аспекти, за якими правова позиція співпадає з новим рішенням - Якщо жодна з існуючих позицій не підходить, поверніть пустий масив `relevant_positions` - В `description` надайте розгорнутий аналіз, чому позиція може бути використана - Переконайтеся, що ваш JSON правильно форматований та валідний Приступайте до аналізу та надайте обґрунтований висновок щодо можливості використання існуючих правових позицій. """ )