-![]()
+
*A user can click the button at the bottom to open a map*
-![]()
+
*Example of the map view where a user can select their location*
-
+
*An example of a message when a user has submitted their location*
@@ -38,7 +35,7 @@ Navigate to the [Message Editor](/opendialog-platform/conversation-designer/mess
Fill in the template with the [properties](/opendialog-platform/conversation-designer/message-design/message-types/location-message#properties) of your particular message and when you are happy with it make sure to save your message and test it in the Test Preview chat window.
-![]()
+
*How to create a location message in the custom message block*
@@ -74,7 +71,11 @@ If you do not register this new attribute first, this will cause the message to
## How to use location messages
-
:::tip
**Saving a message:** Always remember to hit 'Save Message' before closing or navigating away from the edit screen.
@@ -84,7 +85,7 @@ If you do not register this new attribute first, this will cause the message to
Location information is stored in an attribute of type Location. If you haven't configured a new attributes then you could use a built-in attribute called Location (which is also of type Location). Alternative you can create a new attribute and set the type to Location.
-![]()
+
*Creating an attribute of type attribute*
@@ -114,7 +115,7 @@ Ok - we have your new address as {user.new_address['formatted_address']}.
Is this correct?
```
-![]()
+
Please pay attention to how _formatted\_address_ is enclosed in single quotes and square brackets. You can access any of the components of the address in the same way.
diff --git a/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/meta-messages/progress-bar-message/index.mdx b/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/meta-messages/progress-bar-message/index.md
similarity index 87%
rename from src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/meta-messages/progress-bar-message/index.mdx
rename to src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/meta-messages/progress-bar-message/index.md
index 2c34695..4ad1f70 100644
--- a/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/meta-messages/progress-bar-message/index.mdx
+++ b/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/meta-messages/progress-bar-message/index.md
@@ -3,9 +3,6 @@ title: Progress Bar Message
description: This page describes where to use and find a progress bar message type
---
-import Embed from '~/components/Embed.astro';
-
-
## What is a progress bar message
Progress bar messages can give the user a sense of how far they have advanced through the interaction.
@@ -16,7 +13,7 @@ For some interactions it is important to give the user information about the con
This can be especially useful for conversations that involve answering a longer string of questions when we are collecting data from the user or for tasks that are made up of multiple steps e.g. giving identifying information, then filling out a form and finally uploading documents.
-![]()
+
## How to create a progress bar message
@@ -26,7 +23,7 @@ Navigate to the [Message Editor](/opendialog-platform/conversation-designer/mess
Fill in the template with the [properties](/opendialog-platform/conversation-designer/message-design/message-types/meta-messages/progress-bar-message#properties) of your particular message and when you are happy with it make sure to save your message and test it in the Test Preview chat window.
-![]()
+
*How to create a progress bar message in the custom message block*
@@ -45,12 +42,11 @@ Fill in the template with the [properties](/opendialog-platform/conversation-des
So, for example, the snippet below would show that the Claim Process is 10% complete.
-
#### Properties
@@ -64,7 +60,11 @@ If you change your mind and select a different message type after generating the
## How to use a progress bar message
-
:::tip
**Saving a message:** Always remember to hit 'Save Message' before closing or navigating away from the edit screen.
diff --git a/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/rich-message/index.mdx b/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/rich-message/index.md
similarity index 95%
rename from src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/rich-message/index.mdx
rename to src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/rich-message/index.md
index 8ddd2ed..43eb290 100644
--- a/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/rich-message/index.mdx
+++ b/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/rich-message/index.md
@@ -3,9 +3,6 @@ title: Rich Message
description: This page describes where to use and find a rich message type
---
-import Embed from '~/components/Embed.astro';
-
-
## What is a rich message?
A rich message is a card type message that can include lots of different multimedia elements such as titles, text, images, links and more.
@@ -24,7 +21,7 @@ Rich messages allow for more control around message content and how it is displa
* Image
* Buttons
-![]()
+
*Example of a rich message*
@@ -36,7 +33,7 @@ Navigate to the [Message Editor](/opendialog-platform/conversation-designer/mess
Fill in the template with the [properties ](/opendialog-platform/conversation-designer/message-design/message-types/rich-message#properties)of your particular message and when you are happy with it make sure to save your message and test it in the Test Preview chat window.
-![]()
+
*How to create a rich message via the custom message editor*
@@ -106,7 +103,11 @@ If you change your mind and select a different message type after generating the
## How to use a rich message
-
:::tip
**Saving a message:** Always remember to hit 'Save Message' before closing or navigating away from the edit screen.
diff --git a/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/text-message/index.mdx b/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/text-message/index.md
similarity index 93%
rename from src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/text-message/index.mdx
rename to src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/text-message/index.md
index da531c1..b4f01fd 100644
--- a/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/text-message/index.mdx
+++ b/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/text-message/index.md
@@ -3,9 +3,6 @@ title: Text Message
description: This page describes where to use and find a text message type
---
-import Embed from '~/components/Embed.astro';
-
-
## What is a text message?
A text message is a plain message with only text and is the primary message block we use to communicate with the user. It conveys information plainly conversationally and can also be used as a preamble to user choices using buttons, forms, and other message types.
@@ -22,7 +19,7 @@ _For example, separating out informative messages from the actionable question i
For more information on best practices for constructing messages, you can check out the [Constructing Messages ](/opendialog-platform/conversation-designer/message-design/constructing-messages)section of this documentation.
:::
-![]()
+
*Example of a text message in action*
@@ -40,7 +37,7 @@ Text messages can display scripted information defined directly via the message
Navigate to the [Message Editor](/opendialog-platform/conversation-designer/message-design/message-editor) and create a text block by clicking the _Add text block_ icon in the Layout section. You can add as many text blocks to your message as required.
-![]()
+
*Where to find the text block button*
@@ -64,7 +61,7 @@ Navigate to the [Message Editor](/opendialog-platform/conversation-designer/mess
Fill in the template with the [properties ](/opendialog-platform/conversation-designer/message-design/message-types/text-message#properties)of your particular message and when you are happy with it make sure to save your message and test it in the Test Preview chat window.
-![]()
+
*Where to find the custom messages button and XML for text messages*
@@ -122,7 +119,12 @@ If you change your mind and select a different message type after generating the
## How to use a text message
-
:::tip
**Saving a message:** Always remember to hit 'Save Message' before closing or navigating away from the edit screen.
@@ -132,9 +134,9 @@ If you change your mind and select a different message type after generating the
You can use a text message to display the responses from a large language model in your text message.
-To do so, you can reference the attribute that contains the LLM response in the text message block as follows : \{attribute\_name\}
+To do so, you can reference the attribute that contains the LLM response in the text message block as follows : {attribute\_name}
-_For example, \{llm\_response\}_
+_For example, {llm\_response}_
This requires you to configure the attribute the LLM response will get stored to. For more information on attributes, check out our [Attribute Management](/core-concepts/contexts-and-attributes/attributes) section.
diff --git a/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/twilio-content-template-message/index.md b/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/twilio-content-template-message/index.md
index a6e0f42..7b75547 100644
--- a/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/twilio-content-template-message/index.md
+++ b/src/content/docs/opendialog-platform/conversation-designer/message-design/message-types/twilio-content-template-message/index.md
@@ -11,11 +11,11 @@ This message holds a reference to the Twilio Content Template that is used to re
-
+
*An example of Call to Action template*
-
+
*An example of Quick Reply template*
@@ -37,7 +37,7 @@ You should use a Twilio Content Template Message when you want to create a multi
Navigate to the [Message Editor](/opendialog-platform/conversation-designer/message-design/message-editor) and create a Custom Message. Copy the [XML snippet](/opendialog-platform/conversation-designer/message-design/message-types/twilio-content-template-message#xml-snippet) at the bottom of this page into the black box, or select `twilio-content-template-message` from the drop down, and your chat message will appear in the Preview panel.
-![]()
+
*How to create Twilio Content Template Message in the custom message block*
@@ -69,7 +69,7 @@ Navigate to the [Message Editor](/opendialog-platform/conversation-designer/mess
| ----------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sid` | string | The unique identifier of the Twilio Content Template to use for rendering. Required if `name` is not present. |
| `name` | string | The name of the Twilio Content Template to use for rendering. Required if `sid` is not present. |
-| `variables` | object |
A collection of variables to pass to the template for rendering. In this example, body is a parameter of the message body.button_1_text is the text of the first button.button_1_value is the value of the button when clicked. Similar to Open Dialog's Button Message , it can be a callback to an intent. This field is optional, but variables number must match the number of parameters that you have defined in the Twilio content template.
|
+| `variables` | object |
A collection of variables to pass to the template for rendering. In this example, body is a parameter of the message body.button_1_text is the text of the first button.button_1_value is the value of the button when clicked. Similar to Open Dialog's Button Message , it can be a callback to an intent. This field is optional, but variables number must match the number of parameters that you have defined in the Twilio content template.
|
### Supported Twilio Content Templates Types
diff --git a/src/content/docs/opendialog-platform/conversation-designer/message-design/messages-best-practices/index.md b/src/content/docs/opendialog-platform/conversation-designer/message-design/messages-best-practices/index.md
index 1e6cce8..c56aa58 100644
--- a/src/content/docs/opendialog-platform/conversation-designer/message-design/messages-best-practices/index.md
+++ b/src/content/docs/opendialog-platform/conversation-designer/message-design/messages-best-practices/index.md
@@ -10,11 +10,11 @@ It helps legibility if the information is provided in multiple messages (all wit
Notice the difference between the following screens:
-
+
*All text in a single message*
- ![]()
+ 
## Words per app turn
@@ -27,7 +27,7 @@ A rule of thumb in a typical OpenDialog assistant is to limit the text in a sing
* 9 lines with buttons, ideally in 3 or 4 chunks
* Consider that on average, each line holds about 30 - 35 characters, or 5 to 6 words of average length (based on an average word length in English of 4.7 characters per word).
-![]()
+
*Example screen and content*
diff --git a/src/content/docs/opendialog-platform/conversation-designer/message-design/subsequent-messages-virtual-intents/index.md b/src/content/docs/opendialog-platform/conversation-designer/message-design/subsequent-messages-virtual-intents/index.md
index 171066c..8896372 100644
--- a/src/content/docs/opendialog-platform/conversation-designer/message-design/subsequent-messages-virtual-intents/index.md
+++ b/src/content/docs/opendialog-platform/conversation-designer/message-design/subsequent-messages-virtual-intents/index.md
@@ -4,7 +4,7 @@ title: Subsequent Messages - Virtual Intents
It is possible to share a number of messages in a single app intent, and [it is recommended to chunk content into bite-size pieces for legibility](/opendialog-platform/conversation-designer/message-design/messages-best-practices).
-
+
*3 pieces of information in a single app intent*
@@ -12,7 +12,7 @@ However, in some cases the information shared with the user does not all logical
-
+
*Information the assistant shares with the user - no user interaction*
@@ -20,13 +20,13 @@ The above would seem to violate the app - user - app -... order that must be adh
The app intent indicates in the component pane that they want to use a virtual intent.
-
+
*App intent that uses a virtual intent*
The user intent looks and feels just like any other user intent, and transitions to the next app intent.
-
+
*User intent*
diff --git a/src/content/docs/opendialog-platform/conversation-designer/message-design/using-attributes-in-messages/index.md b/src/content/docs/opendialog-platform/conversation-designer/message-design/using-attributes-in-messages/index.md
index 040712c..6877875 100644
--- a/src/content/docs/opendialog-platform/conversation-designer/message-design/using-attributes-in-messages/index.md
+++ b/src/content/docs/opendialog-platform/conversation-designer/message-design/using-attributes-in-messages/index.md
@@ -4,7 +4,7 @@ title: Using Attributes in Messages
Attributes can be used in any message to customize the content. For example, the user's name can be added in the welcome message to personalize the experience.
-
+
*Edit Message screen*
@@ -22,7 +22,7 @@ Note - If the attribute has no value or does not exist in the context given, the
### Message editor
-![]()
+
*The attribute input field can be accessed within the message editor section of the conversation designer*
diff --git a/src/content/docs/opendialog-platform/conversation-designer/message-design/using-markdown-in-messages/index.md b/src/content/docs/opendialog-platform/conversation-designer/message-design/using-markdown-in-messages/index.md
index 146a3cb..fbdae59 100644
--- a/src/content/docs/opendialog-platform/conversation-designer/message-design/using-markdown-in-messages/index.md
+++ b/src/content/docs/opendialog-platform/conversation-designer/message-design/using-markdown-in-messages/index.md
@@ -4,7 +4,7 @@ title: Using Markdown in messages
In order to add richness and enhance our end users' experience when using the WebChat interface, it is possible to use Markdown within message types that have a significant text component. The currently supported message types are: Text, Button, Form and Rich. OpenDialog supports all the [basic features](https://www.markdownguide.org/basic-syntax/#overview) of the Markdown syntax, as well as [tables](https://www.markdownguide.org/extended-syntax/#tables) and [fenced code blocks](https://www.markdownguide.org/extended-syntax/#fenced-code-blocks).
-![]()
+
*You can add your Markdown formatted content directly in the message editor*
diff --git a/src/content/docs/opendialog-platform/conversation-designer/webchat-interface-design/webchat-controls/index.md b/src/content/docs/opendialog-platform/conversation-designer/webchat-interface-design/webchat-controls/index.md
index d497d16..feabadd 100644
--- a/src/content/docs/opendialog-platform/conversation-designer/webchat-interface-design/webchat-controls/index.md
+++ b/src/content/docs/opendialog-platform/conversation-designer/webchat-interface-design/webchat-controls/index.md
@@ -15,7 +15,7 @@ Within the top header of every chat bot, there is a variety of different control
-![]()
+
*Where to find the minimise button - right top hand corner*
@@ -25,7 +25,7 @@ To do this, locate the minimise icon in the top right corner, and click it once
### Main Menu
-![]()
+
*Where to find the main menu button - right top hand corner*
@@ -40,7 +40,7 @@ To locate the main menu controls, find the 3 dots icon in the left hand corner.
-![]()
+
*Example of the expanded main menu from within the header controls*
@@ -48,7 +48,7 @@ To locate the main menu controls, find the 3 dots icon in the left hand corner.
-![]()
+
*Where to find the speech to text button - bottom left hand corner*
@@ -60,7 +60,7 @@ To access this feature, find the microphone button in the bottom left corner. Cl
-![]()
+
*Where to locate the CTA button*
diff --git a/src/content/docs/opendialog-platform/conversation-designer/webchat-interface-design/webchat-interface-settings/index.md b/src/content/docs/opendialog-platform/conversation-designer/webchat-interface-design/webchat-interface-settings/index.md
index bf87586..13a8c93 100644
--- a/src/content/docs/opendialog-platform/conversation-designer/webchat-interface-design/webchat-interface-settings/index.md
+++ b/src/content/docs/opendialog-platform/conversation-designer/webchat-interface-design/webchat-interface-settings/index.md
@@ -9,7 +9,7 @@ The settings are currently GLOBAL and will affect all scenarios you have created
Any changes made to the fields are not saved until you click on the 'Save Settings' button at the top of the screen
-![]()
+
*Save your settings changes using the save button*
@@ -19,7 +19,7 @@ The settings are broadly split into 4 settings that affect different elements wi
### General
-![The General settings]()
+
Here you can configure some overall settings for the widget:
@@ -33,7 +33,7 @@ Here you can configure some overall settings for the widget:
\- _Timing_ configures the length of time (in milliseconds) that the typing indicator should be shown for each message.\
\- You can control whether you want to show the typing indicator between each message block in the individual message toggling option _Hide Typing Indicator between messages_.\
\- _Show the typing indicator on message send_ controls whether to show the typing indicator at all.\
-\- _Typing Indicator_ can be either "Animation", which will show three dancing dots (![]()), or "Animation with feedback text", which will show spinning dots with feedback text (![]())
+\- _Typing Indicator_ can be either "Animation", which will show three dancing dots (), or "Animation with feedback text", which will show spinning dots with feedback text ()
You can configure the text and color of dots for "Animation with feedback text" in the embed code after you publish your scenario. Add the general key to your window.openDialogSettings object with the property typingIndicatorSettings. For this, you would need to specify:
@@ -64,7 +64,7 @@ You can configure the text and color of dots for "Animation with feedback text"
### CSS
-![CSS Options]()
+
Here you can upload custom CSS files to completely customise the chat widget. There are 2 files you can add:
@@ -74,7 +74,7 @@ Here you can upload custom CSS files to completely customise the chat widget. Th
### Layout Settings
-![Alter the colours used in the bot]()
+
Here you can adjust the colours used in the bot from the chat window itself to the messages and buttons.
@@ -84,19 +84,19 @@ Here you can adjust the colours used in the bot from the chat window itself to t
### Conversational History Settings
-![Adjust what history is shown to the user]()
+
Here, you can control whether the interface shows a user their previous chat history on load, and if so, how many messages to show. You can test how this behaves by using the preview section and **refreshing** the page on your browser rather than clicking the 'Refresh Scenario' button as this will generate a new user.
## Security Settings
-![]()
+
*Security Settings tab*
### Anonymous Authentication
-![]()
+
*Anonymous Authentication*
@@ -110,7 +110,7 @@ When this feature is enabled, users must not be assigned pre-set user ID's (such
### Cross site request forgery (CSRF)
-![]()
+
*Cross Site Request Forgery Settings*
@@ -120,7 +120,7 @@ This means that SDK implementations will need to ensure that the a custom subdom
### Cross origin resource sharing (CORS)
-![]()
+
*Cross Origin Resource Sharing Settings*
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/amazon-lex-interpreter/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/amazon-lex-interpreter/index.md
index c1a6a15..5703367 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/amazon-lex-interpreter/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/amazon-lex-interpreter/index.md
@@ -12,7 +12,7 @@ To use Amazon Lex, you'll need an [Amazon Web Services](https://aws.amazon.com/)
First you'll need to create the Lex interpreter in OpenDialog. On the "Interpreters Setup" page, select "Add new interpreter". Here you'll need to choose a unique name for the interpreter and select the Lex type.
-![Interpreter screen]()
+
You'll see that you need to enter some settings in order to configure the interpreter. The following sections will details how to collect this information.
@@ -24,7 +24,7 @@ In order to expose access to a Lex bot, you'll need to create a user account via
In the AWS admin panel, search for "IAM" and select the returned result. You are now in the IAM dashboard panel. From the left hand menu, under the "Access management" heading, select "Users". From here select the blue "Add users" button.
-![]()
+
From here you will need to configure the new user. Choose a user name of your choice (perhaps "OpenDialogLexUser"), and select the credential type as "Access key - Programmatic access". Then select the blue "Next: Permissions" button.
@@ -38,7 +38,7 @@ On this final screen you can review the user configuration. When you're ready, c
Now that you've created your IAM user for Lex, select the new user from the "Users" table. On this screen, under the "Summary" heading there are multiple tabs. Select the tab titled "Security credentials". In this tab, under the "Access keys" heading, we can manage access keys for our IAM user. This is where we will create and find the first two pieces of data that OpenDialog requires: the key and the secret.
-![]()
+
Click "Create access key". A modal will appear which contains a table with your key ID and secret key. The value under "Access key ID" should be pasted into the "Key" field in OpenDialog, and the "Secret access key" should be pasted into the "Secret" field.
@@ -58,7 +58,7 @@ On this screen you can configure the language of the bot. Use the "Select langua
Once your bot is created, you'll be automatically redirected to a screen for editing an intent. From OpenDialog to validate that the integration has been configured correctly, you'll need to set up at least one intent. To do this, you can re-purpose the intent you're currently viewing. If you'd like to come back to this later, all you'll need to do is add a single sample utterance. Under "Sample utterances", enter a sample utterance (such as "hello lex") and click "Add utterance".
-![]()
+
For further details on setting up intents, see the [Lex documentation](https://docs.aws.amazon.com/lexv2/latest/dg/build-intents.html). Once you've set up the intent, click "Save Intent" and then "Build". The build process may take a few minutes, you'll know it's complete when you see a green "Successfully built..." message at the top of the screen.
@@ -80,7 +80,7 @@ You've now collected all the details required for the Lex interpreter.
Now that the interpreter is configured to integrate with our Lex bot, it can be tested via the "Check Interpreter Setup" in the bottom right. Enter an utterance such as "hello lex" (or whatever sample utterance(s) you entered for the intent earlier) and you should see that it was interpreted as the expected intent. It's useful to note the confidence percentage here, as this will be used shortly.
-![]()
+
If the test returns an error, please review the Lex settings that you used to configure the interpreter.
@@ -96,7 +96,7 @@ The following steps presume that that you are working with the default conversat
In your scenario, locate the "Welcome Turn" within the "Welcome Conversation". By default this turn includes a single application request intent, and a single user response intent which matches the user clicking the default "OK" button. Add a second user response intent here to match the `newIntent` intent that was trained in Lex.
-![]()
+
It's important to note that the confidence level for the intent should be less than what was returned in our test. If Lex interprets an intent with a confidence lower than our threshold, OpenDialog will disregard it.
@@ -108,10 +108,10 @@ Now that the interpreter is set on the intent, everything is in place see the Le
After the webchat widget loads, if you send a message such as "hello lex" (or whatever sample utterance(s) you entered for the intent earlier), you should see that the welcome message is re-sent to you. This means that OpenDialog successfully interpreted and matched the new Lex intent (if it didn't you'll get a no match error message).
-![]()
+
To the right, under "Context" and "User" you should see some new attributes that begin with "lex\_". These attributes provide you with data about any slot elicitation or intent confirmation that might be configured in Lex. In OpenDialog, an intent is modeled as a single user utterance, and any slot filling is performed by subsequent intents. Therefore if you'd like to make use of Lex's slot elicitation or intent confirmation, you will need to query these Lex attributes via [OpenDialog conditions](https://docs.opendialog.ai/developing-with-opendialog/conditions).
-![]()
+
Well done, you've now got your Lex bot integrated with your conversational application.
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/dialogflow-interpreter/google-dialogflow-interpreter/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/dialogflow-interpreter/google-dialogflow-interpreter/index.md
index 9d30490..3194b8c 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/dialogflow-interpreter/google-dialogflow-interpreter/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/dialogflow-interpreter/google-dialogflow-interpreter/index.md
@@ -6,11 +6,11 @@ title: Google Dialogflow interpreter
We can now create an interpreter in OpenDialog that will connect to that Dialogflow agent. On the "Interpreters Setup" page, select "Add new interpreter". Here you'll need to choose a unique name for the interpreter, enter the relevant language code, set your environment and paste your JSON key that we had just created in the previous step.
-![OpenDialog Interpreter Manager]()
+
Once you've filled in the details you will be able to run a connectivity test to ensure that the API key is working correctly.
-![Dialogflow Interpreter Configuration & Test]()
+
With a success message in place you are ready to start using intents in your conversation design.
@@ -18,7 +18,7 @@ With a success message in place you are ready to start using intents in your con
The Dialogflow management screen allows us to map Intents and/or Entities between OpenDialog and Dialogflow. What this means is that you can say things such as the intent calls "Example Intent" in OpenDialog should be compared with the intent called "Another Intent" in Dialogflow.
-![]()
+
This makes it simpler to reuse preexisting intents or entities without having to rename things.
@@ -26,7 +26,7 @@ This makes it simpler to reuse preexisting intents or entities without having to
The last step is to activate our interpreter so that we can use it from within scenarios.
-![]()
+
## Using the interpreter for an intent
@@ -34,26 +34,26 @@ Ok - let's try out our new NLU interpreter!
We will create two intents in Dialogflow. One for "I need help" and one for "I have a question".
-![Intents in Dialogflow]()
+
The intents just have some example phrases associated with them and nothing else. We will handle the rest from within OpenDialog.
We will create a new scenario and add two open turns in the Welcome Scene, with each turn handling one of the intents.
-![Welcome scene for Dialogflow example]()
+
-![Configuring an intent to use our DF Interpreter]()
+
The request intent from the user is set to use the Interpreter that we just created and we've set the confidence level to 60%.
The message is attached to the response intent.
-![Response to help request intent]()
+
## Preview
A quick try in our WebChat widget shows that our intent is being interpreter successfully by Dialogflow and providing a response.
-![]()
+
Now that we know how to handle intents using Dialogflow as an NLU interpreter let's take a look at how to use Dialogflow knowledge base to handle FAQ queries in our next section.
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/dialogflow-interpreter/google-dialogflow-knowledge-base/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/dialogflow-interpreter/google-dialogflow-knowledge-base/index.md
index ccfe922..7c80092 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/dialogflow-interpreter/google-dialogflow-knowledge-base/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/dialogflow-interpreter/google-dialogflow-knowledge-base/index.md
@@ -10,15 +10,15 @@ Follow more detailed instructions in the [knowledge bases how-to](https://cloud.
For this particular example, we'll create a delivery knowledge base. Navigate to the Knowledge Bases in Dialogflow and create a knowledge base that is a FAQ knowledge type. You may use the document attached below as your knowledge base for your delivery related questions and answers. Once you have uploaded the CSV and added a response, your Delivery knowledge base should be similar to the one shown below.
-[DeliveryKnowledgeBase.csv]()
+[DeliveryKnowledgeBase.csv](/files/deliveryknowledgebase.csv)
-![DialogFlow Knowledge Base Demo]()
+
## Mapping Intents
Now navigate back to the interpreters section in OpenDialog and select the Dialogflow interpreter that you had setup in the previous section. Once selected you will then need to adjust the intent mapping. The incoming user intent name is `intent.dialogflow.faq` and that should be mapped to the knowledge base intent as shown in the figure below. This mapping will convert any `Knowledge.KnowledgeBase.*` intent from Dialogflow intent the `intent.dialogflow.faq` intent in OpenDialog.
-![Mapping FAQ intents]()
+
## Testing the Interpreter
@@ -26,7 +26,7 @@ Now that the interpreter is configured to integrate with the Dialogflow knowledg
-
+
@@ -36,33 +36,33 @@ Now that you've configured and tested your Dialogflow interpreter using the Know
You can add an FAQ turn to any scene. In this example we are adding it to the Welcome scene. The welcome scene has a welcome turn with an app welcome message.
-![]()
+
Create a new turn in the called "FAQ".
-![]()
+
In this turn you'll create a single user request intent for the question and a single application response intent for the answer.
First add a user request intent to match `intent.dialogflow.faq` (_this is the intent OpenDialog generates when Dialogflow successfully matches a pair_). Your sample utterance can be anything, in this case we use `[faq_question].`
-![]()
+
It's important to note that the confidence level for the intent should be less than what was returned in our test. If FAQ interprets an intent with a confidence higher than our threshold, OpenDialog will disregard it. A general practice when working with the Dialogflow knowledge base is to set it to about 40%. After you've set up the intent, make sure to save it.
The intent that was just created captures the user's question. Let's now create an intent to return the answer to that question. Create an application response intent in the same turn.
-![]()
+
After you've saved the response intent, edit the message. Delete the text message and add a custom attribute message.
-
+
Then add`user.dialogflow_message`in your XML snippet within the attribute message tags. By default all attributes are stored in the `user` context, unless they are mapped in [expected attributes](https://docs.opendialog.ai/turns-and-intents#advanced-settings). The attribute `dialogflow_message` is created by OpenDialog and will contain the answer from the matched Dialogflow Knowledge Base pair.
-
+
Make sure to save the message.
@@ -74,4 +74,4 @@ After the webchat widget loads, if you send a message such as "how long will shi
You can keep trying this with other question-answer pairs that were included in your knowledge base.
-![]()
+
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/dialogflow-interpreter/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/dialogflow-interpreter/index.md
index 4f822e4..bd2c91b 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/dialogflow-interpreter/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/dialogflow-interpreter/index.md
@@ -14,18 +14,18 @@ Once you've created an agent follow the instructions here to generate an API key
1. Go to the settings of you Dialogflow agent and click on the project link to go to the Google Cloud project console
-![]()
+
2\. From within the Google Cloud console project go to the IAM & Admin > Service Accounts.
-![]()
+
3\. Create a service account and give it the Dialogflow API Admin role. You will need to give it an ID and then grant the Role as shown below.
-![Creating an service user for the Dialogflow API through the Google Cloud Console]()
+
4\. Click on the account just created, head to the Keys tab and create a JSON key which will generate a file and download it to your machine.
-![Generating a JSON key for Dialogflow API access]()
+
We will now use this JSON key in our next step when creating our Dialogflow interpreter in OpenDialog.
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/luis-interpreter/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/luis-interpreter/index.md
index 6884616..f4b7513 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/luis-interpreter/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/luis-interpreter/index.md
@@ -12,7 +12,7 @@ Please see [these steps](https://docs.microsoft.com/en-gb/azure/cognitive-servic
You can find the app ID by selecting "Manage" on the "Settings" page under "Application Settings" and "App ID".
-
+
@@ -23,7 +23,7 @@ You can find the app URL and subscription key in the "Manage" section on the "Az
* APP URL is the value next to "Endpoint URL"
* Subscription key next to "Primary Key"
-
+
## Creating the LUIS interpreter
@@ -31,7 +31,7 @@ Now you'll need to create the LUIS interpreter in OpenDialog. On the "Interprete
You'll then be able to input the app URL, app ID and subscription key that were found in the LUIS portal (the other fields can be left as default for now).
-
+
For the moment, you can ignore all the other settings. You can now save the interpreter by clicking on 'save configuration' and train the LUIS application.
@@ -41,7 +41,7 @@ You can train the LUIS application to understand intents from user input, as wel
In your LUIS application select "Build" to get to the intent listing screen, then select "Create" to add a new intent. For this example, add an intent called `intent.app.orderRequest`. This will be trained to understand a product order request from a user.
-
+
Once the intent is created you'll need to provide some training utterances. Add an utterance such as "I want to order cupcakes", along with some others. For each example, type it in the text field under "Example user input" and hit the enter key to add it.
@@ -49,13 +49,13 @@ Once added you'll want to highlight the product name (eg. "Cupcakes") to mark it
On the first time, select "View in entity pane", add a new "product" list entity. Then re-highlight the word, select the "product" entity and add the product name as new sublist.
-
+
This means that when this intent is interpreted, LUIS will attempt to extract the desired product too.
You can add as many training utterances and entities as you like.
-
+
Once you're happy with the training utterances and entities, click "Train" in the top right. The model may take a few seconds or minutes to train. Once it's complete click "Publish" and select the "staging" slot for now. This will make the latest trained version of your application available to OpenDialog.
@@ -67,13 +67,13 @@ In this example, LUIS has been trained to extract an entity called "product"; by
To demonstrate this, the interpreter can be configured to do so by setting up an entity mapping from the LUIS entity named "product" to the OpenDialog attribute "customer\_product". Once you've created the mapping, make sure to save it.
-
+
## Testing the interpreter
Now that the interpreter is configured to integrate with our LUIS application, it can be tested via the "Check Interpreter Setup" in the bottom right. Enter an utterance such as "i want to order cupcakes" and you should see that it was interpreted as the intent trained earlier. It's useful to note the confidence percentage here, as this will be used shortly.
-
+
If it matches the 'None' intent instead, then you'll need to review the training utterances that you provided in the LUIS application and make sure that they cover the utterance you tested. If you make a change in LUIS this will require you to re-train the model and re-publish it to the staging slot.
@@ -91,7 +91,7 @@ Now that you've configured and tested your LUIS interpreter you'll want to make
In your scenario, locate the "Welcome Turn" within the "Welcome Conversation". By default this turn includes a single application request intent, and a single user response intent which matches the user clicking the default "OK" button. Add a second user response intent here to match the `intent.app.orderRequest` intent that was trained in LUIS.
-
+
It's important to note that the confidence level for the intent should be less than what was returned in our test. If LUIS interprets an intent with a confidence lower than our threshold, OpenDialog will disregard it.
@@ -103,7 +103,7 @@ Now that the interpreter is set on the intent, everything is in place see the LU
After the webchat widget loads, if you send a message such as "i want to order cupcakes", you should see that the welcome message is re-sent to you. This means that OpenDialog successfully interpreted and matched the new LUIS intent (if it didn't you'll get a no match error message). To the right, under "Context" and "User" you should see a new "customer\_product" attribute with a value of "cupcakes". You can keep trying this with other entities that you trained LUIS for. Remember that if you update LUIS intents or entities, you'll need to re-train and re-publish the model.
-
+
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/openai-interpreter/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/openai-interpreter/index.md
index 42af346..4be04d1 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/openai-interpreter/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/openai-interpreter/index.md
@@ -10,7 +10,7 @@ This interpreter will return a single intent with the name of `OpenAIPrompt`. It
To use OpenAI's you'll need to [create an account](https://platform.openai.com/) with OpenAI. Once you are signed up, you'll need to [create an API key](https://platform.openai.com/api-keys) via the "API keys" screen. You'll need to keep note of the generated API key for the next step.
-![]()
+
*The API keys screen in OpenAI.*
@@ -18,7 +18,7 @@ To use OpenAI's you'll need to [create an account](https://platform.openai.com/)
In your OpenDialog application, navigate to the desired scenario, and then the "Interpret" screen. Click the blue "Add new interpreter" button to begin creating the new interpreter. You will then see the following screen where you can give the interpreter a name and configure it. You will need to select the OpenAI option under "Interpreter Type".
-![]()
+
*Creating an OpenAI interpreter in OpenDialog.*
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/qna-interpreter/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/qna-interpreter/index.md
index 2efca0a..86f6a61 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/qna-interpreter/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/available-interpreters/qna-interpreter/index.md
@@ -14,11 +14,11 @@ You can train the QnA knowledge base to understand questions from a user, and ma
In your QnA knowledge base select "Add QnA pair" to add a new question and answer pair. For this example, add a question of "What time do you open" with an answer of "We open at 9am Monday to Friday and 10am on Saturday. We are closed on Sundays.".
-
+
You can add as many training pairs as you like.
-
+
Once you're happy with the training pairs, click "Save and train" in the top right. The model may take a few seconds or minutes to train. Once it's complete click "Publish" and publish the knowledge base.
@@ -27,13 +27,13 @@ There are two key credentials to make note of after you publish your knowledge b
1. **APP URL** is the combination of the host URL (next to the "Host:" field) and the endpoint (next to "POST"), it will be something similar to "https://\[your-qna-service].azurewebsites.net/qnamaker/knowledgebases/\[id]/generateAnswer".
2. **Endpoint key** is found after "Authorization: EndpointKey".
-
+
## Create the QnA interpreter
Now you'll need to create the QnA interpreter in OpenDialog. On the "Interpreters Setup" page, select "Add new interpreter". Here you'll need to choose a unique name for the interpreter and select the QnA type. You'll then be able to input the app URL and endpoint key that were found in the previous step.
-
+
You can now save the interpreter.
@@ -41,7 +41,7 @@ You can now save the interpreter.
Now that the interpreter is configured to integrate with the QnA knowledge base, it can be tested via the "Check Interpreter Setup" in the bottom right. Enter an utterance such as "what time do you open in the morning" and you should see that it was interpreted as the intent trained earlier. It's useful to note the confidence percentage here, as this will be used shortly.
-
+
If it matches the 'None' intent instead, then you'll need to review the training pairs that you provided in the QnA knowledge base and make sure that they cover the utterance you tested. If you make a change in QnA this will require you to re-train the model and re-publish it.
@@ -61,19 +61,19 @@ In your scenario, locate the "Welcome Turn" within the "Welcome Conversation". B
Navigate to the "Welcome Scene" and create a new turn in the called "Q\&A".
-
+
In this turn you'll need to create a single user request intent for the question and a single application response intent for the answer.
First add a user request intent to match `intent.core.QnAQuestionMatched` (_this is the intent OpenDialog generates when QnA successfully matches a pair_).
-
+
It's important to note that the confidence level for the intent should be less than what was returned in our test. If Q\&A interprets an intent with a confidence lower than our threshold, OpenDialog will disregard it. After you've set up the intent, make sure to save it.
The intent that was just created captures the user's question, however an intent will also need to be created to return the answer to that question. Next create an application response intent in the same turn.
-
+
After you've saved the response intent, select it and click the yellow messages button in the action bar.
@@ -83,7 +83,7 @@ Click the yellow edit button in the top right of the autogenerated message to ed
At the bottom of the screen, update the text message contents to `{user.qna_answer}`. By default all attributes are stored in the `user` context, unless they are mapped in [expected attributes](https://docs.opendialog.ai/turns-and-intents#advanced-settings). The attribute `qna_answer` is created by OpenDialog and will contain the answer from the matched QnA pair.
-
+
Make sure to save the message.
@@ -95,6 +95,6 @@ After the webchat widget loads, if you send a message such as "what time do you
You can keep trying this with other question-answer pairs that you trained QnA for. Remember that if you update QnA pairs, you'll need to re-train and re-publish the model.
-
+
Well done, you've now got your QnA instance integrated with your conversational application.
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/index.md
index dbdba1d..992afd2 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/index.md
@@ -31,11 +31,11 @@ Additional steps are required to complete the integration set-up between OpenDia
Multiple Interpreters can exist within a single scenario, and each Interpreter can fulfil a different purpose. Every Interpreter you create will be shown as a card on the 'Interpret' landing page.
-
+
*Interpreters overview page*
-
+
*Adding a new interpreter page*
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/interpreter-orchestration/index.mdx b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/interpreter-orchestration/index.md
similarity index 91%
rename from src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/interpreter-orchestration/index.mdx
rename to src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/interpreter-orchestration/index.md
index 58b2be6..fc7bb0b 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/interpreter-orchestration/index.mdx
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/interpreter-orchestration/index.md
@@ -3,10 +3,7 @@ title: Interpreter Orchestration
description: Use OpenDialog Interpreter Orchestration to set a highest priority interpreter at different levels of your conversation.
---
-import Embed from '~/components/Embed.astro';
-
-
-![]()
+
@@ -43,7 +40,7 @@ With Interpreter Orchestration, you can do just this! The prioritisation drop do
The Interpreter Orchestration functionality can be accessed from the side panel of the conversation designer.
-![]()
+
To access the Interpreter Orchestration feature within the intents sidebar for a given scenario:
@@ -52,7 +49,7 @@ To access the Interpreter Orchestration feature within the intents sidebar for a
* Click 'Interpreter' from the side panel
* Choose the interpreter you would like to prioritise for that scenario
-![]()
+
This functionality can also be accessed from different component levels:
@@ -82,4 +79,8 @@ Through this, the process of intent matching is streamlined, and gives the desig
## How to use - video
-
+
+
+
+
+
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/troubleshooting-interpreters/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/troubleshooting-interpreters/index.md
index e0eaf31..115d4c4 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/troubleshooting-interpreters/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/interpreters/troubleshooting-interpreters/index.md
@@ -6,13 +6,13 @@ title: Troubleshooting interpreters
* Make sure that your knowledge base is working in the NLU service. E.g.
-  ![]()
+  
* Test your interpreter setup in OD. Note that success in OD doesn't mean that your knowledge base is working; you must check the previous step as well
- 
+ 
*Run interpreter test in OD*
@@ -20,13 +20,13 @@ title: Troubleshooting interpreters
* Make sure your intent names align and use the names as shown in the image and the documentation. Check that your answer intent has an attribute message per the documentation.
- ![]() 
+  
## Troubleshooting
Q: Everything seems to be working but I get an empty answer in my preview.
-
+
*Preview screen showing empty KB answer*
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/retrieval-augmented-generation/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/retrieval-augmented-generation/index.md
index c4ad5f5..12c4f9c 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/retrieval-augmented-generation/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/retrieval-augmented-generation/index.md
@@ -16,7 +16,7 @@ The OpenDialog RAG service allows you to
-![Flowchart showing the Retrieval Augmented Generation process: uploading documents, converting and vectorizing them, querying using prompting, and generating a response.]()
+
*Simplified diagram of the Retrieval Augmented Generation process*
@@ -48,7 +48,7 @@ To access the RAG service feature in your workspace:
* Create a new RAG service by using the Create language service button
:::
-![]()
+
*Access the ability to add a RAG service via the Language Services feature*
@@ -62,13 +62,13 @@ In some cases, throughout the product you might find that RAG services are refer
The
**RAG service settings** section allows you to name and provide a description for your RAG service to easily recognise it in the Language Services Dashboard. Once it is being used in your applications, you can also visualise the scenarios that are actively using this particular RAG service.
-
+
*Access the RAG service settings components via the left-hand menu*
The
**Topics** section allows you to define, manage, edit and test the main semantic topics of your RAG service.
-![]()
+
*The topics overview provides you with an overview of your different topics, and the ability to manage them*
@@ -78,7 +78,7 @@ To action the generation of responses based on your RAG service, you will need t
### Overview
-
+
*Overview of the steps within OpenDialog to setup and use a RAG service*
@@ -108,7 +108,7 @@ A knowledge string is a piece of syntax you will use to reference a specific RAG
#### Basic settings
-![]()
+
*From the Language Services dashboard, view your created RAG services or create a new one*
@@ -121,7 +121,7 @@ A knowledge string is a piece of syntax you will use to reference a specific RAG
* Click 'Create service' button to finish creating your service
:::
-![]()
+
*RAG service setup page*
@@ -149,7 +149,7 @@ Top K refers to the number of top results or items to retrieve during a search o
Once you have created your [RAG ](/opendialog-platform/interpreters-and-natural-language-understanding/language-services/retrieval-augmented-generation#rag)service setup, you will get taken to the [Topics](/opendialog-platform/interpreters-and-natural-language-understanding/language-services/retrieval-augmented-generation#topics) page. This page will be empty when first creating your service. You can start setting up your topics, by clicking on the Add topic button in the top right corner of the middle panel of your screen.
-![]()
+
*Select the 'Add topic' button from the top right hand corner of your screen*
@@ -163,7 +163,7 @@ Once you have created your [RAG ](/opendialog-platform/interpreters-and-natural-
* This will trigger the 'Add sources' section to appear
:::
-![]()
+
*Provide a name, description to your topic and create it by clicking on the create topic button*
@@ -177,7 +177,7 @@ Once you have created a topic, you can start adding your documents, data and inf
* Select the source type of your data
:::
-![]()
+
*Add your information sources to a topic using the 'Add source' dropdown*
@@ -192,7 +192,7 @@ Once you have selected text, the text upload modal will pop up. From here you ca
* Select 'Upload source' once you are finished
:::
-![]()
+
*From the URL uploader modal you can start to add in your URL's in the 'URL Source' field*
@@ -200,7 +200,7 @@ Once you have selected text, the text upload modal will pop up. From here you ca
To add a URL source, you first need to select the 'URL' option from the topic source drop down menu.
-![]()
+
*Select URL from the topic source dropdown menu*
@@ -208,13 +208,13 @@ Once you have selected 'URL' from the topic source dropdown, the URL upload moda
You also have the option to include exclusion ID's and Classes. These optional fields allow you to select parts of your URL that you would not like to be referenced. Then when your URL source is vectorised, these ID's and Classes will not be included.
-![]()
+
*Here you have the option to input any exclusion ID's and Classes for your URL source(s)*
Once you are happy with the URL\`s selected, you can click the 'Upload source' button to add them to your topic.
-![]()
+
*Click the 'Upload source' button to add your URL's to your topic*
@@ -243,13 +243,13 @@ The types of document that can be uploaded to your topic as a source are:
-![]()
+
*Select 'Document' from the topic source dropdown menu*
Once you have selected Document, the document upload modal will pop up. From here you can either click to upload a document of your choice, or you can drag and drop files onto the modal. You can upload multiple files at once if you wish to.
-![]()
+
*The document upload modal*
@@ -257,11 +257,11 @@ After you have selected the files that you want to upload, you can see them list
Once you are happy with the files selected, you can click the 'Upload source' button to add them to your topic.
-![]()
+
*Once you're happy with your uploaded documents, click 'Upload source'*
-![]()
+
*Once you have uploaded your document, you can see it in your topic sources table*
@@ -286,7 +286,7 @@ Your topic sources now need to be converted to their numerical representation, u
-
+
*Select your topic sources to start vectorisation*
@@ -308,7 +308,7 @@ Once you have vectorised your different topic sources for a given topic, you can
* View results - scroll down to see the full results
:::
-![]()
+
*Testing your knowledge service using the test panel*
@@ -316,7 +316,7 @@ Once you have vectorised your different topic sources for a given topic, you can
You can use your RAG service in your AI application by referencing it through a [knowledge string](/opendialog-platform/interpreters-and-natural-language-understanding/language-services/retrieval-augmented-generation#knowledge-strings) in other services, like LLM Actions. In order to do so, you need to retrieve or construct the relevant knowledge strings.
-![]()
+
*Syntax structure of a knowledge string*
@@ -363,7 +363,7 @@ In order to use the knowledge from within a specific RAG service to generate res
For more information on LLM actions, please check the [**LLM Actions**](/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions) section of the documentation.
:::
-
+
*Using the AboutCompany RAG service in an LLM action*
@@ -419,6 +419,6 @@ Your LLM action's response based on the RAG knowledge will be stored against an
-
+
*Reference your generated response via the output attribute*
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/azure/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/azure/index.md
index 3f51be4..cc2f3e2 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/azure/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/azure/index.md
@@ -6,7 +6,7 @@ title: Azure
Semantic Intent Classifiers allow you to integrate with a large language model provider, for example, Azure OpenAI, in order to allow your scenario to understand user input. It can be found under the Language Services section of your OpenDialog Workspace. Once you select 'Create new service' and subsequently 'Semantic Intent Classifier' you will then have the opportunity to create it. Select Azure OpenAI to start setting up your Azure OpenAI integration.
-![]()
+
*Setting up an OpenAI integration via OpenDialog*
@@ -30,7 +30,7 @@ To configure your Azure OpenAI LLM action you will need to provide the following
To set up your Azure OpenAI Semantic Intent Classifier, navigate to "Language services". Use the "Create new service" button to begin creating a new Language service. Next select the "Semantic Intent Classifier type".
-![]()
+
*Use the "Create an LLM action" button to set up a new OpenAI integration*
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/google-gemini/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/google-gemini/index.md
index ac762b2..0bd3f87 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/google-gemini/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/google-gemini/index.md
@@ -6,7 +6,7 @@ title: Google Gemini
Semantic Intent Classifiers allow you to integrate with a large language model provider, for example, Google Gemini, in order to allow your scenario to understand user input. It can be found under the Language Services section of your OpenDialog Workspace. Once you select 'Create new service' and subsequently 'Semantic Intent Classifier' you will then have the opportunity to create it. Select Google Gemini to start setting up your Gemini integration.
-![]()
+
*Setting up an OpenAI integration via OpenDialog*
@@ -30,7 +30,7 @@ To configure your Google Gemini Semantic Intent Classifier you will need to prov
To set up your Google Gemini Semantic Intent Classifier, navigate to "Language services". Use the "Create new service" button to begin creating a new Language service. Next select the "Semantic Intent Classifier type".
-![]()
+
*Use the "Create an LLM action" button to set up a new OpenAI integration*
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/index.mdx b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/index.md
similarity index 92%
rename from src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/index.mdx
rename to src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/index.md
index 33e3282..5ae7d95 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/index.mdx
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/index.md
@@ -3,14 +3,11 @@ title: Semantic Intent Classifier
description: OpenDialog's Semantic Intent Classifier provides a quick and easy way to enable natural language input within your bot, allowing you to interpret user utterances without training phrases.
---
-import Embed from '~/components/Embed.astro';
-
-
Interpreting a user's utterance is an important part of conversation design. It ensures your bot can understand what a user has said in natural language, understand whether it is a question about 'Policy' or 'Making a claim', and accurately match an intent. Conversations are non-linear and context-driven, meaning effective intent management and matching is integral to great conversation design.
[Try the OpenDialog digital concierge](https://opendialog.ai/opendialog-digital-concierge/)
-
+
*Classify intents and sub intents with an LLM using our Semantic intent classifier*
@@ -42,7 +39,7 @@ You can configure and test your Semantic Intent Classifier using our test panel
To create a Semantic Intent Classifier, first, add it as a Language Service from the Workspace Dashboard.
-
+
*You can begin creating a Semantic intent classifier from the Language services landing page*
@@ -117,7 +114,11 @@ A Semantic Intent Classifier Language Service has 4 main components:
### Overview
-
+
+
+
+
+
### Vocabulary
@@ -137,7 +138,7 @@ A question or statement that provides instructions to an AI system to generate a
To get started, create a Semantic Intent Classifier Language Service.
-
+
*Create a Semantic intent classifier and select your configuration settings*
@@ -198,7 +199,7 @@ If you change the name of a Language Service you are currently using, you will a
With your Language Service configured, you can begin creating Intents and sub-intents.
-
+
*Create intents, add sub intents and test as you go*
@@ -213,7 +214,7 @@ You can create an Intent and sub intents simultaneously by clicking '+ Add sub I
Every intent you create will be represented in a list, from latest to first created, and provide tools to let you manage your intents with ease.
-
+
*Editing and managing your intents is simple, quick and easy*
@@ -235,7 +236,7 @@ A persistent test panel is present in both the intent creation screen, and promp
OpenDialog also allows you to provide additional prompt information alongside your intents and their classification instructions. Within your prompt, you can also include `{attributes}`, define their values, and include custom output attributes.
-
+
*Providing additional prompt information will better support the operation of your language service*
@@ -277,7 +278,7 @@ The prompt configuration area also allows you to create Custom output attributes
After configuring your Language Service, Intents and Prompt, it's time to add an Interpreter to link your Language Service to a scenario.
-
+
*Create an interpreter, and select the Semantic intent classifier language service*
@@ -357,7 +358,7 @@ If this list is complete, you are ready to go.
Your Semantic Intent Classifier must be added to a `USER` intent within the conversation designer, by navigating through the corresponding conversation, scene, turn and intent where you wish to add it.
-![The opendialog conversation designer, showing an open side user intent side bar ]()
+
*Add your completed Semantic intent classifier to a user intent within the conversation designer*
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/openai/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/openai/index.md
index 3392402..1418109 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/openai/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/language-services/semantic-intent-classifier/openai/index.md
@@ -6,7 +6,7 @@ title: OpenAI
Semantic Intent Classifiers allow you to integrate with a large language model provider, for example, OpenAI, in order to allow your scenario to understand user input. It can be found under the Language Services section of your OpenDialog Workspace. Once you select 'Create new service' and subsequently 'Semantic Intent Classifier' you will then have the opportunity to create it. Select OpenAI to start setting up your OpenAI integration.
-![]()
+
*Setting up an OpenAI integration via OpenDialog*
@@ -28,7 +28,7 @@ If you are using your own credentials, unselect 'OpenDialog managed' and provide
To set up your OpenAI Semantic Intent Classifier, navigate to "Language services". Use the "Create new service" button to begin creating a new Language service. Next select the "Semantic Intent Classifier type".
-![]()
+
*Use the "Create an LLM action" button to set up a new OpenAI integration*
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/azure-openai/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/azure-openai/index.md
index 9b7b404..4856ed9 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/azure-openai/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/azure-openai/index.md
@@ -7,7 +7,7 @@ description: This section outlines how you can set up a LLM action using Azure O
LLM Actions allow you to integrate with a large language model provider, for example, Azure OpenAI. It can be found under the Integrate section of a specific scenario. Once you select 'Create an LLM action' you will then have the opportunity to create the LLM action of your choice. Select Azure OpenAI to start setting up your OpenAI integration.
-![]()
+
*Setting up an Azure OpenAI integration via OpenDialog*
@@ -45,7 +45,7 @@ OpenDialog validates that the referenced secret exists when you save the configu
To set up your Azure OpenAI LLM action, navigate to "Integrate", and select "LLM Actions" from the menu. Use the "Create an LLM action" button to set up a new LLM action.
-![]()
+
*Use the "Create an LLM action" button to set up a new Azure OpenAI integration*
@@ -55,7 +55,7 @@ After providing a name and a description for your LLM action, select "Azure Open
To use your Azure OpenAI LLM action in your scenario, you can add it to an intent in the Designer.
-![]()
+
*Select the desired intent in the designer and click "Add conditions, actions & attributes" to reveal the Action section*
@@ -63,7 +63,7 @@ When your scenario matches this intent, the prompts will be sent to the LLM and
To display the LLM's response text in your scenario, you will need to use the `llm_response` attribute (or any other desired output attributes) within a [message](/opendialog-platform/conversation-designer/message-design/message-editor). Within a message, create a new text block, set the text to `{llm_response}` and click "Save Message".
-![]()
+
*Create a text message using the LLM's response by using the `llm_response` attribute*
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/index.mdx b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/index.md
similarity index 92%
rename from src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/index.mdx
rename to src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/index.md
index edc4772..2e5fb68 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/index.mdx
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/index.md
@@ -3,14 +3,11 @@ title: LLM Actions
description: An LLM Action enables you to use LLMs to perform reasoning, generate text and feed that information back into your scenario in order to influence the next steps of the conversation.
---
-import Embed from '~/components/Embed.astro';
-
-
Using LLM Actions you have more fine-grained control over when and how to involve an LLM in your conversation since actions can be performed _after_ a user intent has been interpreted (by an OpenDialog interpreter) or _before_ a bot message was sent to the user. This enables you to influence the context of the conversation as best required by your scenario.
This section will help you to understand what an LLM action is, and how to configure and use it within your conversation.
-
+
*Generate content using specific instructions or perform reasoning that can inform decision-making within the conversation flow*
@@ -48,7 +45,7 @@ Amend and configure the behaviour of your LLM action using the test panel, ensur
LLM actions are an additional integration to the conversation designer and can be found under 'Integrate' within the sidebar menu.
-![The OpenDialog product showing where in the menu 'LLM actions' can be found]()
+
*You can find LLM Actions under 'Integrate' in the sidebar menu*
@@ -64,7 +61,11 @@ To access LLM actions:
## How to use
-
+
+
+
+
+
## Structure
@@ -77,7 +78,7 @@ LLM Actions have two main components:
Within the settings area, you can configure your engine, enter your prompt, apply any advanced settings and enter any safeguarding considerations.
-![]()
+
*Initial LLM Action set up, where you can choose a name, description, your preferred LLM engine and model*
@@ -108,7 +109,7 @@ Each requires a slightly different configuration.
:::danger
Note - you will need to enter the model used for Azure OpenAI, and this needs to match the deployment in Azure. If the model you entered does not match, you will get an error message when testing your action configuration\
\
-![]()
+
:::
#### When using a custom configuration
@@ -138,7 +139,7 @@ Within prompt configuration you will see two main areas:
Use the system prompt to specify how the LLM should respond. When creating a prompt, always ensure it is clear, specific, and concise. Provide context, avoid ambiguity, and define the desired output format.
-![]()
+
*Configure a system prompt that can be sent as instructions to the LLM*
@@ -148,11 +149,11 @@ _"You are a helpful car insurance assistant. The user will provide questions or
It is also possible to include [attributes](/core-concepts/contexts-and-attributes/about-attributes) within your system, for example:
-_"You are a helpful car insurance assistant. The user will provide questions or statements related to car insurance claims, and you will categorise their input. The user's vehicle is a \{vehicle\_type\}. Output whether the user is asking to make a claim (make\_claim), asking about the status of a claim (claim\_status) or an FAQ about a claim (claim\_faq). If none of the above, return an empty string."_
+_"You are a helpful car insurance assistant. The user will provide questions or statements related to car insurance claims, and you will categorise their input. The user's vehicle is a {vehicle\_type}. Output whether the user is asking to make a claim (make\_claim), asking about the status of a claim (claim\_status) or an FAQ about a claim (claim\_faq). If none of the above, return an empty string."_
-![]()
+
*A prompt containing attributes*
@@ -203,13 +204,13 @@ Setting a higher temperature will provide less probable words, leading to more v
This area allows you to configure specific aspects of your LLM’s behaviour. You can find these within the advanced expandable section under 'Prompt configuration'. OpenDialog automatically provides a default setting for most options, however you can adjust them to your preference, and see immediate cause and effect using the testing panel.
-
+
*Configure your LLM action in more detail using advanced settings*
#### **User prompt**
-The user prompt field allows you to provide a custom user prompt to the LLM. By default this field will contain `{utterance_text}` which means that the LLM will receive whatever text the user enters into Webchat. A custom user prompt allows you to constrain what is received by the LLM. You may choose to use attributes to provide a bespoke input, such as _"I work \{distance\}km away from my house"_. These attributes can be retrieved from form messages, button messages, interpreters or other actions. You can also choose to remove the user prompt completely. This means that no user input is sent to the LLM (besides any attributes in the system prompt). This can be useful if you want to generate text based solely on pre-defined instructions in your system prompt.
+The user prompt field allows you to provide a custom user prompt to the LLM. By default this field will contain `{utterance_text}` which means that the LLM will receive whatever text the user enters into Webchat. A custom user prompt allows you to constrain what is received by the LLM. You may choose to use attributes to provide a bespoke input, such as _"I work {distance}km away from my house"_. These attributes can be retrieved from form messages, button messages, interpreters or other actions. You can also choose to remove the user prompt completely. This means that no user input is sent to the LLM (besides any attributes in the system prompt). This can be useful if you want to generate text based solely on pre-defined instructions in your system prompt.
:::note
When a user prompt is specified in the advanced section, the user utterance within the test panel is replaced with the user prompt you entered.
@@ -219,13 +220,13 @@ When a user prompt is specified in the advanced section, the user utterance with
By defining output attributes, the LLM will be prompted to return data for each attribute. This allows you to retrieve granular data alongside standard response text. Each output attribute can also be coupled with an optional instruction. This instruction specifies how the LLM should attempt to populate the attribute. Any populated output attributes will be displayed in the testing panel after running a test of the action.
-![]()
+
*Specify attributes and use them within message design*
Output attributes are incredibly useful, and can be used to affect the conversational flow via conditions.
-![]()
+
*Add attributes in messages, and use an LLM to continue the conversation*
@@ -250,19 +251,19 @@ _The factors to consider here:_
Then we set some output attributes, for example:
-_\{can\_insure\_string\} either yes, no, unknown or unrelated_
+_{can\_insure\_string} either yes, no, unknown or unrelated_
-_\{follow\_up\_question\} if you need more info, this is what we should ask the user_
+_{follow\_up\_question} if you need more info, this is what we should ask the user_
-With these output attributes created and their values defined, we can now configure messages based on the circumstances of the user's application. If they can be insured, we can redirect to \{can\_insure\_string\}. If we need more information, we can redirect to the \{follow\_up\_question\} to gather more information.
+With these output attributes created and their values defined, we can now configure messages based on the circumstances of the user's application. If they can be insured, we can redirect to {can\_insure\_string}. If we need more information, we can redirect to the {follow\_up\_question} to gather more information.
-With these output attributes created and their values defined, we can now configure messages based on the circumstances of the users application. If they can be insured, we can redirect to \{can\_insure\_string\}. If we need more information, we can redirect to the \{follow\_up\_question\} to gather more information.
+With these output attributes created and their values defined, we can now configure messages based on the circumstances of the users application. If they can be insured, we can redirect to {can\_insure\_string}. If we need more information, we can redirect to the {follow\_up\_question} to gather more information.
-![]()
+
#### File Attribute
@@ -323,7 +324,7 @@ LLMs can sometimes be unpredictable without careful consideration. We highly rec
At OpenDialog, the safety of both our customers and your users is paramount; therefore, our LLM actions provide safeguarding tools to help meet both the criteria of your business and the expectations of your customers.
-
+
*Create safer LLM actions using OpenDialogs safeguarding tools and features*
@@ -351,7 +352,7 @@ Please note that the utterances and words added to the exclusion lists are consi
When creating your LLM action, the test panel will allow you to try the action, and see both the Inputs and the Outputs within a test. It's a great indicator of what you can expect from your action and provides a safe space to change and iterate the behaviour of your action. It's also worth noting that testing response text and attributes are not guaranteed to be the same when used in your scenario due to the inherent non-determinism of LLMs.
-
+
*The test panel will display what is sent to the LLM (Inputs), and what in turn is received from the LLM in return (Outputs)*
@@ -378,7 +379,7 @@ Any attributes that have had a manual value entered will no longer appear with a
#### Testing LLM Actions with Files
-![]()
+
*Files selected, but not uploaded*
@@ -388,7 +389,7 @@ Once the files have been uploaded, they will appear in the list of uploaded file
Once all selected files have been uploaded, the `Run LLM Test` button will become active again, and you can run a test along with the uploaded files, simulating user uploaded files.
-![]()
+
*2 files uploaded and ready to go*
@@ -396,7 +397,7 @@ Once all selected files have been uploaded, the `Run LLM Test` button will becom
This area shows the information received from the LLM based on the input data.
-
+
*When an LLM test is run, all outputs will be shown in the 'Outputs' section in the test panel window*
@@ -438,7 +439,7 @@ Token calculation varies based on the LLM you use and the specific model selecte
If files were uploaded and sent in the test, that will be indicated in the inspector, showing the name and type of file included along with the name of the file attribute referenced
-![]()
+
## Frequently asked questions
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/llm-action-analytics/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/llm-action-analytics/index.md
index 5518f4f..7f4bd70 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/llm-action-analytics/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/llm-action-analytics/index.md
@@ -4,7 +4,7 @@ title: LLM Action Analytics
Every LLM Action is logged and you can download those Logs directly from the action.
-![]()
+
*Aggregate and Detail LLM Action log data*
diff --git a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/openai/index.md b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/openai/index.md
index 1a5ce51..d0755ee 100644
--- a/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/openai/index.md
+++ b/src/content/docs/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions/openai/index.md
@@ -7,7 +7,7 @@ description: This section outlines how you can set up an LLM action using OpenAI
LLM Actions allow you to integrate with a large language model provider, for example, OpenAI. It can be found under the Integrate section of a specific scenario. Once you select 'Create an LLM action' you will then have the opportunity to create the LLM action of your choice. Select OpenAI to start setting up your OpenAI integration.
-![]()
+
*Setting up an OpenAI integration via OpenDialog*
@@ -44,7 +44,7 @@ OpenDialog validates that the referenced secret exists when you save the configu
To set up your OpenAI LLM action, navigate to "Integrate", and select "LLM Actions" from the menu. Use the "Create an LLM action" button to set up a new LLM action.
-![]()
+
*Use the "Create an LLM action" button to set up a new OpenAI integration*
@@ -54,7 +54,7 @@ After providing a name and a description for your LLM action, select "Open AI" a
To use your OpenAI LLM action in your scenario, you can add it to an intent in the Designer.
-![]()
+
*Select the desired intent in the designer and click "Add conditions, actions & attributes" to reveal the Action section*
@@ -62,7 +62,7 @@ When your scenario matches this intent, your LLM prompts will be sent to the lan
To display the LLM's response text in your scenario, you will need to use the `llm_response` attribute (or any other desired output attributes) within a [message](/opendialog-platform/conversation-designer/message-design/message-editor). Within a message, create a new text block, set the text to `{llm_response}` and click "Save Message".
-![]()
+
*Create a text message using the LLM's response by using the `llm_response` attribute*
diff --git a/src/content/docs/opendialog-platform/launching-your-application/index.mdx b/src/content/docs/opendialog-platform/launching-your-application/index.md
similarity index 88%
rename from src/content/docs/opendialog-platform/launching-your-application/index.mdx
rename to src/content/docs/opendialog-platform/launching-your-application/index.md
index 4ee7e15..05c050f 100644
--- a/src/content/docs/opendialog-platform/launching-your-application/index.mdx
+++ b/src/content/docs/opendialog-platform/launching-your-application/index.md
@@ -2,17 +2,15 @@
title: Launching your application
---
-import Embed from '~/components/Embed.astro';
-
## Publishing a single scenario to WebChat
To launch your conversational application using the OpenDialog WebChat on your website or application, start by activating the scenario. To do so, go to the 'Scenarios' page and click on the slider to set it to 'active'.
-![Active and draft scenarios]()
+
Next, go to Interface Settings under the Publish menu and click "Get embed code". Copy the embed code.
-
+
*Interface settings screen with open embed code window*
@@ -34,13 +32,18 @@ OpenDialog Aliases allow you to create a single point of reference for your WebC
An alias can map to any given scenario and therefore exists on the Workspace level. You can access the Aliases functionality from the Workspace Dashboard by expanding the 'Scenarios' drop down menu, where you can then find 'Aliases' in the Menu.
-![Screenshot of Alias homepage]()
+
*Access the Alias functionality via the Workspace Menu*
### How it works
-
+
+
+
+
+How to use Aliases in the OpenDialog Product
+
#### Creating an alias
@@ -48,7 +51,7 @@ To create an Alias you need an Alias name and a scenario.
The Alias name must follow certain rules: only lowercase letters can be used, and spaces must be replaced with underscores (\_). No numbers, symbols, or uppercase letters are allowed.
-![]()
+
*The Alias creation UI*
@@ -60,7 +63,7 @@ Once the Alias is created, an embedded WebChat code is created and provided.
Once an Alias is created it appears in the Alias tab of the workspace. To edit, click into the Alias, change the linked scenario, and click the "Update Alias" button.
-![Screenshot with UI to update an alias]()
+
*The Alias updating UI*
diff --git a/src/content/docs/opendialog-platform/monitoring-your-application/index.mdx b/src/content/docs/opendialog-platform/monitoring-your-application/index.mdx
index ab23357..ba6eec1 100644
--- a/src/content/docs/opendialog-platform/monitoring-your-application/index.mdx
+++ b/src/content/docs/opendialog-platform/monitoring-your-application/index.mdx
@@ -3,14 +3,15 @@ title: Monitoring your application
description: Use the OpenDialog Analyse feature to make informed decisions about the past, present and future of your conversational application.
---
-import { CardGrid, LinkCard } from '@astrojs/starlight/components';
+import { CardGrid } from '@astrojs/starlight/components';
+import CoverCard from '~/components/CoverCard.astro';
This section explains how to track user interactions with your conversational application and identify trends in project usage.
The OpenDialog Analyse dashboard provides a comprehensive view of recent interactions, a log of the latest messages, and a high-level summary of usage patterns over time.
-![]()
+
*The OpenDialog Analyse dashboard gives you an overview of the latest interactions with your application and a bird-eye overview of project usage over time.*
@@ -49,7 +50,7 @@ By visualising usage trends, you can see the evident uptake or downturn in the n
Analyse allows you to explore how your application has been performing. It is, therefore, part of the testing suite of a given scenario.
-![]()
+
*You can find Analyse, in the Test section of your scenario menu.*
@@ -69,9 +70,9 @@ To use the Analyse feature within OpenDialog, navigate to the 'Analyse' dashboar
Analyse has three main components: project usage, interaction logs, and message log table:
-
-
-
+
+
+
## **How to use**
@@ -80,7 +81,7 @@ Analyse has three main components: project usage, interaction logs, and message
The project usage functionality allows you to visualise project usage trends over time.
-![]()
+
*Expanded view of project use over the course of a week*
@@ -96,7 +97,7 @@ The list of interaction logs allow you to visualise a list of conversations had
In addition, you can use the date picker on the top of the screen to select conversations for a specific date range, or search the interaction log for a specific user-ID thanks to the user-ID search field in the top right corner.
-![]()
+
*List of interaction logs*
@@ -112,7 +113,7 @@ You can click through each item in the interaction log list to visualise its det
### Message log table
-![]()
+
*List of message logs*
@@ -176,7 +177,7 @@ Displays the actual content of the message, either from the user or the system.
#### **Filtering Messages**
-![]()
+
*By using the breadcrumb filter, you can narrow down you search by conversation, scene, turn and intent*
@@ -210,7 +211,7 @@ The detailed conversational logs for each item in the interaction logs are compo
* The conversational flow visualisation
* The conversational logic logs
-
+
*Detailed conversation log, including user information, conversational history, conversational flow visualization, and conversational logic.*
diff --git a/src/content/docs/opendialog-platform/previewing-your-application/index.md b/src/content/docs/opendialog-platform/previewing-your-application/index.md
index 395d264..2fbe889 100644
--- a/src/content/docs/opendialog-platform/previewing-your-application/index.md
+++ b/src/content/docs/opendialog-platform/previewing-your-application/index.md
@@ -4,7 +4,7 @@ title: Previewing your application
Within OpenDialog you can preview any Webchat application so you can test and validate the conversational experience before deploying your application.
-![]()
+
*Default conversation design view*
@@ -12,7 +12,7 @@ In the sidebar, hover on Test and click on Preview to interact with the preview
### Functionality
-![]()
+
*Preview screen*
@@ -34,11 +34,11 @@ The preview console panel includes:
When clicking in the Considered Path, a larger version of the considered path is displayed, and an option to view the selected path (circles with green border), the non-selected paths (circles with red border) and an explanation for both selected and rejected paths.
-![]()
+
*Considered Path*
-![]()
+
*Selected Path*
@@ -59,6 +59,6 @@ To test this within the preview, for a returning user, we would type in `seconds
* **Search & Filter:** Easily search for attributes or their values within the context.
* **Attribute Details:** Hover over any attribute to view detailed information.
-![]()
+
Note: in general no further action needs to be taken to set the custom attribute. Specifically for `seconds_since_last_seen` we need to refresh the whole page. Do not click Refresh Scenario as this resets the entire context, including the value we just defined.
diff --git a/src/content/docs/opendialog-platform/translating-your-application/index.md b/src/content/docs/opendialog-platform/translating-your-application/index.md
index 20a0337..b7c3f0d 100644
--- a/src/content/docs/opendialog-platform/translating-your-application/index.md
+++ b/src/content/docs/opendialog-platform/translating-your-application/index.md
@@ -9,7 +9,7 @@ OpenDialog Translate is currently in Alpha release. If translation is something
This section outlines how to translate your conversational application's content and how to update your conversational application accordingly.
-
+
*OpenDialog Translate lets you auto-translate and share your content strings as a spreadsheet with your translators.*
@@ -45,7 +45,7 @@ By viewing the number of missing strings for each language, you get a clear unde
Translate allows you to manage your content for multilingual use in your conversational application. In addition, the Translate feature provides a Multilingual Dashboard to manage translation workflows and status. It is, therefore, a separate section in the scenario menu.
-![]()
+
*The Translate dashboard can be accessed via the main scenario menu.*
@@ -63,7 +63,7 @@ If you are familiar with Translate, you can also directly start using the Transl
* Click on the three-dotted menu in the Scenario Card
* Start the translation process by selecting 'Export for translation'
-![]()
+
*Export your content strings for translation directly from the Scenario Overview page*
@@ -91,7 +91,7 @@ A
**target language** is one of the languages
You first need to export your original content for translation. The content will be exported to a .csv file and sent to the email address you use to log in to OpenDialog.
-![]()
+
*Use the 'Export scenario' button to start the Translate process.*
@@ -105,7 +105,7 @@ The export modal has a checkbox that allows you to activate auto-translate for y
The auto-translate service will add an automatic translation of all your content strings to the exported file.
-![]()
+
*The export scenario for translation modal allows you to activate an automated translation service.*
@@ -115,7 +115,7 @@ When you are happy with your choices, you can confirm your export by clicking th
Head on over to your email inbox, where you will find the exported .csv file. You can find an example of what this looks like below.
-![]()
+
*.csv file after export*
@@ -141,7 +141,7 @@ The Translate dashboard provides an understanding, at a glance, of the completen
This is indicated in the language cards by the ratio of translated items to translatable items, the percentage ratio and the color of the progress bar.
-![]()
+
*The language cards in the 'Your translations' sections reflect the status of the completeness of your translations.*
@@ -151,11 +151,11 @@ Once you have imported your translation files, you can start testing your conver
To do so, expand the Test section in the main scenario menu, and select Preview. You will notice that a drop down is now available at the top of the Preview screen, allowing you to select the language you wish to test the bot in.
-![]()
+
*Preview set to English for this scenario by default*
-![]()
+
*The same scenario with Preview set to French*
diff --git a/src/content/docs/opendialog-platform/troubleshooting-and-common-problems/index.md b/src/content/docs/opendialog-platform/troubleshooting-and-common-problems/index.md
index ac0cd64..f8f07bd 100644
--- a/src/content/docs/opendialog-platform/troubleshooting-and-common-problems/index.md
+++ b/src/content/docs/opendialog-platform/troubleshooting-and-common-problems/index.md
@@ -4,7 +4,7 @@ title: Troubleshooting and Common Problems
Q: I get a "check your behavior" error in the player
-
+
A: Check that you don't have two of the same type of intents following one another, e.g. an app intent followed by an app intent.
@@ -12,7 +12,7 @@ Check that your components have the correct behavior, e.g. starting and open beh
Q: I created my intent in the conversation designer but I can't find it when I'm in a button block.
-![]()
+
A: Check that you defined the intent as a user intent. App intents won't show up since the button requires a user intent.
@@ -28,6 +28,6 @@ U: Confirm \[user clicks confirm. The system moves to the user intent that is in
A: Ok, great.... \[from the user intent, the system moves to the next app intent through the typical mechanisms (e.g. intent in same turn, transition, ...).
-
+
*Details of the button block and selection of user intent for each button*
diff --git a/src/content/docs/release-notes/release-notes/index.mdx b/src/content/docs/release-notes/release-notes/index.mdx
index 3202947..77ec894 100644
--- a/src/content/docs/release-notes/release-notes/index.mdx
+++ b/src/content/docs/release-notes/release-notes/index.mdx
@@ -4,7 +4,6 @@ description: Learn about our product's newest updates and enhancements that will
---
import { LinkCard } from '@astrojs/starlight/components';
-import Embed from '~/components/Embed.astro';
## August 2026
@@ -145,13 +144,13 @@ We've updated our internal authentication mechanism. You can now create more tha
For more information, see our [Public APIs documentation](/developing-with-opendialog/public-apis).
-![]()
+
####
Expandable messages for better user experience
Introducing expandable messages in webchat! You can now configure text messages to display with an "See more.." option, allowing users to see a preview initially and then expand to read the full content when needed. This is particularly useful for longer messages, helping keep your chat interface clean while still providing access to detailed information when users need it.
-
+
For more information, see our [Text Message](/opendialog-platform/conversation-designer/message-design/message-types/text-message) page.
@@ -164,7 +163,7 @@ We've significantly enhanced our webhook action security with new authentication
These improvements give you more control over how OpenDialog securely communicates with your external services.
-
+
Check our [documentation on attribute filters](/core-concepts/contexts-and-attributes/attribute-filters) for newly available filters.
@@ -188,7 +187,7 @@ Small note that you can use any type of file with Gemini. For Claude and OpenAI
In addition, we've added nice UI to our testing panel to make file upload experience even more smoother.
-![]()
+
Note: For file upload in LLM actions, contact us at [hello@opendialog.ai](mailto:hello@opendialog.ai) to enable this feature on demand.
@@ -207,9 +206,9 @@ This new release includes numerous technical improvements to ensure OpenDialog o
-![]()
+
-![]()
+
@@ -233,9 +232,9 @@ Read more in [our docs here](/developing-with-opendialog/public-apis/knowledge-s
-![]()
+
-![]()
+
@@ -254,7 +253,7 @@ For more details - check out [our documentation](/tutorials/use-knowledge-source
####
New webhook action
-![]()
+
#### New Features and Updates
@@ -304,7 +303,7 @@ For more information, look at [our documentation here](/core-concepts/the-opendi
We now have a brand new security tab for webchat interface settings which allows you to fine-tune your security requirements to validate anonymous access to the webchat, CSRF settings and specify authorized domains from which webchat should be accessible.
-![]()
+
####
Whatsapp and SMS integration
@@ -318,11 +317,11 @@ _Note_: currently this feature is available on-demand, so if you want to try it
-![]()
+
-![]()
+
-![]()
+
@@ -369,7 +368,7 @@ We made our scenario visualizer in preview and analyse a bit more convenient and
* More information about run actions;
* Actions and conditions are now clickable and take you to where they are defined
-![]()
+
####
Improvements
@@ -389,15 +388,15 @@ We made our scenario visualizer in preview and analyse a bit more convenient and
To enhance clarity regarding conditions and actions tied to specific intent within Conversation Designer, we are rolling out an update that will visibly mark intent cards when they contain associated action or condition. Additionally, we've incorporated straightforward edit links directly on the interface of each intent card for immediate access to thisi elements:
-![]()
+
-![]()
+
####
Security updates
This release includes several important security updates. One of them being a stricter password policy. If your current password does not meet new strength criteria, upon next login you'll be prompted to reset it in accordance with these updated guidelines:
-![]()
+
####
Improvements
@@ -415,7 +414,7 @@ This release includes several important security updates. One of them being a st
The first update for this month is a new sidebar item "Tutorials" featuring various how-to guides. We've added this enhancement to improve your learning experience, allowing you to access our learning videos, documentation links, and additional resources all in one convenient place.
-![]()
+
####
API for pre-populating user context for full-page webchat
@@ -444,7 +443,7 @@ Setting custom attributes to test specific paths of your conversation has also b
For more information, please [see the docs](/opendialog-platform/previewing-your-application).
-![]()
+
####
Improvements
@@ -477,7 +476,7 @@ We are wrapping up this year with some user experience improvements and clearing
We are delighted to present a tracker for your vectorisation usage restrictions. Each Topic page now features a progress bar that shows the number of jobs currently in progress and updates each time you add new items to the queue until you reach the quota. This should help you better understand how many jobs you can have per topic at any given time.
-![]()
+
*Capacity tracker for vectorisation quotas*
@@ -498,7 +497,7 @@ Does it sometimes feel like it takes ages for the AI Agent to reply and you are
**Introducing...OpenDialog's interactive wait time indicator.**
-![]()
+
*OpenDialog's interactive wait time indicator*
@@ -626,7 +625,7 @@ We've been busy tidying up our product and making a lot of improvements and bug
* Allow free input for standart autocomplete
* Support for cancel functionality for different message types
-And much more :tada:
+And much more 🎉
## June 2024
@@ -636,7 +635,7 @@ And much more :tada:
* Added [new location attribute](https://docs.opendialog.ai/core-concepts/contexts-and-attributes/about-attributes#location-attribute)
* Added support for GPT-4o model
-Plus various bugfixes and improvements :tada:
+Plus various bugfixes and improvements 🎉
## May 2024
@@ -720,7 +719,11 @@ Notable updates:
## December 2023 - Proxima
-
+
+
+
+
+
####
New Features
diff --git a/src/content/docs/tutorials/add-a-new-topic-of-discussion/index.mdx b/src/content/docs/tutorials/add-a-new-topic-of-discussion/index.md
similarity index 94%
rename from src/content/docs/tutorials/add-a-new-topic-of-discussion/index.mdx
rename to src/content/docs/tutorials/add-a-new-topic-of-discussion/index.md
index 791cae2..d7ff54b 100644
--- a/src/content/docs/tutorials/add-a-new-topic-of-discussion/index.mdx
+++ b/src/content/docs/tutorials/add-a-new-topic-of-discussion/index.md
@@ -3,9 +3,6 @@ title: Adding a new topic of discussion
description: Let's expand your AI Agent's capabilities by introducing a new topic of discussion.
---
-import Embed from '~/components/Embed.astro';
-
-
## Introduction
Adding new topics of discussion allows your AI agent to answer questions and engage in conversations beyond the initial scope, creating a more dynamic and comprehensive user experience. Let’s walk through the process of adding a new topic to your AI agent.
@@ -18,11 +15,16 @@ So that an AI Agent can correctly handle a new topic of discussion, we must make
* Contextualise the user query & advance the conversation process : this happens via the Conversation Design
* Generate a relevant response, statically or dynamically based on a knowledge source: this happens through a combination of a RAG service, LLM Actions and Message Design.
-
+
## **See it in action**
-
+
+
+
+
+Tutorial video on how to add a new topic of discussion
+
## **Step-by-step guide**
@@ -84,7 +86,7 @@ With the new intent in place in the semantic classifier, it’s time to set up h
Now is a good time to explore the OpenDialog conversation engine model in a bit more detail.
-
+
*Breakdown of the OpenDialog model*
@@ -146,21 +148,21 @@ Now let’s look at how to add an additional topic to your free-from conversatio
To set up your new topic of discussion, we are going to use this pre-existing scene as a template and copy it. Now, let’s duplicate this topic’s scene to create a base for your new topic, for example “AboutCompany”.
-![]()
+
*Duplicating a scene.*
We are now going to customise the duplicated scene to match your new topic of discussion. This customization ensures the AI Agent responds in context, providing relevant answers to questions about the company.
-![]()
+
Navigating downward in the architecture of your AI Agent, you will also need to update the name and description settings for your turn, so they reflect that these are related to your new topic of discussion.
-![]()
+
Once the turn level is edited, it is now time to update the intent for your new topic of discussion. This is where the rubber hits the road as we need to ensure the conversation design matches up with the semantic classification. You do this by updating the language service intent that the interpreter references in the intent settings panel of your conversation design. This will allow the AI Agent to process and respond to queries in the desired way.
-![]()
+
#### **Responding to a user query : Message Design**
diff --git a/src/content/docs/tutorials/adding-a-structured-conversation/index.mdx b/src/content/docs/tutorials/adding-a-structured-conversation/index.md
similarity index 96%
rename from src/content/docs/tutorials/adding-a-structured-conversation/index.mdx
rename to src/content/docs/tutorials/adding-a-structured-conversation/index.md
index 6d79f7a..c47642f 100644
--- a/src/content/docs/tutorials/adding-a-structured-conversation/index.mdx
+++ b/src/content/docs/tutorials/adding-a-structured-conversation/index.md
@@ -3,9 +3,6 @@ title: Adding a structured conversation
description: Let's add a structured conversation flow to your AI Agent.
---
-import Embed from '~/components/Embed.astro';
-
-
Now that your AI Agent has become proficient at handling different topics of discussion, let's see how we can add a more structured type of conversation in the mix.
:::note
@@ -26,7 +23,12 @@ To do this, we will need to :
-
+
+
+
+
+Add a structured conversation thanks to OpenDialog's unique model
+
## Step-by-step guide
@@ -85,7 +87,7 @@ A scene for a process conversation contains the following components:
* The expected user requests - represented in respective **response turns** each - led by primary USER intents
* Supporting turns - led by secondary USER intents (including Help, TalktoHuman, NoMatch, etc.)
-![]()
+
*A template scene with it's different turn components*
@@ -256,4 +258,4 @@ Wait a minute! Now that the process is in place, we still need to link it up to
That's it - your are all set. Now, when the BookAppointment topic will be matched through semantic classification, the AI Agent will transition to the BookAppointment process rather than providing a one-off response.
-
+
diff --git a/src/content/docs/tutorials/ai-agent-creation-overview/index.mdx b/src/content/docs/tutorials/ai-agent-creation-overview/index.mdx
index 3288a3e..cc7394c 100644
--- a/src/content/docs/tutorials/ai-agent-creation-overview/index.mdx
+++ b/src/content/docs/tutorials/ai-agent-creation-overview/index.mdx
@@ -4,7 +4,6 @@ description: Learn how to create a fully functional AI Agent including semantic
---
import { Steps } from '@astrojs/starlight/components';
-import Embed from '~/components/Embed.astro';
Follow the steps in the video tutorials below to create your AI Agent one step at a time, or click the links to read through the detailed instructions of each section.
@@ -17,7 +16,12 @@ Follow the steps in the video tutorials below to create your AI Agent one step a
-
+
+
+
+
+ Get started with a Quickstart AI Agent
+
2. ### [Add a new topic of discussion](/tutorials/add-a-new-topic-of-discussion)
@@ -26,7 +30,12 @@ Follow the steps in the video tutorials below to create your AI Agent one step a
-
+
+
+
+
+ Add a new topic of discussion
+
3. ### [Add & use knowledge sources via RAG](/tutorials/use-knowledge-sources-via-rag)
@@ -35,7 +44,12 @@ Follow the steps in the video tutorials below to create your AI Agent one step a
-
+
+
+
+
+ Add a knowledge source & use it in your conversation design
+
4. ### [Add a structured process conversation](/getting-started-1/quick-start-ai-agents/a-process-handling-ai-agent)
@@ -44,7 +58,12 @@ Follow the steps in the video tutorials below to create your AI Agent one step a
-
+
+
+
+
+ Easily add a structured conversation thanks to OpenDialog's scalable model.
+
5. ### [Add a 3rd party integration](/tutorials/integrate)
@@ -53,7 +72,12 @@ Follow the steps in the video tutorials below to create your AI Agent one step a
-
+
+
+
+
+ Add a 3rd party integration
+
6. ### [Test and tweak your AI agent](/tutorials/test-and-tweak-your-ai-agent)
@@ -62,7 +86,12 @@ Follow the steps in the video tutorials below to create your AI Agent one step a
-
+
+
+
+
+ Follow along to go through the different steps to debug your AI Agent's experience
+
7. ### [Publish your AI agent](/tutorials/publish-your-ai-agent)
@@ -71,6 +100,11 @@ Follow the steps in the video tutorials below to create your AI Agent one step a
-
+
+
+
+
+ Publish your AI Agent walkthrough
+
diff --git a/src/content/docs/tutorials/integrate/index.mdx b/src/content/docs/tutorials/integrate/index.md
similarity index 91%
rename from src/content/docs/tutorials/integrate/index.mdx
rename to src/content/docs/tutorials/integrate/index.md
index 4e7396e..a72226d 100644
--- a/src/content/docs/tutorials/integrate/index.mdx
+++ b/src/content/docs/tutorials/integrate/index.md
@@ -3,9 +3,6 @@ title: Add a 3rd party integration
description: Let's enhance your AI Agent with access to 3rd party data.
---
-import Embed from '~/components/Embed.astro';
-
-
## Introduction
Throughout the course of a conversation, we may want to communicate with systems outside of OpenDialog to send or receive data. This may be as simple as a "ping" to a URL representing a milestone in the user's journey, or an integration with an external data source which takes some input data from the conversation, and outputs some new data to return to the conversation.
@@ -32,7 +29,12 @@ For some more details around the data structures you can use please see the [Int
-
+
+
+
+
+A step by step guide to add an integration between OpenDialog and a 3rd party application
+
## Step by step guide
@@ -48,7 +50,7 @@ Once you have a service that provides the desired functionality, it's time to cr
* Click on Create a new webhook integration
:::
-
+
*Navigate to the webhook action screen*
@@ -69,7 +71,7 @@ _For this tutorial, we will be using a mock webhook example, available through P
`https://af7df53c-9871-40de-a454-31d5cf2d6237.mock.pstmn.io/your-webhook-endpoint`
:::
-![]()
+
*A webhook action*
@@ -86,7 +88,7 @@ Now, we can set up the input and output attributes we want to send and retrieve
For more information on attributes, check out the documentation on attributes [here](/core-concepts/contexts-and-attributes/about-attributes).
-![]()
+
*Adding attributes to your action*
@@ -126,7 +128,7 @@ Using the examples as listed in the instructions - the action we have set up wil
Now, we can test our action by providing values against the input attributes, and check the result the webhook action comes back with.
-![]()
+
*Testing a webhook action*
@@ -175,7 +177,7 @@ To execute the action at a particular moment in the conversation, we need to add
With your action set up and your intent selected, let's set them up to work together!
-
+
*Adding an action to an intent*
@@ -204,13 +206,13 @@ You can use the value of output attributes from your action in your messages, to
* Click the Edit icon on the message card
* Locate the text block
* Locate the place in your message where you want to add the information from output attribute
-* Type an opening curly brace \{ to access the attribute autocomplete field
+* Type an opening curly brace { to access the attribute autocomplete field
* Start typing the name of your output attribute, for example full\_name
* Select the desired attribute from the dropdown, in our case: full\_name
* Scroll back up to the top of the page
* Click “Save Message”
:::
-![]()
+
You have now succesfullly added an integration to your scenario, and used it's output in your messages!
diff --git a/src/content/docs/tutorials/publish-your-ai-agent/index.mdx b/src/content/docs/tutorials/publish-your-ai-agent/index.md
similarity index 91%
rename from src/content/docs/tutorials/publish-your-ai-agent/index.mdx
rename to src/content/docs/tutorials/publish-your-ai-agent/index.md
index 2ab4e10..90b83f8 100644
--- a/src/content/docs/tutorials/publish-your-ai-agent/index.mdx
+++ b/src/content/docs/tutorials/publish-your-ai-agent/index.md
@@ -3,9 +3,6 @@ title: Publish your AI Agent
description: Ready to launch your AI Agent?
---
-import Embed from '~/components/Embed.astro';
-
-
## Introduction
Now that you’ve built and refined your AI agent, it’s time to publish it on your website and let it engage with your users. OpenDialog makes this a simple two-step process using aliases, allowing you to easily manage and update your webchat without needing to change the underlying code.
@@ -18,7 +15,12 @@ In OpenDialog, an alias acts as a reference point for your WebChat widget. This
## See it in action
-
+
+
+
+
+Publishing an AI Agent
+
@@ -35,7 +37,7 @@ In OpenDialog, an alias acts as a reference point for your WebChat widget. This
* Click on ‘Create new alias’
:::
-
+
*Create a new alias by giving it a name and attributing a scenario*
diff --git a/src/content/docs/tutorials/test-and-tweak-your-ai-agent/index.mdx b/src/content/docs/tutorials/test-and-tweak-your-ai-agent/index.md
similarity index 95%
rename from src/content/docs/tutorials/test-and-tweak-your-ai-agent/index.mdx
rename to src/content/docs/tutorials/test-and-tweak-your-ai-agent/index.md
index 9761520..0b4a0a0 100644
--- a/src/content/docs/tutorials/test-and-tweak-your-ai-agent/index.mdx
+++ b/src/content/docs/tutorials/test-and-tweak-your-ai-agent/index.md
@@ -3,9 +3,6 @@ title: Test and tweak your AI Agent
description: Your AI Agent is almost ready to launch! Before you publish it, let’s make sure it’s optimised for the best user experience.
---
-import Embed from '~/components/Embed.astro';
-
-
## Introduction
While building out your AI agent, you have set up a number of components along the way that all contribute to it's success.
@@ -21,7 +18,12 @@ There are a few types of tests that you will want to run before launching your A
## See it in action
-
+
+
+
+
+Follow along to debug your AI Agent, step by step
+
## Step-by-step guide
@@ -38,7 +40,7 @@ In order to gain systematic improvements through quality assurance testing, ther
#### Example structure of a test sheet:
-
+
*Example of the setup of an AI Agent test sheet*
@@ -54,7 +56,7 @@ First and foremost, you will want to test your AI Agent as a whole in an experie
* View your AI Agent loading in the bottom left-hand corner of the central panel of your screen.
:::
-
+
*Preview your AI Agent and visualise it's interactions in real time*
@@ -70,7 +72,7 @@ Here is a quick overview of some of the primary issues you could encounter:
### **No-match**
-
+
*No classified intent got matched, and therefor the NoMatch intent gets triggered*
@@ -130,7 +132,7 @@ Once you have identified the issue with the semantic classification, you can sta
### **No messages found with passing conditions**
-
+
*A conversation that has a failing message due to conditions*
diff --git a/src/content/docs/tutorials/use-knowledge-sources-via-rag/index.mdx b/src/content/docs/tutorials/use-knowledge-sources-via-rag/index.md
similarity index 92%
rename from src/content/docs/tutorials/use-knowledge-sources-via-rag/index.mdx
rename to src/content/docs/tutorials/use-knowledge-sources-via-rag/index.md
index d83e2a5..a3434e8 100644
--- a/src/content/docs/tutorials/use-knowledge-sources-via-rag/index.mdx
+++ b/src/content/docs/tutorials/use-knowledge-sources-via-rag/index.md
@@ -3,9 +3,6 @@ title: Use knowledge sources via RAG
description: Let's enhance your AI Agent's knowledge with Retrieval Augmented Generation.
---
-import Embed from '~/components/Embed.astro';
-
-
## Introduction
Now, we obviously want our AI Agent to provide more relevant and precise information to our users than just the static response you provided as an example.
@@ -17,17 +14,22 @@ If you want to use dynamic responses, you will need to take a few additional ste
* Indicate to the AI Agent when to generate the response by referencing the LLM action on the correct response intent
* Adapt the AI Agent’s message to use the generated content by referencing the LLM action through an attribute in the message editor.
-
+
*From RAG to responses*
## **See it in action**
-
+
+
+
+
+Follow this video to add and use a knowledge source for RAG
+
## **Step by step guide**
-
+
*Overview of adding and using a knowledge service*
@@ -56,7 +58,7 @@ OpenDialog provides the ability to choose from multiple source types depending o
* Document: Upload relevant documents.
* Text: Manually enter text as a knowledge source.
-![]()
+
*Creating a vector topic*
@@ -66,7 +68,7 @@ OpenDialog provides the ability to choose from multiple source types depending o
> Static topics are ideal when the AI Agent needs access to the **entire, unmodified document**, such as schemas (XSD/JSON), API specifications, or configuration templates.
-![Creating a static topic]()
+
*Creating a static topic*
@@ -169,7 +171,7 @@ In order to use your new knowledge source in a response, you will need to accomp
Once in the LLM Actions overview, you’ll see prebuilt actions like “Topic Response Generator”, for example, which were automatically created to generate responses for your primary topic. We will be using this LLM action as a basis for our new LLM Action.
-Let’s have a look at what this “Topic Response Generator” LLM action looks like.
+Let’s have a look at what this “Topic Response Generator” LLM action looks like.
:::tip
**View a pre-existing LLM Action**
@@ -184,15 +186,15 @@ An LLM action is made up of 3 main components:
2 - the **prompt configuration** that provides the LLM with instructions, under the prompt configuration tab, and further settings that allow you to determine how the LLM response will be referenced thanks to output attributes.
-3 - **guardrails** to constrain the LLM responses and configure their safety settings, under the safeguarding tab.
+3 - **guardrails** to constrain the LLM responses and configure their safety settings, under the safeguarding tab.
In this initial guide, we are not going to dig any deeper into the preconfigured prompt configuration just yet. All you need to remember for now is that:
* A knowledge source gets referenced in prompt instructions using a knowledge string
* The knowledge string is used in the prompt instructions in a specific knowledge sections, indicated as follows: \
-* The LLM response that comes back when the action is run is saved in OpenDialog under an output attribute which by default is the \{llm\_response\} attribute
+* The LLM response that comes back when the action is run is saved in OpenDialog under an output attribute which by default is the {llm\_response} attribute
-For more information on how to structure prompt instructions for LLM Actions, you can take [a look at our further documentation](/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions).
+For more information on how to structure prompt instructions for LLM Actions, you can take [a look at our further documentation](/opendialog-platform/interpreters-and-natural-language-understanding/llm-actions).
For this initial setup, we will use the same configuration as the ‘Topic Response Generation’ LLM Action.
@@ -208,7 +210,7 @@ For this initial setup, we will use the same configuration as the ‘Topic Respo
Now let’s taylor our new LLM action and provide it with instructions to reference our newly setup knowledge source.
-👉🏻 You will also need the knowledge string you put aside earlier.
+👉🏻 You will also need the knowledge string you put aside earlier.
:::tip
**Editing an LLM Action**
@@ -221,7 +223,7 @@ Now let’s taylor our new LLM action and provide it with instructions to refere
_(\*) The same configuration of the LLM Action you have duplicated will apply. When selecting the OpenAI engine, the correct configuration will already be selected. You can use an OpenDialog-managed account, or use your own account credentials._
-Now, we are going to update the prompt instructions in order to adapt to the additional knowledge source you have just added.
+Now, we are going to update the prompt instructions in order to adapt to the additional knowledge source you have just added.
:::tip
**Updating prompt instructions**
@@ -262,7 +264,7 @@ You are all set! When your scenario matches this intent, your LLM prompts will b
### **Adapting the message: the LLM response attribute**
-To display the LLM's response text in your scenario, we will need to update its message in the message editor, to reference the \{llm\_response\} attribute. Remember, this is the attribute where the LLM’s response generated by your LLM action gets stored in OpenDialog.
+To display the LLM's response text in your scenario, we will need to update its message in the message editor, to reference the {llm\_response} attribute. Remember, this is the attribute where the LLM’s response generated by your LLM action gets stored in OpenDialog.
:::tip
**Updating your message to use the dynamically generated response**
@@ -272,7 +274,7 @@ To display the LLM's response text in your scenario, we will need to update its
* Click the Edit icon on the message card
* Locate the text block
* Delete the static message in the text block
-* Type an opening curly brace \{ to access the attribute autocomplete field
+* Type an opening curly brace { to access the attribute autocomplete field
* Start typing llm…
* Select the desired attribute from the dropdown, in our case: llm\_response
* Scroll back up to the top of the page
@@ -285,4 +287,4 @@ Your new knowledge source is now ready, and the AI Agent is set to generate info
Your additional topic is now live! With these steps, you can empower your AI Agent to handle a wider range of user questions while maintaining a smooth, relevant conversation flow. To add more additional topics, go back to the top of this guide, rinse and repeat!
-
+
diff --git a/src/sidebar.generated.mjs b/src/sidebar.generated.mjs
index 3285ebb..7dca877 100644
--- a/src/sidebar.generated.mjs
+++ b/src/sidebar.generated.mjs
@@ -17,6 +17,7 @@ export default [
},
{
"label": "Quick Start AI Agents",
+ "collapsed": true,
"items": [
{
"label": "Quick Start AI Agents",
@@ -28,6 +29,7 @@ export default [
},
{
"label": "The \"Start from Scratch\" AI Agent",
+ "collapsed": true,
"items": [
{
"label": "The \"Start from Scratch\" AI Agent",
@@ -105,6 +107,7 @@ export default [
"items": [
{
"label": "OpenDialog Approach",
+ "collapsed": true,
"items": [
{
"label": "OpenDialog Approach",
@@ -118,6 +121,7 @@ export default [
},
{
"label": "OpenDialog Platform",
+ "collapsed": true,
"items": [
{
"label": "OpenDialog Platform",
@@ -125,6 +129,7 @@ export default [
},
{
"label": "Scenarios",
+ "collapsed": true,
"items": [
{
"label": "Scenarios",
@@ -150,6 +155,7 @@ export default [
},
{
"label": "OpenDialog Account Management",
+ "collapsed": true,
"items": [
{
"label": "OpenDialog Account Management",
@@ -177,6 +183,7 @@ export default [
},
{
"label": "Contexts and attributes",
+ "collapsed": true,
"items": [
{
"label": "Contexts and attributes",
@@ -219,6 +226,7 @@ export default [
"items": [
{
"label": "Designing your application",
+ "collapsed": true,
"items": [
{
"label": "Designing your application",
@@ -226,6 +234,7 @@ export default [
},
{
"label": "Conversation Design",
+ "collapsed": true,
"items": [
{
"label": "Conversation Design",
@@ -233,6 +242,7 @@ export default [
},
{
"label": "Conversational Patterns",
+ "collapsed": true,
"items": [
{
"label": "Conversational Patterns",
@@ -244,6 +254,7 @@ export default [
},
{
"label": "Building robust assistants",
+ "collapsed": true,
"items": [
{
"label": "Building robust assistants",
@@ -273,6 +284,7 @@ export default [
},
{
"label": "Openings",
+ "collapsed": true,
"items": [
{
"label": "Openings",
@@ -294,6 +306,7 @@ export default [
},
{
"label": "Authentication",
+ "collapsed": true,
"items": [
{
"label": "Authentication",
@@ -315,6 +328,7 @@ export default [
},
{
"label": "Information collection",
+ "collapsed": true,
"items": [
{
"label": "Information collection",
@@ -340,6 +354,7 @@ export default [
},
{
"label": "Recommendations",
+ "collapsed": true,
"items": [
{
"label": "Recommendations",
@@ -361,6 +376,7 @@ export default [
},
{
"label": "Extended telling",
+ "collapsed": true,
"items": [
{
"label": "Extended telling",
@@ -382,6 +398,7 @@ export default [
},
{
"label": "Repair",
+ "collapsed": true,
"items": [
{
"label": "Repair",
@@ -407,6 +424,7 @@ export default [
},
{
"label": "Transfer",
+ "collapsed": true,
"items": [
{
"label": "Transfer",
@@ -428,6 +446,7 @@ export default [
},
{
"label": "Closing",
+ "collapsed": true,
"items": [
{
"label": "Closing",
@@ -455,6 +474,7 @@ export default [
},
{
"label": "Best practices ",
+ "collapsed": true,
"items": [
{
"label": "Best practices ",
@@ -474,6 +494,7 @@ export default [
},
{
"label": "User needs",
+ "collapsed": true,
"items": [
{
"label": "User needs",
@@ -519,6 +540,7 @@ export default [
},
{
"label": "The team",
+ "collapsed": true,
"items": [
{
"label": "The team",
@@ -540,6 +562,7 @@ export default [
},
{
"label": "Message Design",
+ "collapsed": true,
"items": [
{
"label": "Message Design",
@@ -575,6 +598,7 @@ export default [
},
{
"label": "Message Types",
+ "collapsed": true,
"items": [
{
"label": "Message Types",
@@ -642,6 +666,7 @@ export default [
},
{
"label": "Meta Messages",
+ "collapsed": true,
"items": [
{
"label": "Meta Messages",
@@ -667,6 +692,7 @@ export default [
},
{
"label": "Webchat Interface design",
+ "collapsed": true,
"items": [
{
"label": "Webchat Interface design",
@@ -694,6 +720,7 @@ export default [
},
{
"label": "Leveraging Generative AI",
+ "collapsed": true,
"items": [
{
"label": "Leveraging Generative AI",
@@ -701,6 +728,7 @@ export default [
},
{
"label": "Language Services",
+ "collapsed": true,
"items": [
{
"label": "Language Services",
@@ -708,6 +736,7 @@ export default [
},
{
"label": "Semantic Intent Classifier",
+ "collapsed": true,
"items": [
{
"label": "Semantic Intent Classifier",
@@ -743,6 +772,7 @@ export default [
},
{
"label": "Interpreters",
+ "collapsed": true,
"items": [
{
"label": "Interpreters",
@@ -750,6 +780,7 @@ export default [
},
{
"label": "Available interpreters",
+ "collapsed": true,
"items": [
{
"label": "Available interpreters",
@@ -769,6 +800,7 @@ export default [
},
{
"label": "Google Dialogflow",
+ "collapsed": true,
"items": [
{
"label": "Google Dialogflow",
@@ -810,6 +842,7 @@ export default [
},
{
"label": "LLM Actions",
+ "collapsed": true,
"items": [
{
"label": "LLM Actions",
@@ -841,6 +874,7 @@ export default [
},
{
"label": "3rd party Integrations in your application",
+ "collapsed": true,
"items": [
{
"label": "3rd party Integrations in your application",
@@ -848,6 +882,7 @@ export default [
},
{
"label": "Webhook action",
+ "collapsed": true,
"items": [
{
"label": "Webhook action",
@@ -863,6 +898,7 @@ export default [
},
{
"label": "[Deprecated] webhook actions",
+ "collapsed": true,
"items": [
{
"label": "[Deprecated] webhook actions",
@@ -878,6 +914,7 @@ export default [
},
{
"label": "Actions from library",
+ "collapsed": true,
"items": [
{
"label": "Actions from library",
@@ -903,6 +940,7 @@ export default [
},
{
"label": "Conversation Hand-off",
+ "collapsed": true,
"items": [
{
"label": "Conversation Hand-off",
@@ -959,6 +997,7 @@ export default [
},
{
"label": "WebChat",
+ "collapsed": true,
"items": [
{
"label": "WebChat",
@@ -986,6 +1025,7 @@ export default [
},
{
"label": "SDK",
+ "collapsed": true,
"items": [
{
"label": "SDK",
@@ -1013,6 +1053,7 @@ export default [
},
{
"label": "Public APIs",
+ "collapsed": true,
"items": [
{
"label": "Public APIs",
diff --git a/src/styles/custom.css b/src/styles/custom.css
index 6536133..07322a3 100644
--- a/src/styles/custom.css
+++ b/src/styles/custom.css
@@ -1,9 +1,26 @@
+/*
+ * Starlight's cascade layer order, restated.
+ *
+ * Starlight declares this in style/layers.css, but a layer's priority is fixed by where
+ * it FIRST appears, and Astro bundles this file ahead of Starlight's own stylesheets.
+ * Opening `@layer starlight.core` below without restating the order therefore registered
+ * starlight.core as the first — and so lowest-priority — layer, dropping it beneath
+ * starlight.reset. The reset's `* { margin: 0 }` then silently won against every margin
+ * Starlight sets in core: the search dialog's centring, the page title and description
+ * spacing, sidebar row gaps, and the 1.5rem rhythm between content blocks.
+ *
+ * This must stay the first statement in this file.
+ */
+@layer starlight.base, starlight.reset, starlight.core, starlight.content, starlight.components,
+ starlight.utils;
+
/*
* OpenDialog brand tokens for Starlight.
*
- * Colours and fonts are taken from opendialog.ai, not invented. The accent is the
- * brand blue #0023ff — hsl(232, 100%, 50%). Starlight's own default accent sits at
- * hue 234, so the brand blue is already close to the theme's tuned defaults.
+ * Colours are taken from opendialog.ai, not invented; the typefaces are taken from
+ * the GitBook docs site this replaces, which serves Poppins and IBM Plex Mono. The
+ * accent is the brand blue #0023ff — hsl(232, 100%, 50%). Starlight's own default
+ * accent sits at hue 234, so the brand blue is already close to the theme's defaults.
*
* The grey ramp keeps Starlight's lightness values, which are tuned for contrast,
* and shifts only hue and saturation onto OpenDialog's blue-tinted greys
@@ -12,12 +29,23 @@
* Starlight treats dark as the :root default and light as [data-theme='light'].
*/
-@import '@fontsource-variable/inter';
-@import '@fontsource/fragment-mono';
+/*
+ * Poppins and IBM Plex Mono are the faces the GitBook docs site serves. Only the
+ * latin subset is imported: the corpus uses 27 non-ASCII codepoints and every one
+ * is either inside latin's range or an emoji that falls back to the system face,
+ * exactly as it does on GitBook. Poppins also ships Devanagari, which nothing here
+ * needs. The corpus contains no bold italic, so 700-italic is not imported.
+ */
+@import '@fontsource/poppins/latin-400.css';
+@import '@fontsource/poppins/latin-400-italic.css';
+@import '@fontsource/poppins/latin-600.css';
+@import '@fontsource/poppins/latin-700.css';
+@import '@fontsource/ibm-plex-mono/latin-400.css';
+@import '@fontsource/ibm-plex-mono/latin-600.css';
:root {
- --sl-font: 'Inter Variable', 'Inter', sans-serif;
- --sl-font-mono: 'Fragment Mono', ui-monospace, monospace;
+ --sl-font: 'Poppins', sans-serif;
+ --sl-font-mono: 'IBM Plex Mono', ui-monospace, monospace;
/* Accent — dark mode. #0023ff is too dark against a dark background, so the
mid tone is lifted while the hue is held at the brand value. */
@@ -72,6 +100,250 @@
}
}
+/*
+ * GitBook's image wrapper divs.
+ *
+ * GitBook lays a wrapper div's figures out in a row: 12px gap, centred, each image at the
+ * width its author set, all shrinking together when the row would otherwise overflow.
+ * Starlight stacks them, because markdown.css sets `display: block` on every image in
+ * content. 13 of the 19 wrappers hold more than one figure — 31 images across 9 pages —
+ * and one of them rendered a 188px thumbnail at 720x1075.
+ *
+ * Having no class is what identifies these: every div Starlight emits into content has one
+ * (sl-heading-wrapper, card-grid, expressive-code). `:has(img)` then excludes the only
+ * other classless div in the corpus, the webchat SDK's mount point.
+ *
+ * `align="left"` means left, as on GitBook; a wrapper without it centres. Unlayered
+ * because the paragraph reset has to beat starlight.content, which outranks
+ * starlight.core.
+ */
+.sl-markdown-content div:not([class]):has(img) {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: flex-start;
+ justify-content: center;
+ gap: 0.75rem;
+}
+
+/*
+ * Above the mobile breakpoint a row that would overflow shrinks rather than wrapping,
+ * which is what GitBook does — its row of four 188px figures renders at 187.25 apiece
+ * rather than breaking to a second line. Below it, wrapping is the sane behaviour.
+ */
+@media (min-width: 50rem) {
+ .sl-markdown-content div:not([class]):has(img) {
+ flex-wrap: nowrap;
+ }
+}
+
+.sl-markdown-content div[align='left']:has(img) {
+ justify-content: flex-start;
+}
+
+/* Each figure — or bare image paragraph, where there is no caption — is one row item. */
+.sl-markdown-content div:not([class]):has(img) > p,
+.sl-markdown-content div:not([class]):has(img) > figure {
+ margin: 0;
+ min-width: 0;
+ flex: 0 1 auto;
+}
+
+/*
+ * An image the author sized keeps that width; an unsized one takes whatever is left,
+ * which is how GitBook fills a row mixing the two — a 374px figure beside an unsized one
+ * renders as 371 and 371 there. Only rehype-image-width sets a style attribute, so its
+ * absence is what marks an image as unsized.
+ */
+.sl-markdown-content div:not([class]):has(img) > p:has(img:not([style])),
+.sl-markdown-content div:not([class]):has(img) > figure:has(img:not([style])) {
+ flex: 1 1 0;
+}
+
+/*
+ * Figure captions.
+ *
+ * rehype-figures pairs each image with the caption beneath it. Markdown could only carry
+ * a caption as emphasis, so Starlight renders it as body-sized italic text aligned left;
+ * GitBook sets 12px, centred, roman, in a muted grey. Unlayered to beat starlight.content.
+ */
+.sl-markdown-content figure {
+ margin: 1.5rem 0;
+}
+
+.sl-markdown-content figcaption {
+ margin-top: 0.5rem;
+ font-size: 0.75rem;
+ line-height: 1rem;
+ text-align: center;
+ color: var(--sl-color-gray-3);
+}
+
+/*
+ * Video embeds.
+ *
+ * convert.mjs emits these as raw HTML rather than a component: an