@@ -69,53 +69,58 @@ RAI_Script* MODULE_API_FUNC(RedisAI_ScriptGetShallowCopy)(RAI_Script* script);
6969
7070int MODULE_API_FUNC (RedisAI_GetLLAPIVersion )();
7171
72-
73- #define REDISAI_MODULE_INIT_FUNCTION ( name ) \
74- if (RedisModule_GetApi(" RedisAI_" #name, ((void **)&RedisAI_ ## name))) { \
75- printf( "could not initialize RedisAI_" #name "\r\n");\
72+ #define REDISAI_MODULE_INIT_FUNCTION ( ctx , name ) \
73+ RedisAI_ ## name = RedisModule_GetSharedAPI(ctx, "RedisAI_" # name); \
74+ if(! RedisAI_ ## name){ \
75+ RedisModule_Log(ctx, "warning", "could not initialize RedisAI_" #name "\r\n");\
7676 return REDISMODULE_ERR; \
7777 }
7878
79- static int RedisAI_Initialize (){
80-
81- REDISAI_MODULE_INIT_FUNCTION (GetLLAPIVersion );
82-
83- REDISAI_MODULE_INIT_FUNCTION (TensorCreate );
84- REDISAI_MODULE_INIT_FUNCTION (TensorGetDataSize );
85- REDISAI_MODULE_INIT_FUNCTION (TensorFree );
86- REDISAI_MODULE_INIT_FUNCTION (TensorSetData );
87- REDISAI_MODULE_INIT_FUNCTION (TensorSetValueFromLongLong );
88- REDISAI_MODULE_INIT_FUNCTION (TensorSetValueFromDouble );
89- REDISAI_MODULE_INIT_FUNCTION (TensorGetValueAsDouble );
90- REDISAI_MODULE_INIT_FUNCTION (TensorGetValueAsLongLong );
91- REDISAI_MODULE_INIT_FUNCTION (TensorGetShallowCopy );
92- REDISAI_MODULE_INIT_FUNCTION (TensorNumDims );
93- REDISAI_MODULE_INIT_FUNCTION (TensorDim );
94- REDISAI_MODULE_INIT_FUNCTION (TensorByteSize );
95- REDISAI_MODULE_INIT_FUNCTION (TensorData );
96-
97- REDISAI_MODULE_INIT_FUNCTION (ModelCreate );
98- REDISAI_MODULE_INIT_FUNCTION (ModelFree );
99- REDISAI_MODULE_INIT_FUNCTION (ModelRunCtxCreate );
100- REDISAI_MODULE_INIT_FUNCTION (ModelRunCtxAddInput );
101- REDISAI_MODULE_INIT_FUNCTION (ModelRunCtxAddOutput );
102- REDISAI_MODULE_INIT_FUNCTION (ModelRunCtxNumOutputs );
103- REDISAI_MODULE_INIT_FUNCTION (ModelRunCtxOutputTensor );
104- REDISAI_MODULE_INIT_FUNCTION (ModelRunCtxFree );
105- REDISAI_MODULE_INIT_FUNCTION (ModelRun );
106- REDISAI_MODULE_INIT_FUNCTION (ModelGetShallowCopy );
107- REDISAI_MODULE_INIT_FUNCTION (ModelSerialize );
108-
109- REDISAI_MODULE_INIT_FUNCTION (ScriptCreate );
110- REDISAI_MODULE_INIT_FUNCTION (ScriptFree );
111- REDISAI_MODULE_INIT_FUNCTION (ScriptRunCtxCreate );
112- REDISAI_MODULE_INIT_FUNCTION (ScriptRunCtxAddInput );
113- REDISAI_MODULE_INIT_FUNCTION (ScriptRunCtxAddOutput );
114- REDISAI_MODULE_INIT_FUNCTION (ScriptRunCtxNumOutputs );
115- REDISAI_MODULE_INIT_FUNCTION (ScriptRunCtxOutputTensor );
116- REDISAI_MODULE_INIT_FUNCTION (ScriptRunCtxFree );
117- REDISAI_MODULE_INIT_FUNCTION (ScriptRun );
118- REDISAI_MODULE_INIT_FUNCTION (ScriptGetShallowCopy );
79+ static int RedisAI_Initialize (RedisModuleCtx * ctx ){
80+
81+ if (!RedisModule_GetSharedAPI ){
82+ RedisModule_Log (ctx , "warning" , "redis version is not compatible with module shared api, use redis 5.0.4 or above." );
83+ return REDISMODULE_ERR ;
84+ }
85+
86+ REDISAI_MODULE_INIT_FUNCTION (ctx , GetLLAPIVersion );
87+
88+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorCreate );
89+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorGetDataSize );
90+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorFree );
91+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorSetData );
92+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorSetValueFromLongLong );
93+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorSetValueFromDouble );
94+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorGetValueAsDouble );
95+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorGetValueAsLongLong );
96+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorGetShallowCopy );
97+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorNumDims );
98+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorDim );
99+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorByteSize );
100+ REDISAI_MODULE_INIT_FUNCTION (ctx , TensorData );
101+
102+ REDISAI_MODULE_INIT_FUNCTION (ctx , ModelCreate );
103+ REDISAI_MODULE_INIT_FUNCTION (ctx , ModelFree );
104+ REDISAI_MODULE_INIT_FUNCTION (ctx , ModelRunCtxCreate );
105+ REDISAI_MODULE_INIT_FUNCTION (ctx , ModelRunCtxAddInput );
106+ REDISAI_MODULE_INIT_FUNCTION (ctx , ModelRunCtxAddOutput );
107+ REDISAI_MODULE_INIT_FUNCTION (ctx , ModelRunCtxNumOutputs );
108+ REDISAI_MODULE_INIT_FUNCTION (ctx , ModelRunCtxOutputTensor );
109+ REDISAI_MODULE_INIT_FUNCTION (ctx , ModelRunCtxFree );
110+ REDISAI_MODULE_INIT_FUNCTION (ctx , ModelRun );
111+ REDISAI_MODULE_INIT_FUNCTION (ctx , ModelGetShallowCopy );
112+ REDISAI_MODULE_INIT_FUNCTION (ctx , ModelSerialize );
113+
114+ REDISAI_MODULE_INIT_FUNCTION (ctx , ScriptCreate );
115+ REDISAI_MODULE_INIT_FUNCTION (ctx , ScriptFree );
116+ REDISAI_MODULE_INIT_FUNCTION (ctx , ScriptRunCtxCreate );
117+ REDISAI_MODULE_INIT_FUNCTION (ctx , ScriptRunCtxAddInput );
118+ REDISAI_MODULE_INIT_FUNCTION (ctx , ScriptRunCtxAddOutput );
119+ REDISAI_MODULE_INIT_FUNCTION (ctx , ScriptRunCtxNumOutputs );
120+ REDISAI_MODULE_INIT_FUNCTION (ctx , ScriptRunCtxOutputTensor );
121+ REDISAI_MODULE_INIT_FUNCTION (ctx , ScriptRunCtxFree );
122+ REDISAI_MODULE_INIT_FUNCTION (ctx , ScriptRun );
123+ REDISAI_MODULE_INIT_FUNCTION (ctx , ScriptGetShallowCopy );
119124
120125 if (RedisAI_GetLLAPIVersion () < REDISAI_LLAPI_VERSION ){
121126 return REDISMODULE_ERR ;
0 commit comments