File size: 2,029 Bytes
ccd9809
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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]
        
        # Cấu trúc output
        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)

    # Đẩy lên repo chuyên biệt cho Spreadsheet
    repo_name = "linhhuong-office-spreadsheet-instruct"
    push_alpaca_dataset_to_hf(formatted_dataset, repo_name)