/** This creates a dataset for training an LLM on Frink code and examples. */ class LoraTrainer { var outfile = undef var sampleDelimiter = "" var writer new[outfile] := { this.outfile = outfile writer = new Writer[outfile] } /** Process a directory of .frink or .fsp files. */ processFrink[dir] := { for f = files[dir] { filename = f.getName[] if filename =~ %r/\.(frink|fsp)$/ { println[filename + "\t" + f.length[]] writer.println[sampleDelimiter + "\n// $filename"] for line = lines[f] writer.println[line] } } } close[] := { writer.close[] } } t = new LoraTrainer["/home/eliasen/builds/frinktrain.txt"] t.processFrink["."] t.processFrink["fsp"] t.close[]