This is an automated email from the ASF dual-hosted git repository.

sergeykamov pushed a commit to branch NLPCRAFT-70_NEW
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/NLPCRAFT-70_NEW by this push:
     new 58dbb46  WIP.
58dbb46 is described below

commit 58dbb463b1224aa6da066d5ae14d4d34a2537a9e
Author: Sergey Kamov <[email protected]>
AuthorDate: Wed Jun 30 17:26:20 2021 +0300

    WIP.
---
 .../nlp/enrichers/ctxword/NCContextWordEnricher.scala       |  8 +++++++-
 .../org/apache/nlpcraft/server/probe/NCProbeManager.scala   |  5 ++++-
 .../apache/nlpcraft/model/ctxword/NCContextWordSpec.scala   | 13 +++++++------
 .../apache/nlpcraft/model/ctxword/NCContextWordSpec2.scala  |  5 +++--
 4 files changed, 21 insertions(+), 10 deletions(-)

diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/ctxword/NCContextWordEnricher.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/ctxword/NCContextWordEnricher.scala
index 81633e0..3d2187b 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/ctxword/NCContextWordEnricher.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/ctxword/NCContextWordEnricher.scala
@@ -36,6 +36,7 @@ import scala.jdk.CollectionConverters.SeqHasAsJava
 
 /**
   * ContextWord enricher.
+  * TODO: add metrics usage.
   */
 object NCContextWordEnricher extends NCServerEnricher {
     private final val MAX_CTXWORD_SCORE = 2
@@ -443,4 +444,9 @@ object NCContextWordEnricher extends NCServerEnricher {
                 println("detected="+detected.map(p => p._1.lemma -> p._2))
             case None => // No-op.
         }
-}
+
+    def onDisconnectProbe(probeId: String): Unit = {
+        valuesStems.synchronized { valuesStems --= 
valuesStems.keySet.filter(_.probeId == probeId) }
+        samples.synchronized { samples --= samples.keySet.filter(_.probeId == 
probeId) }
+    }
+}
\ No newline at end of file
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/probe/NCProbeManager.scala 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/probe/NCProbeManager.scala
index 3f865ed..6488bb1 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/probe/NCProbeManager.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/probe/NCProbeManager.scala
@@ -35,6 +35,7 @@ import org.apache.nlpcraft.probe.mgrs.NCProbeMessage
 import org.apache.nlpcraft.server.company.NCCompanyManager
 import org.apache.nlpcraft.server.mdo._
 import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnrichmentManager
+import org.apache.nlpcraft.server.nlp.enrichers.ctxword.NCContextWordEnricher
 import org.apache.nlpcraft.server.proclog.NCProcessLogManager
 import org.apache.nlpcraft.server.query.NCQueryManager
 import org.apache.nlpcraft.server.sql.NCSql
@@ -67,7 +68,6 @@ object NCProbeManager extends NCService {
         def reconnectTimeoutMs: Long = getLong(s"$pre.reconnectTimeoutMs")
         def pingTimeoutMs: Long = getLong(s"$pre.pingTimeoutMs")
         def soTimeoutMs: Int = getInt(s"$pre.soTimeoutMs")
-    
         /**
           *
           */
@@ -259,6 +259,9 @@ object NCProbeManager extends NCService {
 
                         // Clears unused models.
                         mdls --= mdls.keys.filter(id => !probes.exists { case 
(_, p) => p.probe.models.exists(_.id == id) })
+
+                        // TODO: add new interface for server enrichers? 
(services)
+                        
NCContextWordEnricher.onDisconnectProbe(probeKey.probeId)
                 }
 
             case Some(hld) =>
diff --git 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec.scala
 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec.scala
index 8615d8a..a871b9a 100644
--- 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec.scala
+++ 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec.scala
@@ -49,7 +49,8 @@ class NCContextWordSpecModel extends NCModel {
     override def getName: String = this.getClass.getSimpleName
     override def getVersion: String = "1.0.0"
 
-    val level = 0.4
+    val MDL_LEVEL = 0.4
+    val MDL_POLICY = MIN
 
     override def getContextWordModelConfig: Optional[NCContextWordModelConfig] 
= {
         Optional.of(
@@ -58,8 +59,8 @@ class NCContextWordSpecModel extends NCModel {
                     getElements.asScala.map(e =>
                         e.getId ->
                         new NCContextWordElementConfig() {
-                            override def getPolicy: NCContextWordElementPolicy 
= MIN
-                            override def getScore: Double = level
+                            override def getPolicy: NCContextWordElementPolicy 
= MDL_POLICY
+                            override def getScore: Double = MDL_LEVEL
                         }
                     ).toMap.asJava
 
@@ -86,9 +87,9 @@ class NCContextWordSpecModel extends NCModel {
 
     override def getElements: util.Set[NCElement] =
         Set(
-            Element("class:cars", level, Value("BMW")),
-            Element("class:animal", level, Value("fox"), Value("cat", 
"tomcat")),
-            Element("class:weather", level, Value("temperature"), 
Value("rain"), Value("sun"))
+            Element("class:cars", MDL_LEVEL, Value("BMW")),
+            Element("class:animal", MDL_LEVEL, Value("fox"), Value("cat", 
"tomcat")),
+            Element("class:weather", MDL_LEVEL, Value("temperature"), 
Value("rain"), Value("sun"))
         ).map(p => {
             val e: NCElement = p
 
diff --git 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec2.scala
 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec2.scala
index 8d12d43..e99e326 100644
--- 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec2.scala
+++ 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec2.scala
@@ -17,6 +17,7 @@
 
 package org.apache.nlpcraft.model.ctxword
 
+import 
org.apache.nlpcraft.model.NCContextWordElementConfig.NCContextWordElementPolicy.ANY
 import org.apache.nlpcraft.model.{NCContext, NCResult}
 import org.apache.nlpcraft.{NCTestContext, NCTestEnvironment}
 import org.junit.jupiter.api.Test
@@ -25,8 +26,8 @@ import org.junit.jupiter.api.Test
   * Test model.
   */
 class NCContextWordSpecModel2 extends NCContextWordSpecModel {
-    override val level: Double = 0
-
+    override val MDL_LEVEL: Double = 0
+    override val MDL_POLICY = ANY
     override def onContext(ctx: NCContext): NCResult = NCResult.text("OK")
 }
 

Reply via email to