Phân tích văn bản pháp luật API

Tách văn bản pháp luật thành Phần, Chương, Mục, Điều, Khoản, Điểm; lấy số hiệu, loại, ngày, văn bản dẫn chiếu, sửa đổi; chia chunk cho RAG.

POSThttps://apibox.io.vn/v1/vn-legal-parse

Gửi văn bản pháp luật hoặc văn bản hành chính dạng văn bản thuần (text), HTML (html) hoặc file .docx / .txt (file). Bộ phân tích chuẩn hoá Unicode NFC rồi dựng cây Phần → Chương → Mục → Tiểu mục → Điều → Khoản → Điểm kèm số, tiêu đề và số dòng. Nội dung trong ngoặc kép của luật sửa đổi (“Điều 10. …”) được giữ là nội dung, không bị nhận nhầm thành cấu trúc.

Thông tin từ phần đầu: số hiệu tách thành số / năm / ký hiệu, giải mã loại văn bản và cơ quan ban hành (vd 123/2020/NĐ-CP → Nghị định, Chính phủ; ký hiệu văn bản hành chính theo Phụ lục III NĐ 30/2020), phân biệt văn bản QPPL hay hành chính (Luật Ban hành VBQPPL 2025 đánh số dạng số/năm/ký hiệu), cơ quan ban hành, loại, trích yếu, địa danh và ngày ban hành, các dòng "Căn cứ" và ngày có hiệu lực nêu trong văn bản. API còn liệt kê văn bản được dẫn chiếu ("Nghị định số 01/2021/NĐ-CP", "Luật Đầu tư"), tham chiếu điều khoản ("khoản 1 Điều 10 của Luật Đầu tư …") và các câu sửa đổi, bổ sung, bãi bỏ, thay thế.

Cho RAG, chunks chia theo Điều (hoặc theo Khoản với chunk_by=clause; Điều dài được chia theo Khoản rồi theo câu) không vượt max_chars (hoặc max_tokens), mỗi chunk mở đầu bằng đường dẫn "Nghị định 123/2020/NĐ-CP > Chương I > Điều 1. …" để embedding giữ ngữ cảnh. Không lưu dữ liệu.

Tham số

TênVị tríKiểuBắt buộcMặc định
textbodystringkhôngNội dung văn bản (hoặc gửi html, hoặc file).
htmlbodystringkhôngHTML của văn bản (bỏ thẻ, mỗi khối thành một dòng).
filebodyfilekhôngFile .docx hoặc .txt (multipart).
chunk_bybodystringkhôngarticlearticle (theo Điều) hoặc clause (theo Khoản).
max_charsbodynumberkhông2000Số ký tự tối đa mỗi chunk (200–20.000).
max_tokensbodynumberkhôngThay cho max_chars (≈ 3 ký tự mỗi token).
breadcrumbbodybooleankhôngtrueThêm đường dẫn tiêu đề vào đầu mỗi chunk.
outputbodystringkhôngallall, structure, chunks hoặc metadata.

Ví dụ

curl -X POST "https://apibox.io.vn/v1/vn-legal-parse" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"CHÍNH PHỦ\nSố: 123/2020/NĐ-CP\nHà Nội, ngày 19 tháng 10 năm 2020\nNGHỊ ĐỊNH\nQuy định về hóa đơn, chứng từ\nChương I\nQUY ĐỊNH CHUNG\nĐiều 1. Phạm vi điều chỉnh\n1. Nghị định này quy định việc quản lý, sử dụng hóa đơn khi bán hàng hóa, cung cấp dịch vụ.\n2. Hóa đơn gồm:\na) Hóa đơn điện tử;\nb) Hóa đơn do cơ quan thuế đặt in.\nĐiều 2. Hiệu lực thi hành\nNghị định này có hiệu lực thi hành từ ngày 01 tháng 7 năm 2022 và bãi bỏ khoản 3 Điều 5 Nghị định số 51/2010/NĐ-CP.","max_chars":800}'

Kết quả trả về

{
  "metadata": {
    "number": {
      "number": "123/2020/NĐ-CP",
      "seq": 123,
      "year": 2020,
      "symbol": "NĐ-CP",
      "type": "Nghị định",
      "type_code": "NĐ",
      "issuer_codes": [
        "CP"
      ],
      "issuers": [
        "Chính phủ"
      ],
      "kind": "legal_normative"
    },
    "issued_date": "2020-10-19",
    "place": "Hà Nội",
    "issuer": "CHÍNH PHỦ",
    "type": "Nghị định",
    "title": "Quy định về hóa đơn, chứng từ",
    "effective_date": "2022-07-01",
    "characters": 458
  },
  "stats": {
    "parts": 0,
    "chapters": 1,
    "sections": 0,
    "subsections": 0,
    "articles": 2,
    "clauses": 2,
    "points": 2,
    "references": 1,
    "internal_references": 1,
    "amendment_markers": 1,
    "chunks": 2
  },
  "structure": [
    {
      "type": "chapter",
      "number": "I",
      "title": "QUY ĐỊNH CHUNG",
      "line": 6,
      "path": "Chương I. QUY ĐỊNH CHUNG",
      "children": [
        {
          "type": "article",
          "number": "1",
          "title": "Phạm vi điều chỉnh",
          "line": 8,
          "path": "Chương I. QUY ĐỊNH CHUNG > Điều 1. Phạm vi điều chỉnh",
          "children": [
            {
              "type": "clause",
              "number": "1",
              "text": "Nghị định này quy định việc quản lý, sử dụng hóa đơn khi bán hàng hóa, cung cấp dịch vụ.",
              "line": 9,
              "path": "Chương I. QUY ĐỊNH CHUNG > Điều 1. Phạm vi điều chỉnh > Khoản 1"
            },
            {
              "type": "clause",
              "number": "2",
              "text": "Hóa đơn gồm:",
              "line": 10,
              "path": "Chương I. QUY ĐỊNH CHUNG > Điều 1. Phạm vi điều chỉnh > Khoản 2",
              "children": [
                {
                  "type": "point",
                  "number": "a",
                  "text": "Hóa đơn điện tử;",
                  "line": 11,
                  "path": "Chương I. QUY ĐỊNH CHUNG > Điều 1. Phạm vi điều chỉnh > Khoản 2 > Điểm a"
                },
                {
                  "type": "point",
                  "number": "b",
                  "text": "Hóa đơn do cơ quan thuế đặt in.",
                  "line": 12,
                  "path": "Chương I. QUY ĐỊNH CHUNG > Điều 1. Phạm vi điều chỉnh > Khoản 2 > Điểm b"
                }
              ]
            }
          ]
        },
        {
          "type": "article",
          "number": "2",
          "title": "Hiệu lực thi hành",
          "text": "Nghị định này có hiệu lực thi hành từ ngày 01 tháng 7 năm 2022 và bãi bỏ khoản 3 Điều 5 Nghị định số 51/2010/NĐ-CP.",
          "line": 13,
          "path": "Chương I. QUY ĐỊNH CHUNG > Điều 2. Hiệu lực thi hành"
        }
      ]
    }
  ],
  "references": [
    {
      "kind": "document",
      "type": "Nghị định",
      "number": "51/2010/NĐ-CP",
      "count": 1,
      "first_text": "Nghị định số 51/2010/NĐ-CP"
    }
  ],
  "article_references": [
    {
      "target": "khoản 3 Điều 5",
      "document": "Nghị định số 51/2010/NĐ-CP",
      "external": true,
      "count": 1
    }
  ],
  "amendments": [
    {
      "path": "Chương I. QUY ĐỊNH CHUNG > Điều 2. Hiệu lực thi hành",
      "action": "bãi bỏ",
      "text": "Nghị định này có hiệu lực thi hành từ ngày 01 tháng 7 năm 2022 và bãi bỏ khoản 3 Điều 5 Nghị định số 51/2010/NĐ-CP."
    }
  ],
  "chunks": [
    {
      "id": "dieu-1",
      "article": "1",
      "path": "Nghị định 123/2020/NĐ-CP > Chương I. QUY ĐỊNH CHUNG > Điều 1. Phạm vi điều chỉnh",
      "heading": "Điều 1. Phạm vi điều chỉnh",
      "text": "Nghị định 123/2020/NĐ-CP > Chương I. QUY ĐỊNH CHUNG > Điều 1. Phạm vi điều chỉnh\n1. Nghị định này quy định việc quản lý, sử dụng hóa đơn khi bán hàng hóa, cung cấp dịch vụ.\n2. Hóa đơn gồm:\na) Hóa đơn điện tử;\nb) Hóa đơn do cơ quan thuế đặt in.",
      "chars": 243,
      "approx_tokens": 81
    },
    {
      "id": "dieu-2",
      "article": "2",
      "path": "Nghị định 123/2020/NĐ-CP > Chương I. QUY ĐỊNH CHUNG > Điều 2. Hiệu lực thi hành",
      "heading": "Điều 2. Hiệu lực thi hành",
      "text": "Nghị định 123/2020/NĐ-CP > Chương I. QUY ĐỊNH CHUNG > Điều 2. Hiệu lực thi hành\nNghị định này có hiệu lực thi hành từ ngày 01 tháng 7 năm 2022 và bãi bỏ khoản 3 Điều 5 Nghị định số 51/2010/NĐ-CP.",
      "chars": 195,
      "approx_tokens": 65
    }
  ],
  "notes": [
    "Text is normalised to Unicode NFC. Lines inside quotation marks (amending text) are not parsed as structure."
  ]
}

Ứng dụng

  • Chia chunk luật, nghị định cho chatbot pháp luật (RAG) mà không cắt gãy Điều
  • Tạo mục lục, chỉ mục điều khoản cho phần mềm quản lý văn bản
  • Trích văn bản được dẫn chiếu và nội dung sửa đổi từ nghị định
  • Chuyển quy chế dạng .docx thành JSON có cấu trúc

Hỏi đáp

Vì sao chia theo Điều thay vì theo số ký tự?

Điều là đơn vị được trích dẫn và trả lời câu hỏi; cắt theo độ dài cố định làm gãy khoản. Điều dài được chia theo Khoản, mỗi chunk vẫn giữ đường dẫn tiêu đề.

Có xử lý được luật sửa đổi không?

Có: phần nội dung thay thế trong ngoặc kép không bị tách thành Điều mới, và các câu sửa đổi, bổ sung, bãi bỏ, thay thế được liệt kê trong amendments.

Token được đếm thế nào?

approx_tokens = số ký tự / 3, ước lượng hợp lý cho tiếng Việt; dùng API llm-tokens để đếm chính xác theo từng mô hình.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →