You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/ai-services/language-service/conversational-language-understanding/how-to/build-schema.md
+32-30Lines changed: 32 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,34 +2,34 @@
2
2
title: How to build a Conversational Language Understanding project schema
3
3
titleSuffix: Azure AI services
4
4
description: Use this article to start building a Conversational Language Understanding project schema
5
-
author: jboback
5
+
author: laujan
6
6
manager: nitinme
7
7
ms.service: azure-ai-language
8
8
ms.topic: how-to
9
-
ms.date: 11/21/2024
10
-
ms.author: jboback
9
+
ms.date: 05/20/2025
10
+
ms.author: lajanuar
11
11
ms.custom: language-service-clu
12
12
---
13
13
14
14
# How to build your fine-tuning schema
15
-
16
-
In conversational language understanding projects, the *schema* is defined as the combination of intents and entities within your project. Schema design is a crucial part of your project's success. When creating a schema, you want think about which intents and entities should be included in your project.
15
+
16
+
In conversational language understanding projects, the *schema* is defined as the combination of intents and entities within your project. Schema design is a crucial part of your project's success. When creating a schema, think about which intents and entities should be included in your project.
17
17
18
18
## Guidelines and recommendations
19
19
20
20
Consider the following guidelines when picking intents for your project:
21
21
22
-
1. Create distinct, separable intents. An intent is best described as action the user wants to perform. Think of the project you're building and identify all the different actions your users may take when interacting with your project. Sending, calling, and canceling are all actions that are best represented as different intents. "Canceling an order" and "canceling an appointment" are very similar, with the distinction being *what* they are canceling. Those two actions should be represented under the same intent, *Cancel*.
23
-
24
-
2. Create entities to extract relevant pieces of information within your text. The entities should be used to capture the relevant information needed to fulfill your user's action. For example, *order* or *appointment* could be different things a user is trying to cancel, and you should create an entity to capture that piece of information.
22
+
1. Create distinct, separable intents. An intent is best described as action the user wants to perform. Think of the project you're building and identify all the different actions your users may take when interacting with your project. Sending, calling, and canceling are all actions that are best represented as different intents. "Canceling an order" and "canceling an appointment" are similar, with the distinction being *what* they're canceling. Those two actions should be represented under the same intent, *Cancel*.
23
+
24
+
1. Create entities to extract relevant pieces of information within your text. The entities should be used to capture the relevant information needed to fulfill your user's action. For example, *order* or *appointment* could be different things a user is trying to cancel, and you should create an entity to capture that piece of information.
25
25
26
-
You can *"send"* a *message*, *"send"* an *email*, or *"send"* a package. Creating an intent to capture each of those requirements will not scale over time, and you should use entities to identify *what* the user was sending. The combination of intents and entities should determine your conversation flow.
26
+
You can *"send"* a *message*, *"send"* an *email*, or *"send"* a package. Creating an intent to capture each of those requirements won't scale over time, and you should use entities to identify *what* the user was sending. The combination of intents and entities should determine your conversation flow.
27
27
28
-
For example, consider a company where the bot developers have identified the three most common actions their users take when using a calendar:
28
+
For example, consider a company where the bot developers identified the three most common actions their users take when using a calendar:
29
29
30
-
* Setup new meetings
31
-
* Respond to meeting requests
32
-
* Cancel meetings
30
+
* Setup new meetings
31
+
* Respond to meeting requests
32
+
* Cancel meetings
33
33
34
34
They might create an intent to represent each of these actions. They might also include entities to help complete these actions, such as:
35
35
@@ -43,57 +43,59 @@ To build a project schema within [AI Foundry](https://ai.azure.com):
43
43
44
44
1. Select **Define schema** from the left side menu.
45
45
46
-
2. From the top pivots, you can change the view to be **Intents** or **Entities**.
46
+
1. From the top pivots, you can change the view to be **Intents** or **Entities**.
47
+
48
+
1. To create an intent, select **+ Add intent**. You're prompted to type in names and descriptions for as many intents as you'd like to create. Descriptions are only required for using Quick Deploy to help Azure OpenAI better understand the context of your intents.
49
+
50
+
1. Repeat the steps to develop intents that encompass all the actions the user is likely to perform while interacting with the project.
47
51
48
-
3. To create an intent, select **+ Add intent**. You will be prompted to type in names and descriptions for as many intents as you'd like to create. Descriptions are only required for using Quick Deploy to help Azure OpenAI better understand the context of your intents.
49
52
50
-
4. Repeat the above step to create all the intents to capture all the actions that you think the user will want to perform while using the project.
51
53
52
54
:::image type="content" source="../media/build-schema-page.png" alt-text="A screenshot showing the schema creation page for conversation projects in Language Studio." lightbox="../media/build-schema-page.png":::
53
55
54
-
5. If you'd like to continue with [data labeling](tag-utterances.md) and advanced training a custom CLU model, you can select **Manage data** from the left side menu to add examples for intents and label them with entities, if desired.
55
-
56
+
1. If you'd like to continue with [data labeling](tag-utterances.md) and advanced training a custom `CLU` model, you can select **Manage data** from the left side menu to add examples for intents and label them with entities, if desired.
57
+
56
58
## Add entities
57
59
58
60
1. Move to **Entities** pivot from the top of the page.
59
61
60
-
2. To add an entity, select **+ Add entity** from the top. You will be prompted to type in a name to create the entity.
62
+
1. To add an entity, select **+ Add entity** from the top. You're prompted to type in a name to create the entity.
61
63
62
-
3. After creating an entity, you can select the entity name to change the **Entity components** type. Every entity can be defined by multiple components: learned, list, regex, or prebuilt. A learned component is added to all your entities once you label them in your utterances.
64
+
1. After creating an entity, you can select the entity name to change the **Entity components** type. Multiple components—learned, list, regex, or prebuilt—define every entity. A learned component is added to all your entities once you label them in your utterances.
63
65
64
66
:::image type="content" source="../media/entity-details.png" alt-text="A screenshot showing the entity details page for conversation projects in Language Studio." lightbox="../media/entity-details.png":::
65
-
66
-
5.You can also add a [list](../concepts/entity-components.md#list-component), [regex](../concepts/entity-components.md#regex-component), or [prebuilt](../concepts/entity-components.md#prebuilt-component) component to each entity.
67
+
68
+
1.You can also add a [list](../concepts/entity-components.md#list-component), [regex](../concepts/entity-components.md#regex-component), or [prebuilt](../concepts/entity-components.md#prebuilt-component) component to each entity.
67
69
68
70
### Add prebuilt component
69
71
70
72
To add a **prebuilt** component, select the prebuilt type from the drop-down menu in the Entity options section.
71
73
72
74
<!--:::image type="content" source="../media/add-prebuilt-component.png" alt-text="A screenshot showing a prebuilt-component in Language Studio." lightbox="../media/add-prebuilt-component.png":::-->
73
-
75
+
74
76
### Add list component
75
77
76
-
To add a **list** component, select **Add list**. You can add multiple lists to each entity.
78
+
To add a **list** component, select **Add list**. You can add multiple lists to each entity:
77
79
78
-
1.To create a new list, in the *List key* text box, enter the normalized value that will be returned when any of the synonyms values is extracted.
80
+
1.Create a new list, in the *List key* text box, enter the normalized value that is returned when any of the synonyms values is extracted.
79
81
80
-
2. Start typing in your synonyms and hit enter after each one. It is recommended to have synonyms lists in multiple languages.
82
+
1. Start typing in your synonyms and hit enter after each one. We recommend having a synonym list in multiple languages.
81
83
82
84
<!--:::image type="content" source="../media/add-list-component.png" alt-text="A screenshot showing a list component in Language Studio." lightbox="../media/add-list-component.png":::-->
83
85
84
86
### Add regex component
85
87
86
-
To add a regex component, select Add expression. Name the regex key and type a regular expression that matches the entity to be extracted.
87
-
88
+
To add a regex component, select Add expression. Name the regex key and type a regular expression that matches the entity to be extracted.
89
+
88
90
### Define entity options
89
91
90
92
Change to the **Entity options** pivot in the entity details page. When multiple components are defined for an entity, their predictions may overlap. When an overlap occurs, each entity's final prediction is determined based on the [entity option](../concepts/entity-components.md#entity-options) you select in this step. Select the one that you want to apply to this entity and select the **Save** button.
91
93
92
94
<!--:::image type="content" source="../media/entity-options.png" alt-text="A screenshot showing an entity option in Language Studio." lightbox="../media/entity-options.png":::-->
93
95
94
96
95
-
After you create your entities, you can come back and edit them. You can **Edit entity components** or **delete** them by selecting this option from the top menu.
96
-
97
+
After you create your entities, you can come back and edit them. You can **edit entity components** or **delete** them by selecting this option from the top menu.
98
+
97
99
## Next Steps
98
100
99
101
*[Add utterances and label your data](tag-utterances.md)
0 commit comments