entidi2608 commited on
Commit
135a5d5
·
1 Parent(s): 530a737

update: retrieve

Browse files
Files changed (1) hide show
  1. utils/AdvancedLawRetriever.py +144 -5
utils/AdvancedLawRetriever.py CHANGED
@@ -224,13 +224,152 @@ class AdvancedLawRetriever(BaseRetriever):
224
 
225
  # 2. XÁC ĐỊNH Ý ĐỊNH -> ƯU TIÊN LOẠI VĂN BẢN
226
  # Nếu câu hỏi về MỨC PHẠT, ưu tiên tuyệt đối NGHỊ ĐỊNH
227
- if any(kw in query_lower for kw in ["phạt bao nhiêu", "mức xử phạt", "tiền phạt", "xử phạt"]):
 
 
 
 
 
 
 
 
 
 
 
 
228
  info["preferred_doc_type"] = "NGHỊ ĐỊNH"
229
  logger.info("Intent detected: Sanction/Penalty -> Preferring 'NGHỊ ĐỊNH'.")
230
- # Nếu câu hỏi về NGUYÊN TẮC CHUNG, QUYỀN, NGHĨA VỤ, ưu tiên LUẬT
231
- elif any(kw in query_lower for kw in ["nguyên tắc", "quyền nghĩa vụ", "cấm", "được phép", "khái niệm", "định nghĩa"]):
232
- info["preferred_doc_type"] = "LUẬT"
233
- logger.info("Intent detected: General Rule/Definition -> Preferring 'LUẬT'.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
234
 
235
  logger.info(f"Extracted query info: {info}")
236
  return info
 
224
 
225
  # 2. XÁC ĐỊNH Ý ĐỊNH -> ƯU TIÊN LOẠI VĂN BẢN
226
  # Nếu câu hỏi về MỨC PHẠT, ưu tiên tuyệt đối NGHỊ ĐỊNH
227
+ if any(kw in query_lower for kw in [
228
+ # Mức phạt và tiền phạt
229
+ "phạt bao nhiêu", "mức xử phạt", "tiền phạt", "xử phạt", "phạt tiền",
230
+ "mức phạt", "số tiền phạt", "bị phạt", "chế phạt",
231
+ # Hình thức xử phạt
232
+ "tước bằng", "tạm giữ phương tiện", "tịch thu", "đình chỉ hoạt động",
233
+ "cảnh cáo", "khiển trách", "buộc khôi phục", "buộc tháo dỡ",
234
+ # Vi phạm cụ thể
235
+ "vi phạm giao thông", "vi phạm xây dựng", "vi phạm thuế", "vi phạm lao động",
236
+ "vi phạm môi trường", "vi phạm thương mại", "vi phạm y tế",
237
+ # Xử lý vi phạm
238
+ "biện pháp khắc phục", "hậu quả vi phạm", "trách nhiệm vi phạm"
239
+ ]):
240
  info["preferred_doc_type"] = "NGHỊ ĐỊNH"
241
  logger.info("Intent detected: Sanction/Penalty -> Preferring 'NGHỊ ĐỊNH'.")
242
+ elif any(kw in query_lower for kw in [
243
+ # Thủ tụchồ
244
+ "thủ tục", "hồ ", "đăng ký", "cấp phép", "giấy phép", "chứng nhận",
245
+ "xin phép", "nộp hồ sơ", "thời hạn giải quyết", "lệ phí", "phí", "thẩm quyền",
246
+ # Cơ quan thực hiện
247
+ "cơ quan nào", "nộp ở đâu", "ai cấp", "ai quyết định",
248
+ # Điều kiện và yêu cầu
249
+ "điều kiện", "yêu cầu", "tiêu chuẩn", "quy trình", "trình tự",
250
+ "cách thức", "làm thế nào", "how to"
251
+ ]):
252
+ info["preferred_doc_type"] = "THÔNG TƯ"
253
+
254
+ logger.info("Intent detected: Administrative Procedure -> Preferring 'THÔNG TƯ'.")
255
+
256
+ # 3. NGUYÊN TẮC CHUNG, QUYỀN NGHĨA VỤ, CẤU TRÚC NHÀ NƯỚC - Ưu tiên LUẬT
257
+ elif any(kw in query_lower for kw in [
258
+ # Nguyên tắc cơ bản
259
+ "nguyên tắc", "cơ sở", "căn cứ", "tôn chỉ", "mục đích", "ý nghĩa",
260
+ # Quyền và nghĩa vụ
261
+ "quyền và nghĩa vụ", "quyền", "nghĩa vụ", "trách nhiệm", "quyền hạn",
262
+ "quyền lợi", "lợi ích", "bảo vệ quyền", "thực hiện nghĩa vụ",
263
+ # Định nghĩa và khái niệm
264
+ "khái niệm", "định nghĩa", "là gì", "hiểu như thế nào", "có nghĩa",
265
+ "thuật ngữ", "giải thích", "ý nghĩa", "nội dung",
266
+ # Cấm và cho phép cơ bản
267
+ "cấm", "được phép", "không được", "nghiêm cấm", "hạn chế",
268
+ "cho phép", "được quyền", "có thể", "không được phép",
269
+ # Cấu trúc, phân cấp hành chính cơ bản (thêm mới)
270
+ "đơn vị hành chính", "cấp hành chính", "bao nhiêu cấp", "phân cấp",
271
+ "cấu trúc nhà nước", "hệ thống chính quyền", "chính quyền địa phương",
272
+ "cấp tỉnh", "cấp huyện", "cấp xã", "trung ương", "địa phương"
273
+ ]):
274
+ info["preferred_doc_type"] = "LUẬT"
275
+
276
+ logger.info("Intent detected: General Principle/Definition/Rights/Administrative Structure -> Preferring 'LUẬT'.")
277
+
278
+ # 4. TỔ CHỨC BỘ MÁY CỤ THỂ (không phải cấu trúc cơ bản) - Ưu tiên NGHỊ ĐỊNH/QUYẾT ĐỊNH
279
+ elif any(kw in query_lower for kw in [
280
+ # Tổ chức bộ máy cụ thể (loại trừ các từ về cấu trúc cơ bản)
281
+ "bộ máy", "cơ cấu tổ chức", "chức năng", "nhiệm vụ cụ thể",
282
+ "thành lập", "giải thể", "sáp nhập", "chia tách", "tái cơ cấu",
283
+ "nhân sự", "bổ nhiệm", "miễn nhiệm", "cán bộ", "công chức",
284
+ # Nhưng không bao gồm các câu hỏi về cấu trúc hành chính cơ bản
285
+ ]) and not any(basic_kw in query_lower for basic_kw in [
286
+ "đơn vị hành chính", "cấp hành chính", "bao nhiêu cấp", "phân cấp",
287
+ "cấu trúc nhà nước", "hệ thống chính quyền"
288
+ ]):
289
+ info["preferred_doc_type"] = "NGHỊ ĐỊNH"
290
+
291
+ logger.info("Intent detected: Organization Structure -> Preferring 'NGHỊ ĐỊNH'.")
292
+
293
+ # 5. BIỂU MẪU, DANH MỤC, ĐỊNH MỨC - Ưu tiên THÔNG TƯ
294
+ elif any(kw in query_lower for kw in [
295
+ "biểu mẫu", "mẫu đơn", "form", "danh mục", "bảng biểu", "định mức",
296
+ "khung", "tiêu chuẩn kỹ thuật", "quy chuẩn", "đơn giá", "giá",
297
+ "template", "format", "pattern"
298
+ ]):
299
+ info["preferred_doc_type"] = "THÔNG TƯ"
300
+
301
+ logger.info("Intent detected: Forms/Standards/Rates -> Preferring 'THÔNG TƯ'.")
302
+
303
+ # 6. TRANH CHẤP, GIẢI QUYẾT KHIẾU NẠI - Ưu tiên LUẬT/NGHỊ ĐỊNH
304
+ elif any(kw in query_lower for kw in [
305
+ "tranh chấp", "khiếu nại", "tố cáo", "giải quyết", "xử lý",
306
+ "phúc thẩm", "kháng cáo", "kháng nghị", "tái thẩm",
307
+ "hòa giải", "trọng tài", "kiện", "khởi kiện", "đòi bồi thường"
308
+ ]):
309
+ info["preferred_doc_type"] = "LUẬT"
310
+
311
+ logger.info("Intent detected: Dispute Resolution -> Preferring 'LUẬT'.")
312
+
313
+ # 7. BẢO HIỂM, PHÚC LỢI XÃ HỘI - Ưu tiên NGHỊ ĐỊNH
314
+ elif any(kw in query_lower for kw in [
315
+ "bảo hiểm", "bhxh", "bhyt", "bhtn", "bảo hiểm xã hội",
316
+ "lương hưu", "trợ cấp", "phúc lợi", "ốm đau", "thai sản",
317
+ "tai nạn lao động", "bệnh nghề nghiệp", "mức đóng", "mức hưởng"
318
+ ]):
319
+ info["preferred_doc_type"] = "NGHỊ ĐỊNH"
320
+
321
+ logger.info("Intent detected: Social Insurance/Welfare -> Preferring 'NGHỊ ĐỊNH'.")
322
+
323
+ # 8. THUẾ, PHÍ, LỆ PHÍ - Ưu tiên THÔNG TƯ/NGHỊ ĐỊNH
324
+ elif any(kw in query_lower for kw in [
325
+ "thuế", "phí", "lệ phí", "thuế suất", "miễn thuế", "giảm thuế",
326
+ "khai thuế", "nộp thuế", "hoàn thuế", "khấu trừ", "tạm nộp",
327
+ "thuế thu nhập", "thuế gtgt", "thuế ttđb", "thuế xuất nhập khẩu"
328
+ ]):
329
+ info["preferred_doc_type"] = "THÔNG TƯ"
330
+
331
+ logger.info("Intent detected: Tax/Fee -> Preferring 'THÔNG TƯ'.")
332
+
333
+ # 9. ĐẤU THẦU, MUA SẮM CÔNG - Ưu tiên NGHỊ ĐỊNH
334
+ elif any(kw in query_lower for kw in [
335
+ "đấu thầu", "mua sắm công", "gói thầu", "hồ sơ mời thầu",
336
+ "tham gia thầu", "trúng thầu", "loại thầu", "đánh giá thầu",
337
+ "bảo đảm thầu", "hợp đồng thầu"
338
+ ]):
339
+ info["preferred_doc_type"] = "NGHỊ ĐỊNH"
340
+
341
+ logger.info("Intent detected: Bidding/Public Procurement -> Preferring 'NGHỊ ĐỊNH'.")
342
+
343
+ # 10. ĐỊA CHÍNH, ĐẤT ĐAI - Ưu tiên LUẬT/NGHỊ ĐỊNH
344
+ elif any(kw in query_lower for kw in [
345
+ "đất đai", "quyền sử dụng đất", "sổ đỏ", "chuyển nhượng đất",
346
+ "thu hồi đất", "bồi thường đất", "giá đất", "địa chính",
347
+ "cấp sổ", "thửa đất", "diện tích đất", "mục đích sử dụng"
348
+ ]):
349
+ info["preferred_doc_type"] = "LUẬT"
350
+
351
+ logger.info("Intent detected: Land/Real Estate -> Preferring 'LUẬT'.")
352
+
353
+ # 11. LAO ĐỘNG VIỆC LÀM - Ưu tiên BỘ LUẬT/NGHỊ ĐỊNH
354
+ elif any(kw in query_lower for kw in [
355
+ "hợp đồng lao động", "chấm dứt hợp đồng", "sa thải", "nghỉ việc",
356
+ "lương", "thưởng", "phụ cấp", "tăng ca", "nghỉ phép", "thai sản",
357
+ "thời giờ làm việc", "an toàn lao động", "bảo hộ lao động"
358
+ ]):
359
+ info["preferred_doc_type"] = "BỘ LUẬT"
360
+
361
+ logger.info("Intent detected: Labor/Employment -> Preferring 'BỘ LUẬT'.")
362
+
363
+ # 12. KINH DOANH, DOANH NGHIỆP - Ưu tiên LUẬT/NGHỊ ĐỊNH
364
+ elif any(kw in query_lower for kw in [
365
+ "thành lập doanh nghiệp", "đăng ký kinh doanh", "giấy cnđkdn",
366
+ "vốn điều lệ", "cổ phần", "thành viên", "cổ đông", "hội đồng quản trị",
367
+ "tái cơ cấu", "chia tách", "sáp nhập", "chuyển đổi loại hình",
368
+ "giải thể", "phá sản", "thanh lý"
369
+ ]):
370
+ info["preferred_doc_type"] = "LUẬT"
371
+
372
+ logger.info("Intent detected: Business/Enterprise -> Preferring 'LUẬT'.")
373
 
374
  logger.info(f"Extracted query info: {info}")
375
  return info