iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
生成式 AI

AI 三十天,哎呀每天都很難:OpenAI API 生存指南系列 第 25

Day 25:讓 AI 幫你產生測試資料 — 自動生成假資料

  • 分享至 

  • xImage
  •  

寫程式或測試 API 的時候,最煩的事情之一就是「要準備一堆假資料」
像是客戶的名單,學生成績,產品資料之類的
今天我們就讓 AI 幫我們自動生成真實又安全的測試資料!

import os
import json
from openai import OpenAI

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def generate_mock_data(schema: dict, count: int = 10, format: str = "json"):
    """根據欄位結構自動生成假資料"""
    prompt = f"""
    你是一個資料工程師,請幫我依照以下欄位結構生成 {count} 筆測試資料。
    格式為 {format},且資料內容要合理(例如:名字、電話、信箱要像真的)。
    Schema:
    {json.dumps(schema, ensure_ascii=False, indent=2)}
    """

    resp = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": prompt}],
        max_tokens=1500,
    )

    result = resp.choices[0].message.content

    # 嘗試將結果解析為 JSON
    try:
        data = json.loads(result)
        output_path = "mock_data.json"
        with open(output_path, "w", encoding="utf-8") as f:
            json.dump(data, f, ensure_ascii=False, indent=2)
        print(f"已產生 JSON 測試資料:{output_path}")
    except Exception:
        output_path = "mock_data.txt"
        with open(output_path, "w", encoding="utf-8") as f:
            f.write(result)
        print(f"無法解析為 JSON,已存成文字檔:{output_path}")

if __name__ == "__main__":
    schema = {
        "name": "姓名",
        "email": "電子郵件",
        "phone": "電話號碼",
        "age": "年齡",
        "city": "城市"
    }
    generate_mock_data(schema, count=5)

https://ithelp.ithome.com.tw/upload/images/20251009/20169376tdvG2kzbXB.png

AI 幫你產生假資料這件事,看似小功能,但卻能在開發時節省超多測試時間
你不再需要一筆一筆打資料、或用 Faker 套件亂造,AI 幫你生成更真實、更有語意的數據!


上一篇
Day 24:讓 AI 幫你寫 README!自動生成專案說明文件
下一篇
Day 26:全面認識 OpenAI API 的功能總覽!
系列文
AI 三十天,哎呀每天都很難:OpenAI API 生存指南27
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言