blob: c93f139ab5602c785243857427b1abb6d32fb508 [file] [log] [blame]
<html><head><meta charset="utf-8"></meta><meta name="viewport" content="width=device-width, initial-scale=1"></meta><title>NCConversation</title><link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico"></link><script type="text/javascript" src="../../../scripts/theme.js"></script><script type="text/javascript" src="../../../scripts/searchData.js" defer="true"></script><script type="text/javascript" src="../../../scripts/scastieConfiguration.js" defer="true"></script><link rel="stylesheet" href="../../../styles/nord-light.css"></link><link rel="stylesheet" href="../../../styles/scalastyle.css"></link><link rel="stylesheet" href="../../../styles/colors.css"></link><link rel="stylesheet" href="../../../styles/dotty-icons.css"></link><link rel="stylesheet" href="../../../styles/diagram.css"></link><link rel="stylesheet" href="../../../styles/filter-bar.css"></link><link rel="stylesheet" href="../../../styles/code-snippets.css"></link><link rel="stylesheet" href="../../../styles/searchbar.css"></link><link rel="stylesheet" href="../../../styles/social-links.css"></link><link rel="stylesheet" href="../../../styles/ux.css"></link><link rel="stylesheet" href="../../../styles/versions-dropdown.css"></link><link rel="stylesheet" href="../../../styles/fontawesome.css"></link><script type="text/javascript" src="../../../hljs/highlight.min.js" defer="true"></script><script type="text/javascript" src="../../../scripts/hljs-scala3.js" defer="true"></script><script type="text/javascript" src="../../../scripts/ux.js" defer="true"></script><script type="text/javascript" src="../../../scripts/common/component.js" defer="true"></script><script type="text/javascript" src="../../../scripts/common/utils.js" defer="true"></script><script type="text/javascript" src="../../../scripts/components/FilterBar.js" defer="true"></script><script type="text/javascript" src="../../../scripts/components/DocumentableList.js" defer="true"></script><script type="text/javascript" src="../../../scripts/components/Input.js" defer="true"></script><script type="text/javascript" src="../../../scripts/components/FilterGroup.js" defer="true"></script><script type="text/javascript" src="../../../scripts/components/Filter.js" defer="true"></script><script type="text/javascript" src="../../../scripts/scaladoc-scalajs.js" defer="true"></script><script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js" defer="true"></script><script type="text/javascript" src="https://d3js.org/d3.v6.min.js" defer="true"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/graphlib-dot@0.6.2/dist/graphlib-dot.min.js" defer="true"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/dagre-d3/0.6.1/dagre-d3.min.js" defer="true"></script><script type="text/javascript" src="https://scastie.scala-lang.org/embedded.js" defer="true"></script><script type="text/javascript" src="../../../scripts/data.js" defer="true"></script><script>var pathToRoot = "../../../";</script></head><body><div id="container"><div id="leftColumn"><div id="logo"><span><div class="projectName">NLPCraft</div></span><div id="version"><div class="versions-dropdown"><div onclick="dropdownHandler()" id="dropdown-button" class="dropdownbtn dropdownbtnactive"><div class="projectVersion">1.0.0</div><div id="dropdown-content" class="dropdown-content"><input type="text" placeholder="Search..." id="dropdown-input" onkeyup="filterFunction()"></input></div></div></div></div><div class="socials"><a href="https://github.com/apache/incubator-nlpcraft"><span class="social-icon" data-icon-path="github-icon-white.png"></span></a></div></div><div id="paneSearch"></div><nav id="sideMenu2"><div class="ni expanded"><span class="nh expanded"><span class="ar"></span><a href="../../../index.html"><span>NLPCraft</span></a></span><div class="ni expanded"><span class="nh expanded"><span class="ar"></span><a href="../nlpcraft.html"><span class="micon pa"></span><span>org.apache.nlpcraft</span></a></span><div class="ni "><span class="nh "><a href="NCContext.html"><span class="micon tr"></span><span>NCContext</span></a></span></div><div class="ni expanded"><span class="nh selected"><a href="NCConversation.html"><span class="micon tr"></span><span>NCConversation</span></a></span></div><div class="ni "><span class="nh "><a href="NCCuration.html"><span class="micon cl"></span><span>NCCuration</span></a></span></div><div class="ni "><span class="nh "><a href="NCDialogFlowItem.html"><span class="micon tr"></span><span>NCDialogFlowItem</span></a></span></div><div class="ni "><span class="nh "><a href="NCEntity.html"><span class="micon tr"></span><span>NCEntity</span></a></span></div><div class="ni "><span class="nh "><a href="NCEntityEnricher.html"><span class="micon tr"></span><span>NCEntityEnricher</span></a></span></div><div class="ni "><span class="nh "><a href="NCEntityMapper.html"><span class="micon tr"></span><span>NCEntityMapper</span></a></span></div><div class="ni "><span class="nh "><a href="NCEntityParser.html"><span class="micon tr"></span><span>NCEntityParser</span></a></span></div><div class="ni "><span class="nh "><a href="NCEntityValidator.html"><span class="micon tr"></span><span>NCEntityValidator</span></a></span></div><div class="ni "><span class="nh "><a href="NCException.html"><span class="micon cl"></span><span>NCException</span></a></span></div><div class="ni "><span class="nh "><a href="NCIntentMatch.html"><span class="micon tr"></span><span>NCIntentMatch</span></a></span></div><div class="ni "><span class="nh "><a href="NCIntentSkip.html"><span class="micon cl"></span><span>NCIntentSkip</span></a></span></div><div class="ni "><span class="nh "><a href="NCLifecycle.html"><span class="micon tr"></span><span>NCLifecycle</span></a></span></div><div class="ni "><span class="nh "><a href="NCMatchedCallback.html"><span class="micon tr"></span><span>NCMatchedCallback</span></a></span></div><div class="ni "><span class="nh "><a href="NCModel.html"><span class="micon tr"></span><span>NCModel</span></a></span></div><div class="ni "><span class="nh "><a href="NCModelClient.html"><span class="micon cl"></span><span>NCModelClient</span></a></span></div><div class="ni "><span class="nh "><a href="NCModelConfig$.html"><span class="micon ob"></span><span>NCModelConfig</span></a></span></div><div class="ni "><span class="nh "><a href="NCModelConfig.html"><span class="micon tr"></span><span>NCModelConfig</span></a></span></div><div class="ni "><span class="nh "><a href="NCPipeline.html"><span class="micon tr"></span><span>NCPipeline</span></a></span></div><div class="ni "><span class="nh "><a href="NCPipelineBuilder.html"><span class="micon cl"></span><span>NCPipelineBuilder</span></a></span></div><div class="ni "><span class="nh "><a href="NCPropertyMap.html"><span class="micon tr"></span><span>NCPropertyMap</span></a></span></div><div class="ni "><span class="nh "><a href="NCPropertyMapAdapter.html"><span class="micon cl"></span><span>NCPropertyMapAdapter</span></a></span></div><div class="ni "><span class="nh "><a href="NCRejection.html"><span class="micon cl"></span><span>NCRejection</span></a></span></div><div class="ni "><span class="nh "><a href="NCRequest.html"><span class="micon tr"></span><span>NCRequest</span></a></span></div><div class="ni "><span class="nh "><a href="NCResult$.html"><span class="micon ob"></span><span>NCResult</span></a></span></div><div class="ni "><span class="nh "><a href="NCResult.html"><span class="micon tr"></span><span>NCResult</span></a></span></div><div class="ni "><span class="nh "><a href="NCResultType.html"><span class="micon en"></span><span>NCResultType</span></a></span></div><div class="ni "><span class="nh "><a href="NCToken.html"><span class="micon tr"></span><span>NCToken</span></a></span></div><div class="ni "><span class="nh "><a href="NCTokenEnricher.html"><span class="micon tr"></span><span>NCTokenEnricher</span></a></span></div><div class="ni "><span class="nh "><a href="NCTokenParser.html"><span class="micon tr"></span><span>NCTokenParser</span></a></span></div><div class="ni "><span class="nh "><a href="NCTokenValidator.html"><span class="micon tr"></span><span>NCTokenValidator</span></a></span></div><div class="ni "><span class="nh "><a href="NCVariant.html"><span class="micon tr"></span><span>NCVariant</span></a></span></div><div class="ni "><span class="nh "><a href="NCVariantFilter.html"><span class="micon tr"></span><span>NCVariantFilter</span></a></span></div></div><div class="ni"><span class="nh "><span class="ar"></span><a href="nlp/enrichers.html"><span class="micon pa"></span><span>org.apache.nlpcraft.nlp.enrichers</span></a></span><div class="ni "><span class="nh "><a href="nlp/enrichers/NCBracketsTokenEnricher.html"><span class="micon cl"></span><span>NCBracketsTokenEnricher</span></a></span></div><div class="ni "><span class="nh "><a href="nlp/enrichers/NCDictionaryTokenEnricher.html"><span class="micon cl"></span><span>NCDictionaryTokenEnricher</span></a></span></div><div class="ni "><span class="nh "><a href="nlp/enrichers/NCEnStopWordsTokenEnricher.html"><span class="micon cl"></span><span>NCEnStopWordsTokenEnricher</span></a></span></div><div class="ni "><span class="nh "><a href="nlp/enrichers/NCOpenNLPTokenEnricher.html"><span class="micon cl"></span><span>NCOpenNLPTokenEnricher</span></a></span></div><div class="ni "><span class="nh "><a href="nlp/enrichers/NCQuotesTokenEnricher.html"><span class="micon cl"></span><span>NCQuotesTokenEnricher</span></a></span></div><div class="ni "><span class="nh "><a href="nlp/enrichers/NCSwearWordsTokenEnricher.html"><span class="micon cl"></span><span>NCSwearWordsTokenEnricher</span></a></span></div></div><div class="ni"><span class="nh "><span class="ar"></span><a href="nlp/parsers.html"><span class="micon pa"></span><span>org.apache.nlpcraft.nlp.parsers</span></a></span><div class="ni "><span class="nh "><a href="nlp/parsers/NCNLPEntityParser.html"><span class="micon cl"></span><span>NCNLPEntityParser</span></a></span></div><div class="ni "><span class="nh "><a href="nlp/parsers/NCOpenNLPEntityParser.html"><span class="micon cl"></span><span>NCOpenNLPEntityParser</span></a></span></div><div class="ni "><span class="nh "><a href="nlp/parsers/NCOpenNLPTokenParser.html"><span class="micon cl"></span><span>NCOpenNLPTokenParser</span></a></span></div><div class="ni "><span class="nh "><a href="nlp/parsers/NCSemanticElement.html"><span class="micon tr"></span><span>NCSemanticElement</span></a></span></div><div class="ni "><span class="nh "><a href="nlp/parsers/NCSemanticEntityParser.html"><span class="micon cl"></span><span>NCSemanticEntityParser</span></a></span></div></div><div class="ni"><span class="nh "><span class="ar"></span><a href="nlp/stemmer.html"><span class="micon pa"></span><span>org.apache.nlpcraft.nlp.stemmer</span></a></span><div class="ni "><span class="nh "><a href="nlp/stemmer/NCEnStemmer.html"><span class="micon cl"></span><span>NCEnStemmer</span></a></span></div><div class="ni "><span class="nh "><a href="nlp/stemmer/NCStemmer.html"><span class="micon tr"></span><span>NCStemmer</span></a></span></div></div></div></nav></div><div id="main"><div id="leftToggler"><span class="icon-toggler"></span></div><div id="scaladoc-searchBar"></div><main id="main-content"><div class="breadcrumbs container"><a href="../../../index.html">NLPCraft</a>/<a href="../nlpcraft.html">org.apache.nlpcraft</a>/<a href="NCConversation.html">NCConversation</a></div><div id="content"><div><div class="cover-header"><span class="micon tr"></span><h1>NCConversation</h1></div><div class="signature monospace"><span class="annotations monospace"></span><div class="signature"><span class="modifiers"></span><span class="kind"><span t="k">trait </span></span><a href="NCConversation.html" class="documentableName ">NCConversation</a><span></span></div></div><div class="cover"><div class="doc"><p>Conversation container. Conversation contains everything that should be implicitly remembered
during the active, ongoing conversation and forgotten once the conversation ends or timed out.
Conversation contains the following elements:</p>
<ul>
<li>List of entities comprising a &quot;short-term-memory&quot; (STM) of this conversation.</li>
<li>Chronological list of previously matched intents.</li>
<li>Auto-expiring user data.</li>
</ul>
<p>Note that the conversation is unique for given combination of user and data model.</p>
<p>Conversation management is based on idea of a &quot;short-term-memory&quot; (STM). STM can be viewed as a condensed
short-term history of the input for a given user and data model. Every submitted user request that wasn't
rejected is added to the conversation STM as a list of tokens. Existing STM tokens belonging to the same
group will be overridden by the more recent tokens from the same group. Note also that tokens in STM automatically
expire (i.e. context is &quot;forgotten&quot;) after a certain period of time and/or based on the depth of the
conversation since the last mention.</p>
<p>You can also maintain user state-machine between requests using conversation's session. Conversation's
<a href="NCConversation.html#getData-0">data</a> is a mutable thread-safe container that can hold any arbitrary user data
while supporting the same expiration logic as the rest of the conversation elements (i.e. tokens and
previously matched intent IDs).</p>
<p>Conversation expiration policy is configured by two configuration properties:</p>
<ul>
<li><a href="NCModelConfig.html#getConversationDepth-0">NCModelConfig.getConversationDepth</a></li>
<li><a href="NCModelConfig.html#getConversationTimeout-0">NCModelConfig.getConversationTimeout</a></li>
</ul>
</div><dl class="attributes"><dt>See also:</dt><dd><div><div><p><a href="NCContext.html#getConversation-0">NCContext.getConversation</a></p>
</div><div><p><a href="NCModelConfig.html#getConversationDepth-0">NCModelConfig.getConversationDepth</a></p>
</div><div><p><a href="NCModelConfig.html#getConversationTimeout-0">NCModelConfig.getConversationTimeout</a></p>
</div></div></dd><dt>Source:</dt><dd><a href="https://github.com/apache/incubator-nlpcraft/blob/master/nlpcraft/src/main/scala/org/apache/nlpcraft/NCConversation.scala#L50">NCConversation.scala</a></dd></dl></div><div class="tabs single"><div class="names"><button data-togglable="graph" class="tab showGraph">Graph</button><button data-togglable="supertypes" class="tab ">Supertypes</button></div><div class="contents"><div data-togglable="graph" class="tab showGraph"><div id="inheritance-diagram" class="diagram-class showGraph"><input value="Reset zoom" type="button" class="btn" onclick="zoomOut()"></input><svg id="graph"></svg><script type="text/dot" id="dot"> digraph g {
node0 [id=node0, label="<span style=\"color: #FFFFFF;\">trait <a href=\"NCConversation.html\" t=\"t\">NCConversation</a></span>", style="fill: #1CAACF;"];
node1 [id=node1, label="<span style=\"color: #FFFFFF;\">class <span data-unresolved-link=\"\" t=\"t\">Object</span></span>", style="fill: #45AD7D;"];
node2 [id=node2, label="<span style=\"color: #FFFFFF;\">class <span data-unresolved-link=\"\" t=\"t\">Any</span></span>", style="fill: #45AD7D;"];
node3 [id=node3, label="<span style=\"color: #FFFFFF;\">trait <span data-unresolved-link=\"\" t=\"t\">Matchable</span></span>", style="fill: #1CAACF;"];
node0 -> node1;
node1 -> node2;
node1 -> node3;
node3 -> node2;
}
</script></div></div><div data-togglable="supertypes" class="tab "><div class="symbol monospace"><div>class <span data-unresolved-link="" t="t">Object</span></div><div>trait <span data-unresolved-link="" t="t">Matchable</span></div><div>class <span data-unresolved-link="" t="t">Any</span></div></div></div></div></div><div class="documentableFilter"><div class="filterUpperContainer"><button class="filterToggleButton" data-test-id="filterToggleButton">
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
<path d="M0 0h24v24H0z" fill="none"/>
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
</svg>
</button><input class="filterableInput" placeholder="Filter all members" data-test-id="filterBarInput"></input></div><div class="filterLowerContainer"></div></div><div class="membersList"><div class="tabs"><div class="names"><button data-togglable="Value members" class="tab selected">Value members</button></div><div class="contents"><div data-togglable="Value members" class="tab selected"><h2 data-togglable="Value members">Value members</h2><div class="documentableList"><h3 class="groupHeader">Abstract methods</h3><div class="documentableElement" id="clearDialog-c9d"><a link="NCConversation.html#clearDialog-c9d" class="documentableAnchor"></a><div><span class="annotations monospace"></span></div><div class="header monospace"><div class="signature"><span class="modifiers"></span><span class="kind"><span t="k">def </span></span><a href="NCConversation.html#clearDialog-c9d" class="documentableName ">clearDialog</a><span>(<span t="k"></span><span t="k"></span>filter: <a href="NCDialogFlowItem.html" t="t">NCDialogFlowItem</a><span t="k"> =&gt; </span><a href="https://www.scala-lang.org/api/2.13.8/scala/Boolean.html" t="t">Boolean</a>): <a href="https://www.scala-lang.org/api/2.13.8/scala/Unit.html" t="t">Unit</a></span></div></div><div class="docs"><span class="modifiers"></span><div><div class="originInfo"></div><div class="memberDocumentation"><div class="documentableBrief doc"><p>Removes all previously matched intents using given dialog flow item predicate.</p>
</div><div class="cover"><div class="doc"><p>Removes all previously matched intents using given dialog flow item predicate.</p>
<p>History of matched intents (i.e. the dialog flow) can be used in intent definition as part of its
matching template. NLPCraft maintains the window of previously matched intents based on time, i.e.
after certain period of time the oldest previously matched intents are forgotten and removed from
dialog flow. This method allows explicitly clear previously matched intents from the
dialog flow based on user logic other than time window.</p>
</div><dl class="attributes"><dt>Value parameters:</dt><dd><dl class="attributes"><dt>filter</dt><dd><p>Dialog flow filter.</p>
</dd></dl></dd><dt>Source:</dt><dd><a href="https://github.com/apache/incubator-nlpcraft/blob/master/nlpcraft/src/main/scala/org/apache/nlpcraft/NCConversation.scala#L106">NCConversation.scala</a></dd></dl></div></div></div></div></div><div class="documentableElement" id="clearStm-c9d"><a link="NCConversation.html#clearStm-c9d" class="documentableAnchor"></a><div><span class="annotations monospace"></span></div><div class="header monospace"><div class="signature"><span class="modifiers"></span><span class="kind"><span t="k">def </span></span><a href="NCConversation.html#clearStm-c9d" class="documentableName ">clearStm</a><span>(<span t="k"></span><span t="k"></span>filter: <a href="NCEntity.html" t="t">NCEntity</a><span t="k"> =&gt; </span><a href="https://www.scala-lang.org/api/2.13.8/scala/Boolean.html" t="t">Boolean</a>): <a href="https://www.scala-lang.org/api/2.13.8/scala/Unit.html" t="t">Unit</a></span></div></div><div class="docs"><span class="modifiers"></span><div><div class="originInfo"></div><div class="memberDocumentation"><div class="documentableBrief doc"><p>Removes all entities satisfying given predicate from the conversation STM. This is particularly useful when the
logic processing the user input makes an implicit assumption not present in the user input itself. Such
assumption may alter the conversation (without having an explicit entities responsible for it) and therefore
this method can be used to remove &quot;stale&quot; entities from conversation STM.</p>
</div><div class="cover"><div class="doc"><p>Removes all entities satisfying given predicate from the conversation STM. This is particularly useful when the
logic processing the user input makes an implicit assumption not present in the user input itself. Such
assumption may alter the conversation (without having an explicit entities responsible for it) and therefore
this method can be used to remove &quot;stale&quot; entities from conversation STM.</p>
<p>For example, in some cases the intent logic can assume the user current location as an implicit geographical
location and therefore all existing geographical-related entities should be removed from the conversation
STM to maintain correct context.</p>
</div><dl class="attributes"><dt>Value parameters:</dt><dd><dl class="attributes"><dt>filter</dt><dd><p>Entity remove filter.</p>
</dd></dl></dd><dt>Source:</dt><dd><a href="https://github.com/apache/incubator-nlpcraft/blob/master/nlpcraft/src/main/scala/org/apache/nlpcraft/NCConversation.scala#L93">NCConversation.scala</a></dd></dl></div></div></div></div></div><div class="documentableElement" id="getData-0"><a link="NCConversation.html#getData-0" class="documentableAnchor"></a><div><span class="annotations monospace"></span></div><div class="header monospace"><div class="signature"><span class="modifiers"></span><span class="kind"><span t="k">def </span></span><a href="NCConversation.html#getData-0" class="documentableName ">getData</a><span>: <a href="NCPropertyMap.html" t="t">NCPropertyMap</a></span></div></div><div class="docs"><span class="modifiers"></span><div><div class="originInfo"></div><div class="memberDocumentation"><div class="documentableBrief doc"><p>Gets user-defined data as a mutable thread-safe property container. Note tha this container has the
same expiration policy as the conversation it belongs to. Specifically, the returned container will be
cleared when the conversation gets cleared automatically (by timeout or depth) or manually.</p>
</div><div class="cover"><div class="doc"><p>Gets user-defined data as a mutable thread-safe property container. Note tha this container has the
same expiration policy as the conversation it belongs to. Specifically, the returned container will be
cleared when the conversation gets cleared automatically (by timeout or depth) or manually.</p>
</div><dl class="attributes"><dt>Returns:</dt><dd><p>User-defined conversation data container. Can be empty but never <code>null</code>.</p>
</dd><dt>Source:</dt><dd><a href="https://github.com/apache/incubator-nlpcraft/blob/master/nlpcraft/src/main/scala/org/apache/nlpcraft/NCConversation.scala#L58">NCConversation.scala</a></dd></dl></div></div></div></div></div><div class="documentableElement" id="getDialogFlow-0"><a link="NCConversation.html#getDialogFlow-0" class="documentableAnchor"></a><div><span class="annotations monospace"></span></div><div class="header monospace"><div class="signature"><span class="modifiers"></span><span class="kind"><span t="k">def </span></span><a href="NCConversation.html#getDialogFlow-0" class="documentableName ">getDialogFlow</a><span>: <a href="https://www.scala-lang.org/api/2.13.8/scala/collection/immutable/List.html" t="t">List</a>[<a href="NCDialogFlowItem.html" t="t">NCDialogFlowItem</a>]</span></div></div><div class="docs"><span class="modifiers"></span><div><div class="originInfo"></div><div class="memberDocumentation"><div class="documentableBrief doc"><p>Gets the chronologically ordered list of previously matched intents sorted from oldest to newest
for the current user.</p>
</div><div class="cover"><div class="doc"><p>Gets the chronologically ordered list of previously matched intents sorted from oldest to newest
for the current user.</p>
</div><dl class="attributes"><dt>Returns:</dt><dd><p>List of chronologically ordered previously matched dialog flow items.</p>
</dd><dt>Source:</dt><dd><a href="https://github.com/apache/incubator-nlpcraft/blob/master/nlpcraft/src/main/scala/org/apache/nlpcraft/NCConversation.scala#L79">NCConversation.scala</a></dd></dl></div></div></div></div></div><div class="documentableElement" id="getStm-0"><a link="NCConversation.html#getStm-0" class="documentableAnchor"></a><div><span class="annotations monospace"></span></div><div class="header monospace"><div class="signature"><span class="modifiers"></span><span class="kind"><span t="k">def </span></span><a href="NCConversation.html#getStm-0" class="documentableName ">getStm</a><span>: <a href="https://www.scala-lang.org/api/2.13.8/scala/collection/immutable/List.html" t="t">List</a>[<a href="NCEntity.html" t="t">NCEntity</a>]</span></div></div><div class="docs"><span class="modifiers"></span><div><div class="originInfo"></div><div class="memberDocumentation"><div class="documentableBrief doc"><p>Gets an ordered list of entities stored in the conversation STM for the current user and data model.
Entities in the returned list are ordered by their conversational depth, i.e. the entities from more
recent requests appear before entities from older requests.</p>
</div><div class="cover"><div class="doc"><p>Gets an ordered list of entities stored in the conversation STM for the current user and data model.
Entities in the returned list are ordered by their conversational depth, i.e. the entities from more
recent requests appear before entities from older requests.</p>
<p>Note that specific rules by which STM operates are undefined for the purpose of this function - caller
should not rely on any observed behavior of how STM stores and evicts its content.</p>
</div><dl class="attributes"><dt>Returns:</dt><dd><p>List of entities for this conversation's STM. The list can be empty which
indicates that conversation is brand new or expired - but never <code>null</code>.</p>
</dd><dt>Source:</dt><dd><a href="https://github.com/apache/incubator-nlpcraft/blob/master/nlpcraft/src/main/scala/org/apache/nlpcraft/NCConversation.scala#L71">NCConversation.scala</a></dd></dl></div></div></div></div></div></div></div></div></div></div></div></div></main><footer><div id="generated-by"><span class="footer-text">Generated by</span><a href="https://github.com/lampepfl/dotty/tree/master/scaladoc"><img src="../../../images/scaladoc_logo.svg" alt="scaladoc" class="scaladoc_logo"></img><img src="../../../images/scaladoc_logo_dark.svg" alt="scaladoc" class="scaladoc_logo_dark"></img></a></div><span id="footer-text">Apache NLPCraft</span><div class="socials"><span class="footer-text">Social links</span><a href="https://github.com/apache/incubator-nlpcraft"><span class="social-icon" data-icon-path="github-icon-black.png"></span></a></div><div class="mode"><span class="footer-text">Mode</span><label id="theme-toggle" class="switch"><input type="checkbox"></input><span class="slider"></span></label></div><span class="go-to-top-icon"><a href="#container"><span class="icon-vertical_align_top"></span><span class="footer-text">Back to top</span></a></span></footer></div></div></body></html>