This is an automated email from the ASF dual-hosted git repository.
sergeykamov pushed a commit to branch NLPCRAFT-491
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-491 by this push:
new bdf80fd5 WIP.
bdf80fd5 is described below
commit bdf80fd59ef5c2471aa2404afca1e3c459f5620d
Author: Sergey Kamov <[email protected]>
AuthorDate: Fri Apr 8 14:41:35 2022 +0300
WIP.
---
.../nlpcraft/examples/pizzeria/PizzeriaModel.scala | 7 +++++--
.../examples/pizzeria/PizzeriaModelPipeline.scala | 2 +-
.../nlpcraft/examples/pizzeria/PizzeriaOrder.scala | 19 ++++++++++++++-----
.../pizzeria/components/RequestValidator.scala | 2 +-
.../pizzeria/src/main/resources/pizzeria_model.yaml | 2 +-
5 files changed, 22 insertions(+), 10 deletions(-)
diff --git
a/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaModel.scala
b/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaModel.scala
index 9d8020d4..dc464b55 100644
---
a/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaModel.scala
+++
b/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaModel.scala
@@ -29,7 +29,7 @@ import scala.jdk.CollectionConverters.*
import scala.jdk.OptionConverters.*
/**
- *
+ * * Pizza model helper.
*/
object PizzeriaModel extends LazyLogging:
private val UNEXPECTED_REQUEST = new NCRejection("Unexpected request for
current dialog context.")
@@ -44,7 +44,10 @@ object PizzeriaModel extends LazyLogging:
import org.apache.nlpcraft.examples.pizzeria.PizzeriaModel.*
/**
- *
+ * Pizza model.
+ * It keep order state for each user.
+ * Each order can in one of 5 state
(org.apache.nlpcraft.examples.pizzeria.OrderState)
+ * Note that there is used custom states logic instead of STM, because
complex states flow.
*/
class PizzeriaModel extends NCModelAdapter(new
NCModelConfig("nlpcraft.pizzeria.ex", "Pizzeria Example Model", "1.0"),
PizzeriaModelPipeline.PIPELINE) with LazyLogging:
private def getOrder(ctx: NCContext): PizzeriaOrder =
diff --git
a/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaModelPipeline.scala
b/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaModelPipeline.scala
index 118d6f98..40a0736a 100644
---
a/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaModelPipeline.scala
+++
b/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaModelPipeline.scala
@@ -13,7 +13,7 @@ import scala.jdk.CollectionConverters.*
import java.util.Properties
/**
- *
+ * PizzeriaModel pipeline, based on Stanford NLP engine, including model
custom components.
*/
object PizzeriaModelPipeline:
val PIPELINE: NCPipeline =
diff --git
a/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaOrder.scala
b/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaOrder.scala
index 04a8647f..390c4d5a 100644
---
a/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaOrder.scala
+++
b/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/PizzeriaOrder.scala
@@ -32,27 +32,35 @@ private abstract class OrderElement:
require(name != null && name.nonEmpty)
/**
+ * Pizza order data holder.
*
- * @param name
- * @param size
- * @param qty
+ * @param name Name.
+ * @param size Optional size.
+ * @param qty Optional quantity.
*/
case class Pizza(name: String, var size: Option[String], var qty: Option[Int])
extends OrderElement:
override def toString = s"$name '${size.getOrElse("undefined size")}'
${qty.getOrElse(OrderElement.DFLT_QTY)} pcs"
/**
+ * Drink order data holder.
*
- * @param name
- * @param qty
+ * @param name Name.
+ * @param qty Optional quantity.
*/
case class Drink(name: String, var qty: Option[Int]) extends OrderElement:
override def toString = s"$name ${qty.getOrElse(OrderElement.DFLT_QTY)}
pcs"
+/**
+ * Order states.
+ */
enum OrderState:
case NO_DIALOG, DIALOG_IS_READY, DIALOG_SHOULD_CANCEL, DIALOG_SPECIFY,
DIALOG_CONFIRM
import org.apache.nlpcraft.examples.pizzeria.OrderState.*
+/**
+ * Order.
+ */
class PizzeriaOrder:
private var state = NO_DIALOG
private val pizzas = mutable.ArrayBuffer.empty[Pizza]
@@ -96,6 +104,7 @@ class PizzeriaOrder:
else setByName(pizzas, p)
for (d <- ds) setByName(drinks, d)
+
/**
*
* @return
diff --git
a/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/components/RequestValidator.scala
b/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/components/RequestValidator.scala
index 341552f4..65abf9b9 100644
---
a/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/components/RequestValidator.scala
+++
b/nlpcraft-examples/pizzeria/src/main/java/org/apache/nlpcraft/examples/pizzeria/components/RequestValidator.scala
@@ -23,7 +23,7 @@ import java.util
import scala.jdk.CollectionConverters.*
/**
- *
+ * Rejects some invalid variant with more detailed information instead of
standard rejections.
*/
class RequestValidator extends NCEntityValidator:
override def validate(req: NCRequest, cfg: NCModelConfig, ents:
util.List[NCEntity]): Unit =
diff --git a/nlpcraft-examples/pizzeria/src/main/resources/pizzeria_model.yaml
b/nlpcraft-examples/pizzeria/src/main/resources/pizzeria_model.yaml
index 589adab2..58e681f9 100644
--- a/nlpcraft-examples/pizzeria/src/main/resources/pizzeria_model.yaml
+++ b/nlpcraft-examples/pizzeria/src/main/resources/pizzeria_model.yaml
@@ -35,7 +35,7 @@ elements:
values:
"tea": [ ]
"coffee": [ ]
- "cola": ["{coca|cola|coca cola|cocacola|coca-cola}"]
+ "cola": [ "{coca|cola|coca cola|cocacola|coca-cola}" ]
- id: "ord:yes"
description: "Conformation (yes)."