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)."

Reply via email to