Update app.py
Browse files
app.py
CHANGED
@@ -170,25 +170,52 @@ def get_legal_context(query):
|
|
170 |
try:
|
171 |
relevant_info = []
|
172 |
|
173 |
-
#
|
|
|
|
|
|
|
|
|
|
|
174 |
for item in legal_dataset['train']:
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
|
183 |
-
if len(relevant_info) >= 3: #
|
184 |
break
|
185 |
|
186 |
if relevant_info:
|
187 |
-
|
188 |
-
|
|
|
|
|
|
|
|
|
189 |
except Exception as e:
|
190 |
print(f"νλ‘ κ²μ μ€λ₯: {e}")
|
191 |
-
return ""
|
192 |
|
193 |
|
194 |
SYSTEM_PREFIX = """μ λ λ²λ₯ μ λ¬Έ AI μ΄μμ€ν΄νΈ 'GiniGEN Legal'μ
λλ€.
|
|
|
170 |
try:
|
171 |
relevant_info = []
|
172 |
|
173 |
+
# 쿼리 μ μ²λ¦¬
|
174 |
+
query = query.strip()
|
175 |
+
|
176 |
+
# μ¬κ±΄λ²νΈ νμ νμΈ (μ: "2023λ€12345")
|
177 |
+
is_case_number = any(char.isdigit() for char in query) and any(char.isalpha() for char in query)
|
178 |
+
|
179 |
for item in legal_dataset['train']:
|
180 |
+
case_number = item.get('μ¬κ±΄λ²νΈ', '')
|
181 |
+
|
182 |
+
# μ¬κ±΄λ²νΈλ‘ κ²μνλ κ²½μ° μ νν μΌμΉνλ κ²λ§ λ°ν
|
183 |
+
if is_case_number:
|
184 |
+
if query in case_number:
|
185 |
+
case_info = (
|
186 |
+
f"π μ¬κ±΄λ²νΈ: {case_number}\n"
|
187 |
+
f"π
μ κ³ μΌμ: {item.get('μ κ³ μΌμ', '')}\n"
|
188 |
+
f"π νμμ¬ν:\n{item.get('νμμ¬ν', '')}\n\n"
|
189 |
+
f"βοΈ νκ²°μμ§:\n{item.get('νκ²°μμ§', '')}\n\n"
|
190 |
+
f"π νλ‘λ΄μ©:\n{item.get('νλ‘λ΄μ©', '')}"
|
191 |
+
)
|
192 |
+
relevant_info.append(case_info)
|
193 |
+
break # μ νν μ¬κ±΄λ²νΈ 맀μΉμ μ¦μ λ°ν
|
194 |
+
else:
|
195 |
+
# μΌλ° κ²μμ κ²½μ° κ΄λ ¨λ κ²μ¬
|
196 |
+
searchable_text = f"{case_number} {item.get('νμμ¬ν', '')} {item.get('νκ²°μμ§', '')}"
|
197 |
+
if query.lower() in searchable_text.lower():
|
198 |
+
case_info = (
|
199 |
+
f"π μ¬κ±΄λ²νΈ: {case_number}\n"
|
200 |
+
f"π
μ κ³ μΌμ: {item.get('μ κ³ μΌμ', '')}\n"
|
201 |
+
f"π νμμ¬ν:\n{item.get('νμμ¬ν', '')[:500]}...\n\n"
|
202 |
+
f"βοΈ νκ²°μμ§:\n{item.get('νκ²°μμ§', '')[:500]}..."
|
203 |
+
)
|
204 |
+
relevant_info.append(case_info)
|
205 |
|
206 |
+
if len(relevant_info) >= 3 and not is_case_number: # μΌλ° κ²μμ κ²½μ°λ§ μ¬λ¬ κ° λ°ν
|
207 |
break
|
208 |
|
209 |
if relevant_info:
|
210 |
+
if is_case_number:
|
211 |
+
return "\n\nπ νλ‘ μ λ¬Έ:\n" + relevant_info[0]
|
212 |
+
else:
|
213 |
+
return "\n\nκ΄λ ¨ νλ‘ μ 보:\n" + "\n\n---\n\n".join(relevant_info[:3])
|
214 |
+
return "β ν΄λΉνλ νλ‘λ₯Ό μ°Ύμ μ μμ΅λλ€."
|
215 |
+
|
216 |
except Exception as e:
|
217 |
print(f"νλ‘ κ²μ μ€λ₯: {e}")
|
218 |
+
return f"νλ‘ κ²μ μ€ μ€λ₯κ° λ°μνμ΅λλ€: {str(e)}"
|
219 |
|
220 |
|
221 |
SYSTEM_PREFIX = """μ λ λ²λ₯ μ λ¬Έ AI μ΄μμ€ν΄νΈ 'GiniGEN Legal'μ
λλ€.
|