You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by ar...@apache.org on 2021/08/09 06:54:44 UTC
[incubator-nlpcraft] branch NLPCRAFT-405 updated: Fixed NLPCRAFT-405
This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch NLPCRAFT-405
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-405 by this push:
new f980ebd Fixed NLPCRAFT-405
f980ebd is described below
commit f980ebd8c66a2bfde798bef6191a00c641156b98
Author: Aaron Radzinski <ar...@datalingvo.com>
AuthorDate: Sun Aug 8 23:54:37 2021 -0700
Fixed NLPCRAFT-405
---
.../org/apache/nlpcraft/common/ansi/NCAnsi.scala | 3 +-
.../nlpcraft/common/ascii/NCAsciiTable.scala | 4 +-
.../scala/org/apache/nlpcraft/common/package.scala | 27 +++++++------
.../org/apache/nlpcraft/common/util/NCUtils.scala | 43 ++++++++++++++------
.../nlpcraft/probe/mgrs/cmd/NCCommandManager.scala | 46 +++++++++++++++++-----
5 files changed, 88 insertions(+), 35 deletions(-)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala
index 43d25da..826e7d7 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsi.scala
@@ -1462,7 +1462,6 @@ object NCAnsi extends NCAnsi {
def ackStatus(): Unit =
if (isEnabled)
logger.info(
- s"${U.bgRainbow4Bit("ANSI coloring")} ${U.fgRainbow4Bit("is enabled")}. " +
- s"Use '-D${ansiCyanFg}NLPCRAFT_ANSI_COLOR_DISABLED$ansiReset=true' to disable it."
+ U.gradAnsi8BitBgLine("ANSI coloring is enabled. Use '-DNLPCRAFT_ANSI_COLOR_DISABLED=true' to disable it.", 130, 147)
)
}
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
index a2d8336..5232ecd 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
@@ -109,8 +109,8 @@ class NCAsciiTable {
)
// Table drawing symbols.
- private val HDR_HOR = ansi256Fg(75, "=")
- private val HDR_VER = ansi256Fg(75, "|")
+ private val HDR_HOR = ansi256Fg(105, "=")
+ private val HDR_VER = ansi256Fg(105, "|")
private val HDR_CRS = ansi256Fg(99, "+")
private val ROW_HOR = ansi256Fg(39, "-")
private val ROW_VER = ansi256Fg(67, "|")
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/package.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/package.scala
index b2f1121..d222e5e 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/package.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/package.scala
@@ -43,27 +43,32 @@ package object common {
final val TOK_META_ALIASES_KEY = "__NLPCRAFT_TOK_META_ALIASES"
final val MDL_META_MODEL_CLASS_KEY = "__NLPCRAFT_MDL_CLASS_NAME"
- def G: String = ansiGreenFg
- def M: String = ansiMagentaFg
- def R: String = ansiRedFg
+ // Re-route to 8-bit colors.
+ def G: String = ansi256Fg(34)
+ def M: String = ansi256Fg(177)
+ def R: String = ansi256Fg(202)
+
def C: String = ansiCyanFg
def Y: String = ansiYellowFg
- def W: String = ansiWhiteFg
+ def W: String = ansi256Fg(231)
def B: String = ansiBlueFg
- def BO: String = ansiBold
def K: String = ansiBlackFg
- def GB: String = ansiGreenBg
- def MB: String = ansiMagentaBg
- def RB: String = ansiRedBg
+
+ def GB: String = ansi256Bg(34)
+ def MB: String = ansi256Bg(177)
+ def RB: String = ansi256Bg(202)
def CB: String = ansiCyanBg
def YB: String = ansiYellowBg
def WB: String = ansiWhiteBg
def BB: String = ansiBlueBg
def KB: String = ansiBlackBg
+
+ def BO: String = ansiBold
def RST: String = ansiReset
- def g(s: Any): String = s"${ansi256Fg(34)}${s.toString}$RST"
- def m(s: Any): String = s"${ansi256Fg(177)}${s.toString}$RST"
- def r(s: Any): String = s"${ansi256Fg(202)}${s.toString}$RST"
+
+ def g(s: Any): String = s"$G${s.toString}$RST"
+ def m(s: Any): String = s"$M${s.toString}$RST"
+ def r(s: Any): String = s"$R${s.toString}$RST"
def c(s: Any): String = s"$C${s.toString}$RST"
def y(s: Any): String = s"$Y${s.toString}$RST"
def w(s: Any): String = s"$W${s.toString}$RST"
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
index e2a74a2..1fbde7e 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
@@ -83,9 +83,9 @@ object NCUtils extends LazyLogging {
private final val DISABLE_GA_PROP = "NLPCRAFT_DISABLE_GA"
- private lazy val ANSI_FG_8BIT_COLORS = for (i <- 1 to 255) yield ansi256Fg(i)
+ private lazy val ANSI_FG_8BIT_COLORS = for (i <- 16 to 255) yield ansi256Fg(i)
- private lazy val ANSI_BG_8BIT_COLORS = for (i <- 1 to 255) yield ansi256Bg(i)
+ private lazy val ANSI_BG_8BIT_COLORS = for (i <- 16 to 255) yield ansi256Bg(i)
private lazy val ANSI_FG_4BIT_COLORS = Seq(
ansiRedFg,
@@ -114,7 +114,7 @@ object NCUtils extends LazyLogging {
private final lazy val DEC_FMT_SYMS = new DecimalFormatSymbols(Locale.US)
- private final lazy val GSON = new GsonBuilder().setPrettyPrinting().create()
+ private final lazy val GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create()
private final lazy val YAML = new ObjectMapper(new YAMLFactory).
configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).
registerModule(new DefaultScalaModule()).
@@ -1613,7 +1613,7 @@ object NCUtils extends LazyLogging {
val start = startColor + (36 * idx)
val end = start + range - 1
- gradAnsi8BitLine(line, start, end)
+ gradAnsi8BitFgLine(line, start, end)
})
.mkString("")
}
@@ -1625,7 +1625,7 @@ object NCUtils extends LazyLogging {
* @param endColor Inclusive.
* @return
*/
- private def gradAnsi8BitLine(line: String, startColor: Int, endColor: Int): String = {
+ def gradAnsi8BitFgLine(line: String, startColor: Int, endColor: Int): String = {
line.zipWithIndex.foldLeft(new StringBuilder())((buf, zip) => {
val ch = zip._1
val idx = zip._2
@@ -1638,6 +1638,24 @@ object NCUtils extends LazyLogging {
/**
*
+ * @param line
+ * @param startColor Inclusive.
+ * @param endColor Inclusive.
+ * @return
+ */
+ def gradAnsi8BitBgLine(line: String, startColor: Int, endColor: Int): String = {
+ line.zipWithIndex.foldLeft(new StringBuilder())((buf, zip) => {
+ val ch = zip._1
+ val idx = zip._2
+ val color = startColor + idx % (endColor - startColor + 1)
+
+ buf ++= s"${ansi256Bg(color)}$ch"
+ })
+ .toString + ansiReset
+ }
+
+ /**
+ *
* @param s
* @return
*/
@@ -1707,17 +1725,20 @@ object NCUtils extends LazyLogging {
val buf = new StringBuilder
var inQuotes = false
+ var isValue = false
for (ch <- json) {
ch match {
- case ':' if !inQuotes => buf ++= r(":")
- case '[' | ']' | '{' | '}' if !inQuotes => buf ++= y(s"$ch")
- case ',' if !inQuotes => buf ++= g(s"$ch")
+ case ':' if !inQuotes => buf ++= r(":"); isValue = true
+ case '[' | ']' | '{' | '}' if !inQuotes => buf ++= y(s"$ch"); isValue = false
+ case ',' if !inQuotes => buf ++= ansi256Fg(213, s"$ch"); isValue = false
case '"' =>
if (inQuotes)
- buf ++= b(s"$ch")
- else
- buf ++= s"$ansiBlueFg$ch$ansiCyanFg"
+ buf ++= ansi256Fg(105, s"$ch")
+ else {
+ buf ++= s"${ansi256Fg(105)}$ch"
+ buf ++= (if (isValue) G else ansiCyanFg)
+ }
inQuotes = !inQuotes
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala
index 0a19ad2..1d923ce 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala
@@ -22,6 +22,7 @@ import com.fasterxml.jackson.module.scala.DefaultScalaModule
import io.opencensus.trace.Span
import org.apache.nlpcraft.common.nlp.NCNlpSentence
import org.apache.nlpcraft.common.{NCService, _}
+import org.apache.nlpcraft.model.intent.NCIdlIntent
import org.apache.nlpcraft.model.{NCCustomParser, NCElement, NCModelView, NCToken, NCValue, NCValueLoader}
import org.apache.nlpcraft.probe.mgrs.NCProbeMessage
import org.apache.nlpcraft.probe.mgrs.conn.NCConnectionManager
@@ -200,9 +201,23 @@ object NCCommandManager extends NCService {
mkMsg = () => {
val mdlId = msg.data[String]("mdlId")
- val mdl = NCModelManager.getModel(mdlId).model
+ val probeMdl = NCModelManager.getModel(mdlId)
+ val mdl = probeMdl.model
+
+ case class IntentInfo(
+ intentId: String,
+ intentIdl: String,
+ intentOrigin: String,
+ callback: String
+ )
- val jsonMdl: NCModelView =
+ case class ModelInfo(
+ model: NCModelView,
+ intentsCnt: Int,
+ intents: Seq[IntentInfo]
+ )
+
+ val mdlView: NCModelView =
new NCModelView {
// As is.
override def getId: String = mdl.getId
@@ -256,7 +271,7 @@ object NCCommandManager extends NCService {
def getSparse: lang.Boolean
}
- val eJs: NCElement =
+ val elm: NCElement =
new NCElementJs {
// As is.
override def getId: String = e.getId
@@ -275,19 +290,32 @@ object NCCommandManager extends NCService {
override def isSparse: Optional[lang.Boolean] = null
// Wrapped.
- override def getPermutateSynonyms: lang.Boolean =
- e.isPermutateSynonyms.orElse(null)
- override def getSparse: lang.Boolean =
- e.isSparse.orElse(null)
+ override def getPermutateSynonyms: lang.Boolean = e.isPermutateSynonyms.orElse(null)
+ override def getSparse: lang.Boolean = e.isSparse.orElse(null)
}
- eJs
+ elm
}).asJava
}
+ val mdlInfo = ModelInfo(
+ model = mdlView,
+ intentsCnt = probeMdl.intents.size,
+ probeMdl.intents.map((intent: NCIdlIntent) => {
+ val cb = probeMdl.callbacks.get(intent.id)
+
+ IntentInfo(
+ intentId = intent.id,
+ intentIdl = intent.idl,
+ intentOrigin = intent.origin,
+ callback = if (cb.isDefined) s"${cb.get.className}#${cb.get.methodName}(...)" else null
+ )
+ })
+ )
+
NCProbeMessage(
"P2S_MODEL_INFO",
"reqGuid" -> msg.getGuid,
- "resp" -> JS_MAPPER.writeValueAsString(jsonMdl)
+ "resp" -> JS_MAPPER.writeValueAsString(mdlInfo)
)
},
mkErrorMsg = e =>