openfree commited on
Commit
2ae8832
Β·
verified Β·
1 Parent(s): 2bbb586

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -31
app.py CHANGED
@@ -168,50 +168,58 @@ def get_legal_context(query):
168
  return ""
169
 
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}")
 
168
  return ""
169
 
170
  try:
 
 
171
  # 쿼리 μ „μ²˜λ¦¬
172
  query = query.strip()
173
 
174
  # μ‚¬κ±΄λ²ˆν˜Έ ν˜•μ‹ 확인 (예: "2023λ‹€12345")
175
  is_case_number = any(char.isdigit() for char in query) and any(char.isalpha() for char in query)
176
 
177
+ if is_case_number:
178
+ # μ‚¬κ±΄λ²ˆν˜Έλ‘œ μ •ν™•ν•œ 검색
179
+ for item in legal_dataset['train']:
180
+ case_number = item.get('μ‚¬κ±΄λ²ˆν˜Έ', '')
 
181
  if query in case_number:
182
+ # μ „λ¬Έ μš”μ²­ 확인
183
+ if 'μ „λ¬Έ' in query or 'νŒλ‘€μ „λ¬Έ' in query:
184
+ return (
185
+ f"πŸ“œ νŒλ‘€ μ „λ¬Έ (μ‚¬κ±΄λ²ˆν˜Έ: {case_number})\n"
186
+ f"━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"
187
+ f"{item.get('νŒλ‘€λ‚΄μš©', 'νŒλ‘€ 전문을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.')}\n"
188
+ f"━━━━━━━━━━━━━━━━━━━━━━━━━━━"
189
+ )
190
+ else:
191
+ # κΈ°λ³Έ 정보 λ°˜ν™˜
192
+ return (
193
+ f"πŸ“Œ νŒλ‘€ 정보 (μ‚¬κ±΄λ²ˆν˜Έ: {case_number})\n"
194
+ f"━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"
195
+ f"πŸ“… μ„ κ³ μΌμž: {item.get('μ„ κ³ μΌμž', '')}\n"
196
+ f"πŸ“ νŒμ‹œμ‚¬ν•­:\n{item.get('νŒμ‹œμ‚¬ν•­', '')}\n\n"
197
+ f"βš–οΈ νŒκ²°μš”μ§€:\n{item.get('νŒκ²°μš”μ§€', '')}\n\n"
198
+ f"πŸ’‘ 전문을 λ³΄μ‹œλ €λ©΄ 'μ‚¬κ±΄λ²ˆν˜Έ μ „λ¬Έ'을 μž…λ ₯ν•΄μ£Όμ„Έμš”."
199
+ )
200
+ return "❌ ν•΄λ‹Ήν•˜λŠ” μ‚¬κ±΄λ²ˆν˜Έμ˜ νŒλ‘€λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."
201
+
202
+ else:
203
+ # 일반 ν‚€μ›Œλ“œ 검색
204
+ relevant_info = []
205
+ for item in legal_dataset['train']:
206
+ searchable_text = f"{item.get('μ‚¬κ±΄λ²ˆν˜Έ', '')} {item.get('νŒμ‹œμ‚¬ν•­', '')} {item.get('νŒκ²°μš”μ§€', '')}"
207
  if query.lower() in searchable_text.lower():
208
  case_info = (
209
+ f"πŸ“Œ μ‚¬κ±΄λ²ˆν˜Έ: {item.get('μ‚¬κ±΄λ²ˆν˜Έ', '')}\n"
210
  f"πŸ“… μ„ κ³ μΌμž: {item.get('μ„ κ³ μΌμž', '')}\n"
211
+ f"πŸ“ νŒμ‹œμ‚¬ν•­:\n{item.get('νŒμ‹œμ‚¬ν•­', '')[:300]}...\n\n"
212
+ f"βš–οΈ νŒκ²°μš”μ§€:\n{item.get('νŒκ²°μš”μ§€', '')[:300]}...\n"
213
+ f"πŸ’‘ 전문을 λ³΄μ‹œλ €λ©΄ μœ„ μ‚¬κ±΄λ²ˆν˜Έμ™€ ν•¨κ»˜ 'μ „λ¬Έ'을 μž…λ ₯ν•΄μ£Όμ„Έμš”."
214
  )
215
  relevant_info.append(case_info)
216
+
217
+ if len(relevant_info) >= 3:
218
+ break
219
 
220
+ if relevant_info:
221
+ return "\n\nκ΄€λ ¨ νŒλ‘€ 정보:\n" + "\n\n---\n\n".join(relevant_info)
222
+ return "❌ 검색어와 κ΄€λ ¨λœ νŒλ‘€λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."
 
 
 
 
 
 
223
 
224
  except Exception as e:
225
  print(f"νŒλ‘€ 검색 였λ₯˜: {e}")