Skip to content

Conversational concepts for Tock

This page presents and popularizes the main concepts and conversational terminology used in Tock and its documentation.

A table also offers equivalences and similar terms in other conversational solutions.

Basic notions

Application

In pure NLP mode (language recognition), an application corresponds to a corpus of qualified sentences from which Tock will draw a set of statistical models (allowing it to analyze and interpret user sentences).

In conversational mode, the application also includes different parameters defining the responses and behavior of the bot. In other words, an application generally corresponds to a bot.

See Tock Studio > Settings > Applications.

Configuration

A configuration groups the connectors of a bot for different channels (see below).

A configuration also corresponds to a set of responses and behaviors of the bot on these channels. For example, for the same scenario (story) of the application it is possible to configure different responses (answers, story rules, etc.) according to several configurations.

See Tock Studio > Settings > Configurations.

Connector

A connector allows Tock to "connect" a bot to an external channel such as Messenger, WhatsApp, a website, etc.

Its detailed configuration depends on the channel concerned.

Tock makes it very easy to share the code of a bot so that it responds on several channels thanks to its connectors. However, it is possible to fine-tune responses and behaviors depending on the connector, if needed.

See Tock Studio > Settings > Configurations and the Bot Multichannel page to learn more about the available connectors.

Namespace

The namespace is used to identify the organizational group of an object.

The namespace usually appears as a prefix followed by : in a string. For example, an entity typed duckling:datetime is of type datetime in the namespace duckling (it comes from the Duckling module).

If you are using the demo platform, your namespace is your GitHub identifier.

While most objects and settings depend on an application that itself belongs to a namespace, some objects such as answers are directly attached to the namespace: they are therefore shared between the applications in this namespace.

See Tock Studio > Settings > Namespaces.

Intents

To be able to define actions following a user request, it is first necessary to classify or categorize this request.

What we call an intention is precisely this classification.

For example, the sentences "What's the weather like?", "Is it nice tomorrow?", "I hope it won't rain in Paris?" can all be categorized with the "weather" intent.

From the sentences manually classified by a user, Tock will automatically build a statistical model that will allow it, for a new sentence, to determine what the most likely intent is.

To take the example above, with a model made up of the three example sentences, it is likely that a new sentence of the type "What will the weather be like tomorrow?" will be automatically recognized by Tock as corresponding to the intent "weather".

See Tock Studio > Language Understanding.

Entities

Once the intent has been determined, it is often useful to identify the meaning of certain words in the sentence.

In the sentence "Is it nice tomorrow?", the word "tomorrow" has a meaning that must be used to answer the question in a relevant way.

We call entities these significant words in the sentence.

An entity has a type and a role. For example, in the sentence "I leave at 11am and I arrive at 6pm", the words "at 11am" and "at 6pm" are both entities of type 'datetime' but "11am" will have a role departure where "6pm" will have a role arrive. In cases where the role does not provide additional information, it is often equal to the type.

There are two steps in taking an entity into account:

  • Identification: what are the words in the sentence that constitute the entity
  • Valorization: what is the value of this entity. For example, how to translate "at 11am" into a system date.

By default, Tock identifies the entity, but does not value it, except for certain types. By default, entities in the namespace "duckling" will be automatically valued.

See Tock Studio > Language Understanding.

Scenario (or Story)

A scenario or story is a functional grouping that allows you to answer questions on a well-defined subject.

It is generally initiated by a main intent and can also use, optionally, a tree of so-called "secondary" intents.

To take the weather example, to someone asking "What's the weather like?", it can be useful to ask the question of where they are.

This question will be taken into account in the "weather" story since it is only an extension of the initial question.

The Story is the main unit of the Tock conversational framework.

See Tock Studio > Stories & Answers.

Generative AI notions

LLM

A Large Language Model generates text from a prompt. In Tock, LLMs condense the user questions, write the RAG answers and generate training sentences. Tock supports several LLM providers, hosted or local.

Embedding

An embedding model turns a text into a vector, so that texts with close meanings get close vectors. The same embedding model must be used to index the documents and to search them.

Knowledge base, chunks and vector store

The documents that the bot can use to answer are split into chunks (passages of a few paragraphs), turned into vectors and stored in a vector store (PGVector or OpenSearch). Each indexing creates an indexing session: the bot uses the one selected in its RAG settings.

RAG

Retrieval-Augmented Generation: to answer a question, Tock retrieves the chunks closest to the question in the vector store, then asks an LLM to write the answer from these chunks only, with their sources. In Tock, the RAG handles the sentences that no story handles (see How the bot answers).

See Tock Studio > Gen AI > Rag settings.

Prompt

The instructions given to the LLM. The RAG answering prompt defines the scope of the bot, its tone and the rules it must follow (see RAG prompt).

Question condensing

Before searching the documents, an LLM rewrites the user question as a standalone question, using the latest messages of the conversation: "and on Sunday?" becomes "what are the opening hours on Sunday?".

Reranking (compressor)

A reranking model rescores the retrieved chunks against the question, to keep only the most relevant ones (see Compressor settings).

RAG exclusion

A sentence qualified with the tock:ragexcluded intent: the NLU model recognizes the excluded topics, and the bot answers them without calling the LLM (see RAG exclusions).

Gen AI orchestrator

The Python service that runs the generative AI features (RAG, sentence generation, playground...) and calls the LLM, embedding, vector store and observability providers (see Gen AI).

Terms & Mappings

The table below gives approximate mappings between the terms used in Tock and other conversational solutions:

Tock Dialogflow CX Amazon Lex V2 IBM watsonx Assistant Microsoft Copilot Studio Rasa
Application Agent Bot Assistant Agent Assistant
Connector Integration Channel integration Integration / Channel Channel Channel connector
Intent Intent Intent Intent Topic trigger Intent
Entity Entity type Slot type / Slot Entity Entity Entity / Slot
Sentence Training phrase Sample utterance User example Trigger phrase Training example
Story Flow / Page Intent (with its slots) Action Topic Flow / Story
Story programmed in Kotlin Webhook Lambda function Custom extension Power Automate flow Custom action
RAG Data store agent AMAZON.QnAIntent Conversational search Knowledge sources Enterprise Search

The documentation of the Tock connectors also gives the correspondence with other terms specific to this or that channel.

Chat with Tock
×