Skip to content

Commit

Permalink
Support built-in engines in "pio new"
Browse files Browse the repository at this point in the history
  • Loading branch information
dszeto committed Sep 11, 2014
1 parent 4a0fe8b commit 9e25d79
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 4 deletions.
29 changes: 27 additions & 2 deletions tools/src/main/scala/Console.scala
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,21 @@ object Console extends Logging {
val builtinEngines = Seq(
"io.prediction.engines.itemrank")

val itemrankEngineTemplate = Map(
"engine.json" -> templates.scala.txt.engineJson(
"io.prediction.engines.itemrank",
BuildInfo.version,
"PredictionIO ItemRank Engine",
"io.prediction.engines.itemrank.ItemRankEngine"),
joinFile(Seq("params", "datasource.json")) ->
templates.itemrank.params.txt.datasourceJson(),
joinFile(Seq("params", "preparator.json")) ->
templates.itemrank.params.txt.preparatorJson(),
joinFile(Seq("params", "algorithms.json")) ->
templates.itemrank.params.txt.algorithmsJson(),
joinFile(Seq("params", "serving.json")) ->
templates.itemrank.params.txt.servingJson())

val scalaEngineTemplate = Map(
"build.sbt" -> templates.scala.txt.buildSbt(
ca.projectName.get,
Expand All @@ -336,16 +351,26 @@ object Console extends Logging {
"engine.json" -> templates.scala.txt.engineJson(
ca.projectName.get,
"0.0.1-SNAPSHOT",
ca.projectName.get),
ca.projectName.get,
"myorg.MyEngineFactory"),
joinFile(Seq("params", "datasource.json")) ->
templates.scala.params.txt.datasourceJson(),
joinFile(Seq("project", "assembly.sbt")) ->
templates.scala.project.txt.assemblySbt(),
joinFile(Seq("src", "main", "scala", "Engine.scala")) ->
templates.scala.src.main.scala.txt.engine())

val template = ca.projectName.get match {
case "io.prediction.engines.itemrank" =>
info("Creating built-in engine project io.prediction.engines.itemrank")
itemrankEngineTemplate
case _ =>
info(s"Creating Scala engine project ${ca.projectName.get}")
scalaEngineTemplate
}

try {
scalaEngineTemplate map { ft =>
template map { ft =>
FileUtils.writeStringToFile(
new File(ca.projectName.get, ft._1),
ft._2.toString,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[
{
"name": "mahout",
"params": {
"booleanData": true,
"k": 10,
"itemSimilarity": "LogLikelihoodSimilarity",
"weighted": false,
"nearestN": 10,
"threshold": 5e-324,
"numSimilarItems": 50
}
}
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"appId": 1,
"actions": [
"view",
"like",
"conversion",
"rate"
],
"attributeNames": {
"user": "user",
"item": "item",
"u2iActions": [
"view",
"like",
"conversion",
"rate"
],
"itypes": "pio_itypes",
"starttime": "starttime",
"endtime": "endtime",
"inactive": "inactive",
"rating": "pio_rate"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"actions": {
"view": 3,
"like": 5,
"conversion": 5,
"rate": null
},
"conflict": "latest"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
@(id: String, version: String, name: String)
@(id: String, version: String, name: String, engineFactory: String)
{
"id": "@{id}",
"version": "@{version}",
"name": "@{name}",
"engineFactory": "myorg.MyEngineFactory"
"engineFactory": "@{engineFactory}"
}

0 comments on commit 9e25d79

Please sign in to comment.