Spaces:
Running
Running
Delete Tokens
Browse files- .gitignore +16 -0
- Save_Index_Local/bm25_retriever_es/corpus.jsonl +0 -3
- config.py +10 -0
- prompts.py +108 -0
- requirements.txt +13 -0
.gitignore
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Ігноруємо конфігураційні файли PyCharm
|
2 |
+
.idea/
|
3 |
+
|
4 |
+
# Ігноруємо віртуальне середовище
|
5 |
+
.venv/
|
6 |
+
|
7 |
+
# Ігноруємо кеші Python
|
8 |
+
__pycache__/
|
9 |
+
*.pyc
|
10 |
+
|
11 |
+
# Ігноруємо конфіденційні файли
|
12 |
+
.env
|
13 |
+
|
14 |
+
# Ігноруємо папку Save_index
|
15 |
+
Save_index/
|
16 |
+
/lp/
|
Save_Index_Local/bm25_retriever_es/corpus.jsonl
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:39abe7eb56e71b1e1d7da9f0328d2b5a1746296ce859f73998ef266acd064fe4
|
3 |
-
size 84059232
|
|
|
|
|
|
|
|
config.py
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
from dotenv import load_dotenv
|
3 |
+
|
4 |
+
# Завантажуємо налаштування з .env файлу
|
5 |
+
load_dotenv()
|
6 |
+
|
7 |
+
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
|
8 |
+
|
9 |
+
if not OPENAI_API_KEY:
|
10 |
+
raise ValueError("API ключ OpenAI не знайдено. Додайте його в .env файл.")
|
prompts.py
ADDED
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from llama_index.core.prompts import PromptTemplate
|
2 |
+
|
3 |
+
CITATION_QA_TEMPLATE = PromptTemplate(
|
4 |
+
"Будь ласка, надайте відповідь, базуючись виключно на наданих правових позиціях Верховного Суду. "
|
5 |
+
"При посиланні на інформацію з джерела цитуйте відповідне джерело в кінці тексту, використовуючи його номер у квадратних дужках: [lp_id]. "
|
6 |
+
"Кожна відповідь повинна містити щонайменше одне посилання на джерело. "
|
7 |
+
"Цитуйте джерело лише тоді, коли ви явно на нього посилаєтеся. "
|
8 |
+
"Якщо жодне з джерел не є корисним, зазначте це. "
|
9 |
+
"Приклад:\n"
|
10 |
+
"Source 1:\n"
|
11 |
+
"Суд постановив, що договірні зобов’язання мають виконуватись, навіть якщо умови є нечіткими.\n"
|
12 |
+
"Source 2:\n"
|
13 |
+
"У випадку непередбачених обставин, договори можуть бути анульовані за певних умов.\n"
|
14 |
+
"Запит: Чи може договір бути анульований через непередбачені обставини?\n"
|
15 |
+
"Відповідь: Договір може бути анульований за певних умов у разі настання непередбачених обставин [2].\n"
|
16 |
+
"Тепер ваша черга. Нижче наведено кілька пронумерованих правових позицій:"
|
17 |
+
"\n------\n"
|
18 |
+
"{context_str}"
|
19 |
+
"\n------\n"
|
20 |
+
"Запит: {query_str}\n"
|
21 |
+
"Відповідь: "
|
22 |
+
)
|
23 |
+
|
24 |
+
|
25 |
+
|
26 |
+
CITATION_REFINE_TEMPLATE = PromptTemplate(
|
27 |
+
"Будь ласка, надайте відповідь, базуючись виключно на наданих правових позиціях Верховного Суду. "
|
28 |
+
"При посиланні на інформацію з джерела, цитуйте відповідне джерело, використовуючи його номер у квадратних дужках: [lp_id]. "
|
29 |
+
"Кожна відповідь повинна містити щонайменше одне посилання на джерело. "
|
30 |
+
"Цитуйте джерело лише тоді, коли ви явно на нього посилаєтеся. "
|
31 |
+
"Якщо жодне з джерел не є корисним, зазначте це. "
|
32 |
+
"Приклад:\n"
|
33 |
+
"Source 1:\n"
|
34 |
+
"Суд постановив, що договірні зобов’язання мають виконуватись, навіть якщо умови є нечіткими.\n"
|
35 |
+
"Source 2:\n"
|
36 |
+
"У випадку непередбачених обставин, договори можуть бути анульовані за певних умов.\n"
|
37 |
+
"Запит: Чи може договір бути анульований через непередбачені обставини?\n"
|
38 |
+
"Існуюча відповідь: Договір може бути анульований за певних умов у разі настання непередбачених обставин [2].\n"
|
39 |
+
"Тепер ваша черга. "
|
40 |
+
"Ми надали існуючу відповідь: {existing_answer}"
|
41 |
+
"Нижче наведено кілька пронумерованих правових позицій. "
|
42 |
+
"Використовуйте їх для уточнення існуючої відповіді. "
|
43 |
+
"Якщо надані правові джерела не є корисними, повторіть існуючу відповідь."
|
44 |
+
"\nПочинайте уточнення!"
|
45 |
+
"\n------\n"
|
46 |
+
"{context_msg}"
|
47 |
+
"\n------\n"
|
48 |
+
"Запит: {query_str}\n"
|
49 |
+
"Відповідь: "
|
50 |
+
)
|
51 |
+
|
52 |
+
|
53 |
+
|
54 |
+
# CITATION_QA_TEMPLATE = PromptTemplate(
|
55 |
+
# "You are a qualified lawyer. "
|
56 |
+
# "Please provide a legal analysis based solely on the provided legal precedents and positions. "
|
57 |
+
# "When referencing a legal precedent or position, "
|
58 |
+
# "cite the appropriate source(s) using their corresponding numbers. "
|
59 |
+
# "Every answer should include at least one legal source citation relevant to the query. "
|
60 |
+
# "Only cite a source when you are explicitly referencing it. "
|
61 |
+
# "If none of the legal precedents or positions are helpful, you should indicate that. "
|
62 |
+
# "Use only the Ukrainian language to answer. "
|
63 |
+
# "For example:\n"
|
64 |
+
# "Source 1:\n"
|
65 |
+
# "The court ruled that contractual obligations must be fulfilled even if the terms are vague.\n"
|
66 |
+
# "Source 2:\n"
|
67 |
+
# "In case of unforeseen circumstances, contracts may be voided under certain conditions.\n"
|
68 |
+
# "Query: Can a contract be voided due to unforeseen circumstances?\n"
|
69 |
+
# "Answer: A contract may be voided under certain conditions if unforeseen circumstances arise [2]. "
|
70 |
+
# "Now it's your turn. Below are several numbered legal sources and precedents (legal positions):"
|
71 |
+
# "\n------\n"
|
72 |
+
# "{context_str}"
|
73 |
+
# "\n------\n"
|
74 |
+
# "New legal issue: {query_str}\n"
|
75 |
+
# "User question: {question}\n"
|
76 |
+
# "Answer: "
|
77 |
+
# )
|
78 |
+
|
79 |
+
|
80 |
+
# CITATION_REFINE_TEMPLATE = PromptTemplate(
|
81 |
+
# "You are a qualified lawyer. "
|
82 |
+
# "Please refine the legal analysis based solely on the provided legal precedents and positions. "
|
83 |
+
# "When referencing a legal precedent or position, "
|
84 |
+
# "cite the appropriate source(s) using their corresponding numbers. "
|
85 |
+
# "Every refined answer should include at least one relevant legal source citation. "
|
86 |
+
# "Only cite a source when you are explicitly referencing it. "
|
87 |
+
# "If none of the legal precedents or positions are helpful, you should repeat the existing answer. "
|
88 |
+
# "Use only the Ukrainian language to answer."
|
89 |
+
# "For example:\n"
|
90 |
+
# "Source 1:\n"
|
91 |
+
# "The court ruled that contractual obligations must be fulfilled even if the terms are vague.\n"
|
92 |
+
# "Source 2:\n"
|
93 |
+
# "In case of unforeseen circumstances, contracts may be voided under certain conditions.\n"
|
94 |
+
# "Query: Can a contract be voided due to unforeseen circumstances?\n"
|
95 |
+
# "Existing answer: A contract may be voided under certain conditions if unforeseen circumstances arise [2].\n"
|
96 |
+
# "Now it's your turn. "
|
97 |
+
# "We have provided an existing legal analysis: {existing_answer}"
|
98 |
+
# "Below are several numbered legal sources and precedents. "
|
99 |
+
# "Use them to refine the existing legal answer. "
|
100 |
+
# "If the provided legal sources are not helpful, you will repeat the existing answer."
|
101 |
+
# "\nBegin refining!"
|
102 |
+
# "\n------\n"
|
103 |
+
# "{context_msg}"
|
104 |
+
# "\n------\n"
|
105 |
+
# "New legal issue: {query_str}\n"
|
106 |
+
# "User question: {question}\n"
|
107 |
+
# "Answer: "
|
108 |
+
# )
|
requirements.txt
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
llama-index
|
2 |
+
llama-index-readers-file
|
3 |
+
llama-index-vector-stores-faiss
|
4 |
+
llama-index-retrievers-bm25
|
5 |
+
openai
|
6 |
+
faiss-cpu
|
7 |
+
llama-index-embeddings-openai
|
8 |
+
llama-index-llms-openai
|
9 |
+
gradio
|
10 |
+
beautifulsoup4
|
11 |
+
nest-asyncio
|
12 |
+
boto3
|
13 |
+
python-dotenv
|