| import json |
| import random |
| from utils import push_alpaca_dataset_to_hf |
|
|
| def generate_spreadsheet_dataset(num_samples=500): |
| """ |
| Sinh dữ liệu cho việc tạo công thức bảng tính (Excel/Calc). |
| """ |
| yeu_cau = [ |
| ("Tính tổng các giá trị trong cột A nếu cột B lớn hơn 100", "=SUMIF(B:B, \">100\", A:A)"), |
| ("Tìm tên nhân viên ở cột C dựa vào mã nhân viên ở ô A1, vùng dò tìm E:G", "=VLOOKUP(A1, E:G, 3, FALSE)"), |
| ("Đếm số lượng sinh viên qua môn (điểm >= 5) trong vùng D2:D50", "=COUNTIF(D2:D50, \">=5\")"), |
| ("Tính trung bình cộng các số trong cột C nếu cột A là 'Nam'", "=AVERAGEIF(A:A, \"Nam\", C:C)"), |
| ("Kết hợp Họ và Tên từ ô A2 và B2, có khoảng trắng ở giữa", "=A2 & \" \" & B2") |
| ] |
|
|
| prompt_templates = [ |
| "Viết công thức Excel để: {yeu_cau_text}.", |
| "Làm sao để {yeu_cau_text} trong bảng tính?", |
| "Cung cấp công thức LibreOffice Calc cho yêu cầu sau: {yeu_cau_text}" |
| ] |
|
|
| formatted_dataset = [] |
| print(f"Đang tạo {num_samples} mẫu cho cụm Spreadsheet (Bảng tính)...") |
|
|
| for _ in range(num_samples): |
| item = random.choice(yeu_cau) |
| yeu_cau_text = item[0] |
| cong_thuc = item[1] |
| |
| |
| structured_output = { |
| "cong_thuc": cong_thuc, |
| "giai_thich": f"Công thức này sử dụng hàm để {yeu_cau_text.lower()}." |
| } |
| |
| instruction = random.choice(prompt_templates).format(yeu_cau_text=yeu_cau_text) |
| |
| alpaca_item = { |
| "instruction": instruction, |
| "input": "", |
| "output": json.dumps(structured_output, ensure_ascii=False, indent=2) |
| } |
| formatted_dataset.append(alpaca_item) |
|
|
| |
| repo_name = "linhhuong-office-spreadsheet-instruct" |
| push_alpaca_dataset_to_hf(formatted_dataset, repo_name) |
|
|