@@ -195,6 +195,50 @@ def list(cls, args):
195
195
print (tags )
196
196
197
197
198
+ class FineTuneCLI :
199
+ @classmethod
200
+ def list (cls , args ):
201
+ resp = openai .FineTune .list ()
202
+ print (resp )
203
+
204
+ @classmethod
205
+ def create (cls , args ):
206
+ create_args = {
207
+ "train_file" : args .train_file ,
208
+ }
209
+ if args .test_file :
210
+ create_args ["test_file" ] = args .test_file
211
+ if args .base_model :
212
+ create_args ["base_model" ] = args .base_model
213
+ if args .hparams :
214
+ try :
215
+ hparams = json .loads (args .hparams )
216
+ except json .decoder .JSONDecodeError :
217
+ sys .stderr .write (
218
+ "--hparams must be JSON decodable and match the hyperparameter arguments of the API"
219
+ )
220
+ sys .exit (1 )
221
+ create_args .update (hparams )
222
+
223
+ resp = openai .FineTune .create (** create_args )
224
+ print (resp )
225
+
226
+ @classmethod
227
+ def get (cls , args ):
228
+ resp = openai .FineTune .retrieve (id = args .id )
229
+ print (resp )
230
+
231
+ @classmethod
232
+ def events (cls , args ):
233
+ resp = openai .FineTune .list_events (id = args .id )
234
+ print (resp )
235
+
236
+ @classmethod
237
+ def cancel (cls , args ):
238
+ resp = openai .FineTune .cancel (id = args .id )
239
+ print (resp )
240
+
241
+
198
242
def register (parser ):
199
243
# Engine management
200
244
subparsers = parser .add_subparsers (help = "All API subcommands" )
@@ -379,3 +423,30 @@ def help(args):
379
423
380
424
sub = subparsers .add_parser ("tags.list" )
381
425
sub .set_defaults (func = Tag .list )
426
+
427
+ # /fine-tunes API
428
+ sub = subparsers .add_parser ("fine_tunes.list" )
429
+ sub .set_defaults (func = FineTuneCLI .list )
430
+
431
+ sub = subparsers .add_parser ("fine_tunes.create" )
432
+ sub .add_argument ("-t" , "--train_file" , required = True , help = "File to train" )
433
+ sub .add_argument ("--test_file" , help = "File to test" )
434
+ sub .add_argument (
435
+ "-b" ,
436
+ "--base_model" ,
437
+ help = "The model name to start the run from" ,
438
+ )
439
+ sub .add_argument ("-p" , "--hparams" , help = "Hyperparameter JSON" )
440
+ sub .set_defaults (func = FineTuneCLI .create )
441
+
442
+ sub = subparsers .add_parser ("fine_tunes.get" )
443
+ sub .add_argument ("-i" , "--id" , required = True , help = "The id of the fine-tune job" )
444
+ sub .set_defaults (func = FineTuneCLI .get )
445
+
446
+ sub = subparsers .add_parser ("fine_tunes.events" )
447
+ sub .add_argument ("-i" , "--id" , required = True , help = "The id of the fine-tune job" )
448
+ sub .set_defaults (func = FineTuneCLI .events )
449
+
450
+ sub = subparsers .add_parser ("fine_tunes.cancel" )
451
+ sub .add_argument ("-i" , "--id" , required = True , help = "The id of the fine-tune job" )
452
+ sub .set_defaults (func = FineTuneCLI .cancel )
0 commit comments