@@ -413,48 +413,55 @@ void RAI_ModelRunCtxFree(RAI_ModelRunCtx* mctx) {
413413 RedisModule_Free (mctx );
414414}
415415
416- int RAI_ModelRun (RAI_ModelRunCtx * * mctxs , RAI_Error * err ) {
416+ int RAI_ModelRun (RAI_ModelRunCtx * * mctxs , long long n , RAI_Error * err ) {
417417 int ret ;
418418
419- if (array_len ( mctxs ) == 0 ) {
419+ if (n == 0 ) {
420420 RAI_SetError (err , RAI_EBACKENDNOTLOADED , "ERR Nothing to run" );
421421 return REDISMODULE_ERR ;
422422 }
423423
424- switch (mctxs [0 ]-> model -> backend ) {
424+ RAI_ModelRunCtx * * mctxs_arr = array_newlen (RAI_ModelRunCtx * , n );
425+ for (int i = 0 ; i < n ; i ++ ) {
426+ mctxs_arr [i ] = mctxs [i ];
427+ }
428+
429+ switch (mctxs_arr [0 ]-> model -> backend ) {
425430 case RAI_BACKEND_TENSORFLOW :
426431 if (!RAI_backends .tf .model_run ) {
427432 RAI_SetError (err , RAI_EBACKENDNOTLOADED , "ERR Backend not loaded: TF" );
428433 return REDISMODULE_ERR ;
429434 }
430- ret = RAI_backends .tf .model_run (mctxs , err );
435+ ret = RAI_backends .tf .model_run (mctxs_arr , err );
431436 break ;
432437 case RAI_BACKEND_TFLITE :
433438 if (!RAI_backends .tflite .model_run ) {
434439 RAI_SetError (err , RAI_EBACKENDNOTLOADED , "ERR Backend not loaded: TFLITE" );
435440 return REDISMODULE_ERR ;
436441 }
437- ret = RAI_backends .tflite .model_run (mctxs , err );
442+ ret = RAI_backends .tflite .model_run (mctxs_arr , err );
438443 break ;
439444 case RAI_BACKEND_TORCH :
440445 if (!RAI_backends .torch .model_run ) {
441446 RAI_SetError (err , RAI_EBACKENDNOTLOADED , "ERR Backend not loaded: TORCH" );
442447 return REDISMODULE_ERR ;
443448 }
444- ret = RAI_backends .torch .model_run (mctxs , err );
449+ ret = RAI_backends .torch .model_run (mctxs_arr , err );
445450 break ;
446451 case RAI_BACKEND_ONNXRUNTIME :
447452 if (!RAI_backends .onnx .model_run ) {
448453 RAI_SetError (err , RAI_EBACKENDNOTLOADED , "ERR Backend not loaded: ONNX" );
449454 return REDISMODULE_ERR ;
450455 }
451- ret = RAI_backends .onnx .model_run (mctxs , err );
456+ ret = RAI_backends .onnx .model_run (mctxs_arr , err );
452457 break ;
453458 default :
454459 RAI_SetError (err , RAI_EUNSUPPORTEDBACKEND , "ERR Unsupported backend" );
455460 return REDISMODULE_ERR ;
456461 }
457462
463+ array_free (mctxs_arr );
464+
458465 return ret ;
459466}
460467
@@ -641,4 +648,4 @@ int RedisAI_Parse_ModelRun_RedisCommand(RedisModuleCtx *ctx,
641648 return -1 ;
642649 }
643650 return argpos ;
644- }
651+ }
0 commit comments