@@ -26,7 +26,7 @@ import com.google.ai.edge.litertlm.SamplerConfig
2626import com.unity3d.player.UnityPlayer
2727import java.util.concurrent.Executors
2828
29- class EngineWrapper private constructor(modelPath : String , backend : Backend , visionBackend : Backend ? , audioBackend : Backend ? , maxTokens : Int , useExternalCacheDir : Boolean ) {
29+ class EngineWrapper private constructor(modelPath : String , backend : Backend , visionBackend : Backend ? , audioBackend : Backend ? , maxNumTokens : Int? , cacheDir : String ) {
3030
3131 companion object {
3232 private const val TAG = " EngineWrapper"
@@ -58,7 +58,20 @@ class EngineWrapper private constructor(modelPath: String, backend: Backend, vis
5858 val visionBackend = toBackend(visionBackendType)
5959 val audioBackend = toBackend(audioBackendType)
6060
61- return EngineWrapper (modelPath, backend, visionBackend, audioBackend, maxTokens, useExternalCacheDir)
61+ val maxNumTokens = if (maxTokens == 0 ) null else maxTokens
62+ val context = UnityPlayer .currentContext
63+
64+ val cacheDir = if (useExternalCacheDir && Environment .getExternalStorageState() == Environment .MEDIA_MOUNTED )
65+ context.externalCacheDir?.path ? : context.cacheDir?.path
66+ else
67+ context.cacheDir?.path
68+
69+ if (cacheDir.isNullOrEmpty()) {
70+ Log .e(TAG , " Could not get path to cache directory." )
71+ return null
72+ }
73+
74+ return EngineWrapper (modelPath, backend, visionBackend, audioBackend, maxNumTokens, cacheDir)
6275 }
6376
6477 @JvmStatic
@@ -86,21 +99,15 @@ class EngineWrapper private constructor(modelPath: String, backend: Backend, vis
8699 private val engine: Engine
87100
88101 init {
89- val maxNumTokens = if (maxTokens == 0 ) null else maxTokens
90-
91- val context = UnityPlayer .currentContext
92- val cacheDir = if (useExternalCacheDir && Environment .getExternalStorageState() == Environment .MEDIA_MOUNTED )
93- context.externalCacheDir?.path ? : context.cacheDir?.path
94- else
95- context.cacheDir?.path
96-
97102 val engineConfig = EngineConfig (modelPath, backend, visionBackend, audioBackend, maxNumTokens, cacheDir)
98103 engine = Engine (engineConfig)
99104
100105 Log .i(TAG , " Initializing engine..." )
101106 executor.submit {
102107 engine.initialize()
108+
103109 Log .i(TAG , " Engine initialized!" )
110+ executor.shutdown()
104111 }
105112 }
106113
0 commit comments