This is an automated email from the ASF dual-hosted git repository. aradzinski pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
commit e68cafbf0b1f361791b8ded38a39a2588a89edc5 Author: Aaron Radzinski <[email protected]> AuthorDate: Tue Sep 22 11:56:57 2020 -0700 WIP. --- .../scala/org/apache/nlpcraft/model/NCConversation.java | 13 +++++++++++++ .../nlpcraft/probe/mgrs/conversation/NCConversation.scala | 5 +++++ .../nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala | 1 + 3 files changed, 19 insertions(+) diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCConversation.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCConversation.java index 5655426..b990851 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCConversation.java +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCConversation.java @@ -18,6 +18,7 @@ package org.apache.nlpcraft.model; import java.util.List; +import java.util.Map; import java.util.function.Predicate; /** @@ -83,4 +84,16 @@ public interface NCConversation { * @param filter Dialog flow filter based on IDs of previously matched intents. */ void clearDialog(Predicate<String/* Intent ID. */> filter); + + /** + * Gets modifiable user data container that can be to store user data in the conversation. + * Note that this data will expire the same as other elements in the conversation (i.e. tokens and + * previously matched intents). + * <p> + * Note that you should obtain the user data container on every intent callback invocation to make + * sure that expiration policy takes an effect. Do not cache the returned object elsewhere. + * + * @return Mutable user data container. The returned map is safe for concurrent modifications. + */ + Map<String, Object> getUserData(); } diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversation.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversation.scala index 1f8f51b..21c17a7 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversation.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversation.scala @@ -278,4 +278,9 @@ case class NCConversation( new util.ArrayList[NCToken](toks.asJava) } } + + /** + * + */ + def getUserData: util.Map[String, Object] = data } \ No newline at end of file diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala index e40e5ac..3e6ff92 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala @@ -563,6 +563,7 @@ object NCProbeEnrichmentManager extends NCService with NCOpenCensusModelStats { override def getDialogFlow: util.List[String] = NCDialogFlowManager.getDialogFlow(usrId, mdlId, span).asJava override def clearStm(filter: Predicate[NCToken]): Unit = conv.clearTokens(filter) override def clearDialog(filter: Predicate[String]): Unit = NCDialogFlowManager.clear(usrId, mdlId, span) + override def getUserData: util.Map[String, Object] = conv.getUserData } override def isOwnerOf(tok: NCToken): Boolean = allVars.contains(tok)
