ConicAI_LLM_model / generate_dataset.py
girish00's picture
update endpoint helper files
496fc07 verified
import argparse
import json
import random
TEMPLATES = [
{
"instruction": "Fix the Python code",
"input": "def add(a,b) return a+b",
"output": "def add(a, b): return a + b",
"explanation": "Added missing colon and corrected syntax.",
},
{
"instruction": "Fix loop syntax",
"input": "for i in range(5 print(i)",
"output": "for i in range(5): print(i)",
"explanation": "Added missing parenthesis and colon.",
},
{
"instruction": "Fix condition",
"input": "if x = 10: print(x)",
"output": "if x == 10: print(x)",
"explanation": "Corrected assignment to comparison operator.",
},
{
"instruction": "Explain code",
"input": "for i in range(3): print(i)",
"output": "Prints numbers from 0 to 2.",
"explanation": "Loop iterates from 0 to 2 and prints values.",
},
{
"instruction": "Write a Python function",
"input": "Create a function to multiply two numbers",
"output": "def multiply(a, b):\n return a * b",
"explanation": "Defined a multiply function that returns the product of two inputs.",
},
{
"instruction": "Write a Python function",
"input": "Create a function to add two numbers",
"output": "def add(a, b):\n return a + b",
"explanation": "Defined an add function that returns the sum of two inputs.",
},
{
"instruction": "Write a Python function",
"input": "Create a function to subtract two numbers",
"output": "def subtract(a, b):\n return a - b",
"explanation": "Defined a subtract function that returns the difference between two inputs.",
},
{
"instruction": "Write a Python function",
"input": "Create a function to divide two numbers",
"output": "def divide(a, b):\n return a / b",
"explanation": "Defined a divide function that returns the quotient of two inputs.",
},
]
def format_training_text(template):
target = {
"code": template["output"],
"explanation": template["explanation"],
}
return (
f"Instruction: {template['instruction']}\n"
f"Input: {template['input']}\n"
"Return only valid JSON with keys code and explanation.\n"
f"JSON: {json.dumps(target, ensure_ascii=False)}\n"
)
def generate_sample():
template = random.choice(TEMPLATES)
text = format_training_text(template)
return {
"instruction": template["instruction"],
"input": template["input"],
"output": template["output"],
"explanation": template["explanation"],
"text": text,
"confidence": round(random.uniform(0.9, 0.99), 2),
"relevancy": round(random.uniform(0.85, 0.99), 2),
}
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--size", type=int, default=8000)
parser.add_argument("--out", type=str, default="train.json")
args = parser.parse_args()
if not (5000 <= args.size <= 10000):
raise ValueError("size must be between 5000 and 10000")
dataset = [generate_sample() for _ in range(args.size)]
with open(args.out, "w", encoding="utf-8") as f:
json.dump(dataset, f, indent=2)
print(f"Dataset created: {len(dataset)} -> {args.out}")
if __name__ == "__main__":
main()