| import json |
| import random |
| from utils import push_alpaca_dataset_to_hf |
|
|
| def generate_docs_dataset(num_samples=500): |
| """ |
| Sinh dữ liệu cho việc tạo và kiểm tra văn bản hành chính. |
| Output là một file JSON có cấu trúc. |
| """ |
| loai_van_bans = ["Quyết định", "Thông báo", "Tờ trình", "Công văn"] |
| chu_des = [ |
| "thành lập ban chỉ đạo phòng chống lụt bão", "bổ nhiệm trưởng phòng nhân sự", |
| "phân công trực tết Nguyên đán", "kiểm tra công tác phòng cháy chữa cháy", |
| "tổ chức đại hội cổ đông thường niên" |
| ] |
| co_quan = ["UBND Quận", "Tổng Giám đốc", "Hội đồng Quản trị", "Sở Nội vụ"] |
|
|
| prompt_templates = [ |
| "Soạn {loai} về việc {trich_yeu}.", |
| "Hãy viết bản nháp {loai} cho {co_quan} với nội dung chính: {trich_yeu}. Trả về định dạng JSON." |
| ] |
|
|
| formatted_dataset = [] |
| print(f"Đang tạo {num_samples} mẫu cho cụm Document (Văn thư)...") |
|
|
| for _ in range(num_samples): |
| loai = random.choice(loai_van_bans) |
| chu_de = random.choice(chu_des) |
| cq = random.choice(co_quan) |
| |
| |
| structured_output = { |
| "loai_van_ban": loai, |
| "co_quan_ban_hanh": cq, |
| "trich_yeu": chu_de.capitalize(), |
| "can_cu_phap_ly": [ |
| "Căn cứ Luật Tổ chức chính quyền địa phương;", |
| "Căn cứ tình hình thực tế." |
| ], |
| "dieu_khoan": [ |
| f"Điều 1. Ban hành {loai.lower()} về việc {chu_de}.", |
| "Điều 2. Các cá nhân, đơn vị liên quan chịu trách nhiệm thi hành." |
| ], |
| "toan_van": f"CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM\nĐộc lập - Tự do - Hạnh phúc\n\n{cq.upper()}\n\n{loai.upper()}\nVề việc {chu_de}\n\n[Nội dung chi tiết]" |
| } |
| |
| instruction = random.choice(prompt_templates).format(loai=loai, trich_yeu=chu_de, co_quan=cq) |
| |
| alpaca_item = { |
| "instruction": instruction, |
| "input": "", |
| "output": json.dumps(structured_output, ensure_ascii=False, indent=2) |
| } |
| formatted_dataset.append(alpaca_item) |
|
|
| |
| repo_name = "linhhuong-office-docs-instruct" |
| push_alpaca_dataset_to_hf(formatted_dataset, repo_name) |
|
|