-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMain.kt
36 lines (29 loc) · 1.01 KB
/
Main.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.mlp.simpleaction
import com.mlp.sdk.MlpException
import com.mlp.sdk.MlpExecutionContext
import com.mlp.sdk.MlpPredictServiceBase
import com.mlp.sdk.MlpServiceSDK
data class SimpleTestActionRequest(
val action: String,
val name: String
)
class SimpleTestAction(
override val context: MlpExecutionContext
) : MlpPredictServiceBase<SimpleTestActionRequest, String>(REQUEST_EXAMPLE, RESPONSE_EXAMPLE) {
override fun predict(req: SimpleTestActionRequest): String {
return when (req.action) {
"hello" -> "Hello ${req.name}!"
"envs" -> "Envs: ${context.environment.envsOverride}"
else -> throw MlpException("actionUnknownException")
}
}
companion object {
val REQUEST_EXAMPLE = SimpleTestActionRequest("hello", "World")
val RESPONSE_EXAMPLE = "Hello World!"
}
}
fun main() {
val actionSDK = MlpServiceSDK({ SimpleTestAction(MlpExecutionContext.systemContext) })
actionSDK.start()
actionSDK.blockUntilShutdown()
}