This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch NLPCRAFT-472
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-472 by this push:
new 9437bd9 CR WIP
9437bd9 is described below
commit 9437bd92a7ba7670dca0d73d27f4ecccfc863802
Author: Aaron Radzinski <[email protected]>
AuthorDate: Thu Jan 13 11:41:25 2022 -0800
CR WIP
---
.../{NCResultType.java => NCCuration.java} | 24 +++++++------
.../{NCResultType.java => NCGlobals.scala} | 28 +++++-----------
.../scala/org/apache/nlpcraft/NCModelClient.java | 2 +-
.../scala/org/apache/nlpcraft/NCResultType.java | 5 ---
.../nlpcraft/internal/ascii/NCAsciiTable.scala | 2 +-
.../{client => impl}/NCModelClientImpl.scala | 39 ++++++++++------------
.../internal/{ => impl}/NCPipelineProcessor.scala | 7 ++--
.../internal/{ => impl}/NCSentenceHelper.java | 2 +-
.../internal/NCPipelineProcessorSpec.scala | 1 +
.../internal/NCPipelineValidatorsSpec.scala | 1 +
10 files changed, 49 insertions(+), 62 deletions(-)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCCuration.java
similarity index 66%
copy from nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
copy to nlpcraft/src/main/scala/org/apache/nlpcraft/NCCuration.java
index 4003441..58e07f2 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCCuration.java
@@ -20,19 +20,23 @@ package org.apache.nlpcraft;
/**
*
*/
-public enum NCResultType {
+public class NCCuration extends NCRejection {
/**
- * Final result is ready.
+ * Creates new curation exception with given message.
+ *
+ * @param msg Curation message.
*/
- ASK_RESULT,
+ public NCCuration(String msg) {
+ super(msg);
+ }
/**
- * Curation is required.
+ * Creates new curation exception with given message and cause.
+ *
+ * @param msg Curation message.
+ * @param cause Cause of this exception.
*/
- ASK_CURATE,
-
- /**
- * Ask user back engaging in dialog.
- */
- ASK_DIALOG
+ public NCCuration(String msg, Throwable cause) {
+ super(msg, cause);
+ }
}
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCGlobals.scala
similarity index 74%
copy from nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
copy to nlpcraft/src/main/scala/org/apache/nlpcraft/NCGlobals.scala
index 4003441..8e29546 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCGlobals.scala
@@ -15,24 +15,14 @@
* limitations under the License.
*/
-package org.apache.nlpcraft;
+package org.apache.nlpcraft
-/**
- *
- */
-public enum NCResultType {
- /**
- * Final result is ready.
- */
- ASK_RESULT,
+import org.apache.nlpcraft.NCException
- /**
- * Curation is required.
- */
- ASK_CURATE,
-
- /**
- * Ask user back engaging in dialog.
- */
- ASK_DIALOG
-}
+/**
+ * Global syntax sugar for throwing [[NCException]].
+ *
+ * @param msg Exception message.
+ * @param cause Optional cause.
+ */
+def E[T](msg: String, cause: Throwable = null): T = throw new NCException(msg,
cause)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelClient.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelClient.java
index 1d5dbf3..fee87cf 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelClient.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelClient.java
@@ -17,7 +17,7 @@
package org.apache.nlpcraft;
-import org.apache.nlpcraft.internal.client.NCModelClientImpl;
+import org.apache.nlpcraft.internal.impl.NCModelClientImpl;
import java.util.Map;
import java.util.concurrent.*;
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
index 4003441..400d406 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
@@ -27,11 +27,6 @@ public enum NCResultType {
ASK_RESULT,
/**
- * Curation is required.
- */
- ASK_CURATE,
-
- /**
* Ask user back engaging in dialog.
*/
ASK_DIALOG
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
index 9a1d961..cc43ff9 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
@@ -592,7 +592,7 @@ class NCAsciiTable:
private def renderPrintStream(f: => PrintStream, file: String): Unit =
try Using.resource(f)(_.print(mkString()))
- catch case e: IOException => throw new NCException(s"Error outputting
table into file: $file", e)
+ catch case e: IOException => E(s"Error outputting table into file:
$file", e)
/**
* Static context.
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/client/NCModelClientImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCModelClientImpl.scala
similarity index 72%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/internal/client/NCModelClientImpl.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCModelClientImpl.scala
index 800ed8d..f49917f 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/client/NCModelClientImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCModelClientImpl.scala
@@ -15,16 +15,16 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.internal.client
+package org.apache.nlpcraft.internal.impl
import com.typesafe.scalalogging.LazyLogging
-import org.apache.nlpcraft.internal.NCPipelineProcessor
-import org.apache.nlpcraft.internal.util.NCUtils
import org.apache.nlpcraft.*
+import org.apache.nlpcraft.internal.*
+import org.apache.nlpcraft.internal.util.*
-import java.util.{List as JList, Map as JMap}
import java.util.concurrent.*
import java.util.concurrent.atomic.AtomicReference
+import java.util.{Objects, List as JList, Map as JMap}
import scala.collection.mutable
import scala.concurrent.ExecutionContext
import scala.jdk.CollectionConverters.*
@@ -35,7 +35,6 @@ import scala.jdk.CollectionConverters.*
*/
class NCModelClientImpl(mdl: NCModel) extends LazyLogging:
private val plProc = NCPipelineProcessor(mdl)
-
private var plSrvs: Seq[NCLifecycle] = _
init(mdl.getConfig, mdl.getPipeline)
@@ -46,18 +45,12 @@ class NCModelClientImpl(mdl: NCModel) extends LazyLogging:
* @param pipeline
*/
private def init(cfg: NCModelConfig, pipeline: NCModelPipeline): Unit =
- // TODO: error texts.
- def check(obj: AnyRef, name: String): Unit =
- if obj == null then throw new NCException(s"Element cannot be
null: '$name'")
- def checkList(list: JList[_], name: String): Unit =
- if list == null then throw new NCException(s"List cannot be null:
'$name'")
- else if list.isEmpty then throw new NCException(s"List cannot be
empty: '$name'")
-
- check(cfg.getId, "Id")
- check(cfg.getName, "Name")
- check(cfg.getVersion, "Version")
- check(pipeline.getTokenParser, "Token parser")
- checkList(pipeline.getEntityParsers, "Entity parsers")
+ Objects.requireNonNull(cfg.getId, "Model ID cannot be null.")
+ Objects.requireNonNull(cfg.getName, "Model name cannot be null.")
+ Objects.requireNonNull(cfg.getVersion, "Model version cannot be null.")
+ Objects.requireNonNull(pipeline.getTokenParser, "Token parser cannot
be null.")
+ Objects.requireNonNull(pipeline.getEntityParsers, "List of entity
parsers in the pipeline cannot be null.")
+ if pipeline.getEntityParsers.isEmpty then E(s"At least one entity
parser must be specified in the pipeline.")
val buf = mutable.ArrayBuffer.empty[NCLifecycle] ++
pipeline.getEntityParsers.asScala
@@ -82,7 +75,7 @@ class NCModelClientImpl(mdl: NCModel) extends LazyLogging:
NCUtils.execPar(plSrvs.map(p =>
() => {
action(p)
- logger.info(s"Service $actionVerb: '${p.getClass.getName}'")
// TODO: text.
+ logger.info(s"Service $actionVerb: '${p.getClass.getName}'")
}
)*)(ExecutionContext.Implicits.global)
@@ -93,7 +86,8 @@ class NCModelClientImpl(mdl: NCModel) extends LazyLogging:
* @param usrId
* @return
*/
- def ask(txt: String, data: JMap[String, AnyRef], usrId: String):
CompletableFuture[NCResult] = plProc.ask(txt, data, usrId)
+ def ask(txt: String, data: JMap[String, AnyRef], usrId: String):
CompletableFuture[NCResult] =
+ plProc.ask(txt, data, usrId)
/**
*
@@ -102,19 +96,20 @@ class NCModelClientImpl(mdl: NCModel) extends LazyLogging:
* @param usrId
* @return
*/
- def askSync(txt: String, data: JMap[String, AnyRef], usrId: String):
NCResult = plProc.askSync(txt, data, usrId)
+ def askSync(txt: String, data: JMap[String, AnyRef], usrId: String):
NCResult =
+ plProc.askSync(txt, data, usrId)
/**
*
* @param usrId
*/
- def clearConversation(usrId: String): Unit = () // TODO: implement
+ def clearConversation(usrId: String): Unit = ???
/**
*
* @param usrId
*/
- def clearDialog(usrId: String): Unit = () // TODO: implement
+ def clearDialog(usrId: String): Unit = ???
/**
*
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/NCPipelineProcessor.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCPipelineProcessor.scala
similarity index 97%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/internal/NCPipelineProcessor.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCPipelineProcessor.scala
index b34a401..ff78b7b 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/NCPipelineProcessor.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCPipelineProcessor.scala
@@ -15,11 +15,12 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.internal
+package org.apache.nlpcraft.internal.impl
import com.typesafe.scalalogging.LazyLogging
-import org.apache.nlpcraft.internal.util.NCUtils
import org.apache.nlpcraft.*
+import org.apache.nlpcraft.internal.impl.NCSentenceHelper
+import org.apache.nlpcraft.internal.util.NCUtils
import java.util
import java.util.concurrent.*
@@ -38,7 +39,7 @@ object NCPipelineProcessor {
case class VariantsHolder(request: NCRequest, variants: Seq[NCVariant],
checkCancel: Option[() => Unit])
}
-import org.apache.nlpcraft.internal.NCPipelineProcessor.*
+import org.apache.nlpcraft.internal.impl.NCPipelineProcessor.*
/**
*
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/NCSentenceHelper.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCSentenceHelper.java
similarity index 99%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/internal/NCSentenceHelper.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCSentenceHelper.java
index eb7c09c..9ae59c4 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/NCSentenceHelper.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCSentenceHelper.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.internal;
+package org.apache.nlpcraft.internal.impl;
import java.util.ArrayList;
import java.util.Collection;
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineProcessorSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineProcessorSpec.scala
index fa1f1c5..736da78 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineProcessorSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineProcessorSpec.scala
@@ -18,6 +18,7 @@
package org.apache.nlpcraft.internal
import org.apache.nlpcraft.*
+import org.apache.nlpcraft.internal.impl.NCPipelineProcessor
import org.apache.nlpcraft.nlp.entity.parser.nlp.impl.NCNlpEntityParserImpl
import org.apache.nlpcraft.nlp.entity.parser.semantic.*
import org.apache.nlpcraft.nlp.entity.parser.semantic.impl.en.NCEnPorterStemmer
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineValidatorsSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineValidatorsSpec.scala
index 279d9b6..2790368 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineValidatorsSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineValidatorsSpec.scala
@@ -18,6 +18,7 @@
package org.apache.nlpcraft.internal
import org.apache.nlpcraft.*
+import org.apache.nlpcraft.internal.impl.NCPipelineProcessor
import org.apache.nlpcraft.nlp.entity.parser.nlp.NCNlpEntityParser
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*