This is an automated email from the ASF dual-hosted git repository. sergeykamov pushed a commit to branch intent_trait_api in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
commit 87968014d6dbfc340fc9927fae73d44ff2d51984 Author: Sergey Kamov <[email protected]> AuthorDate: Mon Nov 14 13:12:09 2022 +0400 Intent trait API. --- nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent2.scala | 5 ++--- .../src/test/scala/org/apache/nlpcraft/nlp/test/TimeTestModel.scala | 6 ++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent2.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent2.scala index 8f8aff91..76fc9084 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent2.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent2.scala @@ -19,11 +19,10 @@ package org.apache.nlpcraft import org.apache.nlpcraft.* -trait NCIntent2[T] { +trait NCIntent2[T](id: String): // Gets callback argument if matched. def tryMatch(mi: NCMatchInput): Option[T] def mkResult(mi: NCMatchInput, arg: T): NCResult - def getId: String -} + def getId: String = id diff --git a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/test/TimeTestModel.scala b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/test/TimeTestModel.scala index 19ad93a6..dee4385e 100644 --- a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/test/TimeTestModel.scala +++ b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/test/TimeTestModel.scala @@ -17,16 +17,14 @@ class TimeTestModel extends NCModel( // Add this method to API. override def getIntents: List[NCIntent2[_]] = List( - new NCIntent2[TimeData] : - override def getId: String = "id1" + new NCIntent2[TimeData]("id1") : override def tryMatch(mi: NCMatchInput): Option[TimeData] = val varEnts = mi.getVariant4Match.getEntities Option.when(varEnts.length == 1 && varEnts.count(_.getId == "x:time") == 1)(TimeData()) override def mkResult(mi: NCMatchInput, data: TimeData): NCResult = NCResult("Asked for local") // TBI. , - new NCIntent2[CityTimeData] : - override def getId: String = "id2" + new NCIntent2[CityTimeData]("id2") : override def tryMatch(mi: NCMatchInput): Option[CityTimeData] = val varEnts = mi.getVariant4Match.getEntities val allEnts = mi.getAllEntities
