База даних
Ноди секції База даних використовуються для збереження даних між окремими execution сценарію. Set memory записує іменований набір значень для поточного користувача, а Get memory читає цей набір і робить його поля доступними наступним нодам.
На відміну від звичайних #var, memory-дані зберігаються між окремими запусками сценарію.
1. Set memory (Зберегти в памʼять)
Set memory (SetMemory) зберігає набір key/value для поточного користувача.
Використовуйте її, коли значення має бути доступним не лише в поточному execution, а й у наступних повідомленнях або запусках сценарію.
Налаштування
| Поле | Значення |
|---|---|
MemoryName |
Ім'я набору даних |
Fields[] |
Список полів із Key та ValueTemplate |
ValueTemplate |
Значення поля; підтримує plain text, #var і {{ JS }} |
NextAction |
Єдиний вихід |
Connections
- Вхід: один стандартний connector.
- Вихід: один
NextAction. - Нода сама не створює
#node.*output variables.
Змінні і шаблони
У ValueTemplate можна використовувати звичайний текст, #var і {{ JS }}.
Наприклад:
MemoryName: checkout
city = #node.12.city
total = #node.20.total
short_name = {{ truncate(#member.name, 30) }}
Усі поля зберігаються разом під одним MemoryName.
Важливі особливості
- Новий
Set memoryз тим самимMemoryNameповністю перезаписує попередній набір даних. Поля не merge-яться окремо. - Якщо кілька полів мають однаковий
Key, використовується останнє значення. MemoryNameмає бути однаковим у відповіднихSet memoryтаGet memory.- Для різних логічних наборів даних використовуйте різні
MemoryName. Set memoryпотребує member context, тому не використовується в синхронному AI tool.
2. Get memory (Отримати з памʼяті)
Get memory (GetMemory) читає набір даних, раніше записаний через Set memory, і створює node-scoped змінні для кожного збереженого поля.
Налаштування
| Поле | Значення |
|---|---|
MemoryName |
Ім'я набору, яке має точно збігатися з відповідним Set memory |
NextAction |
Єдиний вихід |
Connections
- Вхід: один стандартний connector.
- Вихід: один
NextAction.
Вихідні змінні
Кожне поле memory стає окремою змінною:
#node.{id}.{memoryField}
Наприклад, якщо memory checkout містить:
{
"city": "Kyiv",
"total": "1200"
}
то Get memory з ID 30 створить:
#node.30.city
#node.30.total
Приклад
Set memory "checkout"
-> Screen "Продовжити"
...
Get memory "checkout"
-> Condition '#node.30.total != ""'
Важливі особливості
MemoryNameпорівнюється case-sensitive.- Якщо memory ще не існує, фактичні значення не будуть доступні.
- Якщо кілька
Set memoryвикористовують однаковийMemoryName, runtime читає останній записаний набір. Get memoryпотребує member context, тому не використовується в синхронному AI tool.