> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ukrgsm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Дата

> Дозвольте ШІ-агенту вимовляти сьогоднішню дату зі зсувом у днях українською — без ризику, що LLM порахує дату неправильно.

Інструмент «Дата» обчислює сьогоднішню дату (за часовим поясом Europe/Kyiv), зсунуту на фіксовану кількість днів, і озвучує результат природною українською мовою — наприклад, «25 серпня» чи «двадцять п'яте серпня». Дата **обчислюється кодом**, а не LLM — модель ніколи сама не рахує дати, тож немає ризику помилки на кшталт неправильного дня тижня чи місяця.

Зсув у днях фіксується **під час створення інструмента**, а не обирається LLM під час розмови. Якщо потрібні кілька різних зсувів (наприклад, +3 і +7 днів), створіть окремий інструмент «Дата» для кожного.

## Як це працює

1. Ви створюєте інструмент «Дата» й задаєте зсув у днях (наприклад, `3` — дата через 3 дні від сьогодні).
2. Залежно від режиму (див. нижче) — або LLM викликає інструмент під час розмови, або дата обчислюється автоматично на початку дзвінка.
3. Результат — готова до озвучення фраза (наприклад, «25 серпня») — стає доступним агенту.

## Налаштування

| Поле | Опис |
| - | - |
| **Зсув у днях** | `0` — сьогодні. Число — стільки днів від сьогодні (наприклад, `3` → дата через 3 дні). |
| **Формат** | **Цифрами** («25 серпня») чи **Словами** («двадцять п'ятого серпня») — словесний формат прибирає залежність від того, як TTS-рушій вирішить прочитати саме число. |
| **Назва змінної** | Якщо задано — результат стає доступний як `{{назва_змінної}}` у тексті будь-якого ребра чи промпту наступних вузлів сценарію. |
| **Застосовувати глобально** | Див. розділ [«Два режими роботи»](#два-режими-роботи) нижче. |

## Два режими роботи

### 1. Прикріплений до вузла (за замовчуванням)

Інструмент прикріплюється до конкретного вузла сценарію, і LLM сама вирішує, чи й коли його викликати — так само, як будь-який інший інструмент.

<Warning>
  Виклик інструмента — це рішення LLM, а не гарантія. Якщо в промпті вузла немає явної інструкції викликати інструмент, модель може обрати перехід, не викликавши інструмент, і змінна `{{назва_змінної}}` лишиться незаповненою в тексті ребра.

  Якщо промпт вузла використовує **«Лише вибір (без власного тексту)»** — прикріплений інструмент усе одно можна викликати (обмеження знімається автоматично, щойно на вузлі є хоч один інструмент), але явна інструкція в промпті все одно потрібна для надійності. Наприклад:

  ```
  Якщо абонент підтвердив особу — ОБОВ'ЯЗКОВО спочатку виклич інструмент
  "date-plus3", і лише потім обери перехід identity_confirmed.
  ```
</Warning>

### 2. Глобальний режим

Увімкніть перемикач **«Застосовувати глобально до всіх дзвінків»** — тоді:

* Інструмент **не потрібно прикріплювати** до жодного вузла.
* LLM **ніколи** його не викликає.
* Дата обчислюється **автоматично на самому початку кожного дзвінка** в організації, і одразу пишеться в `{{назва_змінної}}` — доступна з першого ж вузла сценарію.

Це усуває залежність від того, чи LLM згадає викликати інструмент — рекомендований варіант, якщо дата потрібна надійно, у будь-якому місці сценарію.

<Note>
  Два активні глобальні інструменти не можуть використовувати однакову назву змінної — система заблокує збереження другого з таким же ім'ям.
</Note>

## Приклад використання в тексті ребра

Якщо назва змінної — `payment_deadline`, у тексті переходу можна написати:

```
Оплату очікуємо до {{payment_deadline}}.
```

Якщо потрібне запасне значення на випадок, коли змінна ще не заповнена (наприклад, інструмент прикріплений до вузла й LLM ще не встигла його викликати), використайте синтаксис fallback:

```
Оплату очікуємо до {{payment_deadline | найближчих днів}}.
```

## Найкращі практики

* **Для критичних сценаріїв (дедлайни, оплата) — використовуйте глобальний режим.** Це прибирає будь-яку залежність від рішення LLM.
* **Формат «Словами» для складних для TTS чисел** — якщо озвучення цифр звучить неприродно, спробуйте словесний формат.
* **Один інструмент — один зсув.** Не намагайтесь передати зсув як параметр LLM — створіть окремий інструмент для кожного потрібного зсуву.
* **Якщо все ж прикріплюєте до вузла** — завжди давайте явну інструкцію в промпті, коли саме викликати інструмент, і в якому порядку відносно вибору переходу.
