from llama_index.core.prompts import PromptTemplate
# System prompt
SYSTEM_PROMPT = """Дій як кваліфікований юрист."""
# Main prompt template
LEGAL_POSITION_PROMPT = """Дотримуйся цих інструкцій.
1. Спочатку вам буде надано текст судового рішення:
{court_decision_text}
2. Врахуй наступний коментар щодо формування правової позиції:
{comment}
3. Уважно прочитай та проаналізуй текст наданого судового рішення. Зверни увагу на:
- Юридичну суть рішення
- Основне правове обґрунтування
- Головні юридичні міркування
- Аспекти, зазначені в коментарі
4. На основі аналізу сформулюй короткий зміст позиції суду, дотримуючись таких вказівок:
- Будь чіткими, точними та обґрунтованими
- Використовуй відповідну юридичну термінологію
- Зберігай стислість, але повністю передай суть судового рішення
- Уникай додаткових пояснень чи коментарів
- Спробуй узагальнювати та уникати специфічної інформації (наприклад, імен або назв) під час подачі результатів
- Використовуйте лише українську мову
- Врахуй аспекти та зауваження з коментаря при формуванні позиції
5. Створи короткий заголовок, який відображає основну суть судового рішення та зазнач його категорію.
6. Додатково визнач тип судочинства, до якої відноситься дане рішення.
Використовуй лише один із цих типів: 'Адміністративне судочинство', 'Кримінальне судочинство', 'Цивільне судочинство', 'Господарське судочинство'
7. Відформатуй відповідь у форматі JSON:
{{
"title": "Заголовок судового рішення",
"text": "Текст короткого змісту позиції суду",
"proceeding": "Тип судочинства",
"category": "Категорія судового рішення"
}}
"""
PRECEDENT_ANALYSIS_TEMPLATE = PromptTemplate(
"Ваше завдання - проаналізувати нове судове рішення та визначити, чи потрібно для нього створювати нову правову позицію, "
"чи можна використати існуючі правові позиції Верховного Суду. "
"Дотримуйтесь цих кроків:\n\n"
"1. Спочатку розгляньте нове рішення:\n"
"\n"
"{query}\n"
"\n\n"
"2. Врахуйте уточнююче питання:\n"
"\n"
"{question}\n"
"\n\n"
"3. Проаналізуйте існуючі правові позиції:\n"
"\n"
"{context_str}\n"
"\n\n"
"4. Проведіть порівняльний аналіз:\n"
" - Визначте ключові правові питання нового рішення\n"
" - Знайдіть релевантні існуючі правові позиції\n"
" - Оцініть можливість їх застосування до нового рішення\n"
" - Визначте, чи повністю вони охоплюють правову проблематику нового рішення\n\n"
"5. Для кожної релевантної правової позиції надайте:\n"
" а. ID позиції\n"
" б. Порядковий номер зі списку наданих правових позицій\n"
" в. Детальне обґрунтування, чому ця позиція може бути використана, "
"включаючи аналіз спільних правових питань, аргументації та висновків\n\n"
"6. Представте висновки у форматі JSON:\n"
"{\n"
" \"relevant_positions\": [\n"
" {\n"
" \"lp_id\": \"ID позиції\",\n"
" \"source_index\": \"Порядковий номер позиції у списку\",\n"
" \"description\": \"Детальне обґрунтування релевантності та можливості застосування цієї "
"правової позиції до нового рішення\"\n"
" }\n"
" ]\n"
"}\n\n"
"Важливі вимоги:\n"
"- Включайте до результату ТІЛЬКИ ті правові позиції, які дійсно можуть бути використані для нового рішення\n"
"- В описі обов'язково вказуйте конкретні аспекти, за якими правова позиція співпадає з новим рішенням\n"
"- Якщо жодна з існуючих позицій не підходить, поверніть пустий масив relevant_positions\n"
"- В description надайте розгорнутий аналіз, чому позиція може бути використана\n"
"- Переконайтеся, що ваш JSON правильно форматований та валідний\n\n"
"Приступайте до аналізу та надайте обґрунтований висновок щодо можливості використання існуючих правових позицій."
)