Loại
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Các loại cho phép bạn định cấu hình NLU của Trợ lý (hiểu ngôn ngữ tự nhiên)
để trích xuất dữ liệu có cấu trúc từ hoạt động đầu vào của người dùng. Bạn
có thể sử dụng loại trong các trường hợp sau:
Trong ý định, bạn có thể chú thích các cụm từ huấn luyện bằng các loại để
tạo vị trí. Khi người dùng nói cụm từ khớp với ô trống, công cụ NLU
trích xuất dưới dạng thông số đã nhập để bạn có thể xử lý trong một cảnh.
Trong giai đoạn lấp đầy vùng của cảnh, bạn có thể chỉ định
nhiều vị trí mà bạn muốn người dùng cung cấp trước khi họ có thể
chuyển tiếp hoặc thoát khỏi cảnh.
Trong giai đoạn điều kiện của cảnh, bạn có thể dựa vào
logic về việc liệu một tham số có giá trị cụ thể được xác định trong một loại hay không.
Loại tuỳ chỉnh
Các loại tuỳ chỉnh cho phép bạn tạo thông số kỹ thuật loại của riêng mình để thông báo cho NLU
gán một tập hợp giá trị cho một khoá. Bạn có thể chỉ định các loại theo nhiều cách
cách:
- Từ và từ đồng nghĩa cho phép bạn ánh xạ nhiều giá trị tới một khoá duy nhất,
được gọi là một mục nhập. Loại của bạn có thể chứa một hoặc nhiều mục nhập. Nếu bạn
chọn tuỳ chọn này, bạn cũng có thể bật các chế độ cài đặt NLU sau đây:
- Bật tính năng so khớp mờ – Tính năng này cho phép các mục nhập có nhiều hơn một
từ cần khớp, ngay cả khi các từ được nói theo thứ tự khác.
- Chấp nhận các giá trị không xác định - Khi bạn không thể chỉ định tất cả các giá trị có thể,
trình xử lý ngôn ngữ có thể chấp nhận các từ hoặc cụm từ không xác định dựa trên môi trường xung quanh
dữ liệu huấn luyện đầu vào và ý định, chẳng hạn như các mặt hàng có thể được thêm vào một cửa hàng tạp hoá
danh sách.
- Biểu thức chính quy cho phép loại khớp với các giá trị bằng cách sử dụng
mẫu biểu thức dựa trên
Tiêu chuẩn RE2 của Google.
- Văn bản dạng tự do cho phép loại đối sánh
bất cứ điều gì người dùng nói. Chú thích
ý định thuộc loại này cho phép bạn sử dụng toàn bộ dữ liệu đầu vào dưới dạng tham số mà bạn
có thể chuyển tới NLU của riêng bạn.
Loại hệ thống
Các loại hệ thống cho phép bạn chú thích và trích xuất dữ liệu phổ biến từ hoạt động đầu vào của người dùng
bằng cách sử dụng dữ liệu
và giá trị huấn luyện do hệ thống cung cấp. Các loại hệ thống sau đây
được hỗ trợ:
Loại |
Mô tả |
actions.type.DateTime |
Chứa ngày, giờ và múi giờ dựa trên chế độ cài đặt thiết bị của người dùng.
Có sẵn cho tính năng lấp đầy khung giờ và chú thích cụm từ huấn luyện.
|
actions.type.Date |
Chỉ chứa ngày. Chỉ dành cho việc lấp đầy khung giờ. |
actions.type.Time |
Chỉ chứa thời gian. Chỉ dành cho việc lấp đầy khung giờ. |
actions.type.Number |
Loại Number khớp với thứ tự và màu chính
số. |
Mức sử dụng DateTime
, Date
và Time
Các loại này hoạt động khác nhau, tuỳ thuộc vào nơi bạn sử dụng, loại
hoạt động đầu vào của người dùng khớp với loại.
Sử dụng cùng ý định
Việc chú giải cụm từ huấn luyện trong ý định chỉ hỗ trợ loại DateTime
. Người dùng
đầu vào không cần khớp với toàn bộ giá trị DateTime
. Ví dụ: nếu người dùng
chỉ cung cấp năm, thông số phiên có thể có dạng như sau:
"date_time": {
"year": 2019
}
Sử dụng với tính năng lấp đầy vị trí
Tính năng điền vị trí hỗ trợ DateTime
, Date
và Time
.
- Nếu loại ô là
DateTime
, Trợ lý sẽ nhắc người dùng cho đến khi pin đầy
giá trị sẽ được cung cấp.
- Nếu loại ô là
Date
, Trợ lý sẽ nhắc người dùng cho đến một ngày cụ thể
giá trị sẽ được cung cấp. Khi được thu thập, thông số bạn nhận được sẽ là thông số đầy đủ
DateTime
với thời gian được đặt thành 00:00.
- Nếu loại ô là
Time
, Trợ lý sẽ nhắc người dùng cho đến một khoảng thời gian
giá trị sẽ được cung cấp. Khi được thu thập, thông số bạn nhận được sẽ là thông số đầy đủ
Đối tượng DateTime
có ngày được đặt thành ngày hiện tại.
Ví dụ: giả sử một người dùng ở Los Angeles nói "Ok Google, tạo lời nhắc
lúc 8 giờ tối ngày 15 tháng 1 năm 2024". Khi DateTime
được trích xuất dưới dạng một phần của một ô
quá trình điền, thông số đầy đủ có thể có dạng như sau:
"date_time": {
"day": 15,
"hours": 20,
"minutes": 0,
"month": 1,
"nanos": 0,
"seconds": 0,
"time_zone": {
"id": "America/Los_Angeles"
},
"year": 2024
}
Sử dụng với các điều kiện
Các điều kiện chỉ cho phép sử dụng số và chuỗi, vì vậy, hãy sử dụng cấp cao nhất
Tham số DateTime
dẫn đến kết quả False cho điều kiện đó. Ví dụ:
$session.params.my_dateTime.day > 5
là một điều kiện hợp lệ vì
Giá trị day
là một số và được hỗ trợ.
$session.params.my_dateTime > "01-01-2010"
là điều kiện không hợp lệ vì
cấp cao nhất "DateTime" đối tượng không phải là một số hay chuỗi.
Ghi đè loại thời gian chạy
Tính năng ghi đè loại thời gian chạy cho phép bạn tự động tạo hoặc sửa đổi các loại trong
phương thức thực hiện. Tính năng này cho phép bạn thêm vào hoặc thay thế thông số của một loại tại
thời gian chạy. Ví dụ: bạn có thể kiểm tra một nguồn dữ liệu phụ trợ để tải trình đơn hằng ngày
vào một loại trong phương thức thực hiện của bạn.
Xem hướng dẫn về webhook để biết thêm thông tin
về cách tạo ghi đè loại.
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-07-26 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-26 UTC."],[[["\u003cp\u003eTypes are used to extract structured data from user input, allowing you to create slots in intents, manage slot filling within scenes, and define conditions based on parameter values.\u003c/p\u003e\n"],["\u003cp\u003eYou can create custom types using words and synonyms, regular expressions, or free-form text to define how the NLU interprets user input.\u003c/p\u003e\n"],["\u003cp\u003eSystem types such as \u003ccode\u003eDateTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e, \u003ccode\u003eTime\u003c/code\u003e, and \u003ccode\u003eNumber\u003c/code\u003e provide built-in data extraction for common data formats.\u003c/p\u003e\n"],["\u003cp\u003eRuntime type overrides enable dynamic modification of types during fulfillment, allowing you to adjust types based on real-time data.\u003c/p\u003e\n"]]],[],null,["# Types let you configure the Assistant NLU (natural language understanding)\nengine to extract structured data from user input. You\ncan use types in the following situations:\n\n- In [intents](/assistant/conversational/intents), you can annotate training phrases with types to\n create slots. When users say something that matches a slot, the NLU engine\n extracts it as a typed parameter, so you can process it in a [scene](/assistant/conversational/scenes).\n\n- Within a scene's [slot filling](/assistant/conversational/scenes#slot_filling) stage, you can specify\n multiple slots that you want the user to provide before they can\n transition or exit out of the scene.\n\n- Within a scene's [conditions](/assistant/conversational/scenes#conditions) stage, you can base\n logic on whether a parameter has a specific value that's defined in a type.\n\nCustom types\n------------\n\nCustom types let you create your own type specification to notify the NLU to\nassign a set of values to a single key. You can specify types in a variety of\nways:\n\n- **Words and synonyms** allow you to map multiple values to a single key, which are called an entry. Your type can contain one or many entries. If you choose this option, you can also enable the following NLU settings:\n - **Enable fuzzy matching** - This feature allows entries with more than one word to be matched, even when the words are spoken in a different order.\n - **Accept unknown values** - When you can't specify all possible values, the language processor can accept unknown words or phrases based on surrounding input and intent training data, such as items that might be added to a grocery list.\n- **Regular expressions** allows the type to match values using regular expression patterns based on [Google's RE2 standard](https://github.com/google/re2/wiki/Syntax).\n- **Free form text** allows the type to match anything a user says. Annotating an intent with this type lets you consume all input as a parameter that you can pipe to your own NLU.\n\nSystem types\n------------\n\nSystem types let you annotate and extract well-known data from user input\nusing system-provided training data and values. The following system types are\nsupported:\n\n| Type | Description |\n|-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------|\n| **`actions.type.DateTime`** | Contains date, time, and timezone based on the user's device settings. Available for slot filling and training phrase annotation. |\n| **`actions.type.Date`** | Contains date only. Available for slot filling only. |\n| **`actions.type.Time`** | Contains time only. Available for slot filling only. |\n| **`actions.type.Number`** | The `Number` type matches ordinal and cardinal numbers. |\n\n### `DateTime`, `Date`, and `Time` usage\n\nThese types behave differently depending on where you use the type and the\nuser input that matches the type.\n\n#### Using with intents\n\nAnnotating training phrases in intents supports only the `DateTime` type. User\ninput doesn't need to match an entire `DateTime` value. For example, if a user\nprovides only the year, the session parameter might look like this: \n\n \"date_time\": {\n \"year\": 2019\n }\n\n#### Using with slot filling\n\nSlot filling supports `DateTime`, `Date`, and `Time`.\n\n- If the slot type is `DateTime`, the Assistant prompts the user until a full value is provided.\n- If the slot type is `Date`, the Assistant prompts the user until a date value is provided. When collected, the parameter you receive is a full `DateTime` with the time set to 00:00.\n- If the slot type is `Time`, the Assistant prompts the user until a time value is provided. When collected, the parameter your receive is a full `DateTime` object with the date set to the current date.\n\nFor example, suppose a user in Los Angeles said, \"Hey Google, create a reminder\nfor January 15, 2024 at 8 pm.\" When `DateTime` is extracted as part of a slot\nfilling process, the full parameter might look like this: \n\n \"date_time\": {\n \"day\": 15,\n \"hours\": 20,\n \"minutes\": 0,\n \"month\": 1,\n \"nanos\": 0,\n \"seconds\": 0,\n \"time_zone\": {\n \"id\": \"America/Los_Angeles\"\n },\n \"year\": 2024\n }\n\n#### Using with conditions\n\nConditions only allow the use of numbers and strings, so using the top level\n`DateTime` parameter results in a **False** result for the condition. For\nexample:\n\n- `$session.params.my_dateTime.day \u003e 5` is a valid condition, because the `day` value is a number and is supported.\n- `$session.params.my_dateTime \u003e \"01-01-2010\"` is an invalid condition, because the top level 'DateTime' object is not a number or string.\n\nRuntime type overrides\n----------------------\n\nRuntime type overrides let you dynamically create or modify types in\nfulfillment. This feature lets you add to or replace a type's specification at\nruntime. For example, you can check a backend data source to load daily menu\nitems into a type in your fulfillment.\n\nSee the [webhooks](/assistant/conversational/webhooks#runtime_type_overrides) guide for more information\non how to build type overrides."]]