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 2022/09/27 20:43:39 UTC
[incubator-nlpcraft] 01/02: Update NCModel.scala
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 11314bd965e8642ee766793533e4ce312077423f
Author: Aaron Radzinski <ar...@datalingvo.com>
AuthorDate: Tue Sep 27 11:19:01 2022 -0700
Update NCModel.scala
---
.../main/scala/org/apache/nlpcraft/NCModel.scala | 84 +++++++++++-----------
1 file changed, 43 insertions(+), 41 deletions(-)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModel.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModel.scala
index 091f3329..16d41b34 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModel.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModel.scala
@@ -55,34 +55,33 @@ trait NCModel:
def getPipeline: NCPipeline
/**
- * TODO: drop link to onVariant
- * A callback that is called when a fully assembled query context is ready. This callback is called after
- * all {@link # onVariant ( NCVariant )} callbacks are called but before any {@link # onMatchedIntent ( NCIntentMatch )} are
- * called, i.e. right before the intent matching is performed. It's called always once per input query processing.
- * Typical use case for this callback is to perform logging, debugging, statistic or usage collection, explicit
- * update or initialization of conversation context, security audit or validation, etc.
+ * A callback that is called when a fully assembled query context is ready. This is the first of the callbacks
+ * that is called on the model and right before the intent matching is performed. It's called always once per
+ * input query processing. Typical use case for this callback is to perform logging, debugging, statistic or
+ * usage collection, explicit update or initialization of conversation context, security audit or validation, etc.
*
- * Default implementation returns `null`.
+ * Default implementation returns `None`.
*
* @param ctx Input query context.
- * @return Optional query result to return interrupting the default workflow. Specifically, if this method
- * returns a non-`null` result, it will be returned to the caller immediately overriding default behavior.
- * If the method returns `null` - the default processing flow will continue.
+ * @return Optional query result to return interrupting the default processing workflow. Specifically, if
+ * this method returns a `Some` result, it will be returned to the caller immediately interrupting
+ * default processing workflow. If the method returns `None` - the default processing flow will continue.
* @throws NCRejection This callback can throw the rejection exception to abort input query processing.
*/
- @throws[NCRejection] def onContext(ctx: NCContext): Option[NCResult] = None
+ @throws[NCRejection]
+ def onContext(ctx: NCContext): Option[NCResult] = None
/**
* A callback that is called when intent was successfully matched but right before its callback is called. This
- * callback is called after {@link # onContext ( NCContext )} is called and may be called multiple times
- * depending on its return value. If `true` is returned than the default workflow will continue and the
- * matched intent's callback will be called. However, if `null` is returned than the entire existing set of
+ * callback is called after [[onContext()]] is called and may be called multiple times depending on its return
+ * value. If `true` is returned than the default processing workflow will continue and the
+ * matched intent's callback will be called. However, if `false` is returned than the entire existing set of
* parsing variants will be matched against all declared intents again. Returning `false` allows this
- * method to alter the state of the model (like soft-reset conversation or change metadata) and force the
- * full re-evaluation of the parsing variants against all declared intents.
+ * method to alter the state of the model (like soft-reset conversation or change metadata) and force a
+ * full re-evaluation of the parsing variants against all declared intents again.
*
* Note that user logic should be careful not to induce infinite loop in this behavior.
- * Note that this callback may not be called at all based on the return value of {@link # onContext ( NCContext )} callback.
+ * Note that this callback may not be called at all based on the return value of [[onContext()]] callback.
* Typical use case for this callback is to perform logging, debugging, statistic or usage collection, explicit
* update or initialization of conversation context, security audit or validation, etc.
*
@@ -90,53 +89,56 @@ trait NCModel:
*
* @param im Intent match context - the same instance that's passed to the matched intent callback.
* @return If `true` is returned than the default workflow will continue and the matched intent's
- * callback will be called. However, if `false` is returned than the entire existing set of
- * parsing variants will be matched against all declared intents again. Returning false allows this
- * method to alter the state of the model (like soft-reset conversation or change metadata) and force
- * the re-evaluation of the parsing variants against all declared intents. Note that user logic should be
- * careful not to induce infinite loop in this behavior.
+ * callback will be called. However, if `false` is returned than the entire existing set of
+ * parsing variants will be matched against all declared intents again. Returning false allows this
+ * method to alter the state of the model (like soft-reset conversation or change metadata) and force
+ * the re-evaluation of the parsing variants against all declared intents again. Note that user logic
+ * should be careful not to induce infinite loop in this behavior.
* @throws NCRejection This callback can throw the rejection exception to abort user request processing. In this
- * case the {@link # onRejection ( NCIntentMatch, NCRejection)} callback will be called next.
+ * case the [[onRejection()]] callback will be called next.
*/
- @throws[NCRejection] def onMatchedIntent(ctx: NCContext, im: NCIntentMatch) = true
+ @throws[NCRejection]
+ def onMatchedIntent(ctx: NCContext, im: NCIntentMatch): Boolean = true
/**
* A callback that is called when successful result is obtained from the intent callback and right before
- * sending it back to the caller. This callback is called after {@link # onMatchedIntent ( NCIntentMatch )} is called.
+ * sending it back to the caller. This callback is called after [[onMatchedIntent()]] is called.
* Note that this callback may not be called at all, and if called - it's called only once. Typical use case
* for this callback is to perform logging, debugging, statistic or usage collection, explicit update or
* initialization of conversation context, security audit or validation, etc.
*
- * Default implementation is a no-op returning `null`.
+ * Default implementation is a no-op returning `None`.
*
* @param im Intent match context - the same instance that's passed to the matched intent callback
- * that produced this result.
+ * that produced this result.
* @param res Existing result.
* @return Optional query result to return interrupting the default workflow. Specifically, if this
- * method returns a non-`null` result, it will be returned to the caller immediately overriding
- * default behavior and existing query result or error processing, if any. If the method returns `null` -
- * the default processing flow will continue.
+ * method returns a `Some` result, it will be returned to the caller immediately overriding
+ * default behavior and existing query result or error processing, if any. If the method returns `None` -
+ * the default processing flow will continue.
*/
def onResult(ctx: NCContext, im: NCIntentMatch, res: NCResult): Option[NCResult] = None
/**
* A callback that is called when intent callback threw NCRejection exception. This callback is called
- * after {@link # onMatchedIntent ( NCIntentMatch )} is called. Note that this callback may not be called at all,
+ * after [[onMatchedIntent()]] is called. Note that this callback may not be called at all,
* and if called - it's called only once. Typical use case for this callback is to perform logging, debugging,
* statistic or usage collection, explicit update or initialization of conversation context, security audit or
* validation, etc.
*
- * Default implementation is a no-op returning `null`.
+ * Default implementation is a no-op returning `None`.
*
* @param ctx Optional intent match context - the same instance that's passed to the matched intent callback
- * that produced this rejection. It is `null` if rejection was triggered outside the intent callback.
+ * that produced this rejection. It is `None` if rejection was triggered outside the intent callback.
+ * @param im Optional intent match context - the same instance that's passed to the matched intent callback
+ * that produced this result. It is `None` if rejection was triggered outside the intent callback.
* @param e Rejection exception.
* @return Optional query result to return interrupting the default workflow. Specifically, if this method
- * returns a non-`null` result, it will be returned to the caller immediately overriding default behavior
- * and existing query result or error processing, if any. If the method returns `null` - the default
- * processing flow will continue.
+ * returns a `Some` result, it will be returned to the caller immediately overriding default behavior
+ * and existing query result or error processing, if any. If the method returns `None` - the default
+ * processing flow will continue.
*/
- def onRejection(ctx: NCContext, im: Option[NCIntentMatch], e: NCRejection): Option[NCResult] = None
+ def onRejection(ctx: Option[NCContext], im: Option[NCIntentMatch], e: NCRejection): Option[NCResult] = None
/**
* A callback that is called when intent callback failed with unexpected exception. Note that this callback may
@@ -144,13 +146,13 @@ trait NCModel:
* to perform logging, debugging, statistic or usage collection, explicit update or initialization of conversation
* context, security audit or validation, etc.
*
- * Default implementation is a no-op returning `null`.
+ * Default implementation is a no-op returning `None`.
*
* @param ctx Intent match context - the same instance that's passed to the matched intent that produced this error.
* @param e Failure exception.
* @return Optional query result to return interrupting the default workflow. Specifically, if this method
- * returns a non-`null` result, it will be returned to the caller immediately overriding default
- * behavior and existing query result or error processing, if any. If the method returns `null` - the
- * default processing flow will continue.
+ * returns a `Some` result, it will be returned to the caller immediately overriding default
+ * behavior and existing query result or error processing, if any. If the method returns `None` - the
+ * default processing flow will continue.
*/
def onError(ctx: NCContext, e: Throwable): Option[NCResult] = None