Запис у кеш

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

2 хв читання

Запис у кеш зберігає відповідь на потім. Він бере відповідь моделі вище себе і зберігає її під ключем, який Пошук у кеші шукав і не знайшов.

Вузол
Запис у кеш
Тип
cache_write
Категорія
Кеш
Порти
  • Типовий default підключення обовʼязкове
Завершує шлях
Ні

Що робить вузол

Коли виконання доходить до вузла, він зберігає останню відповідь вузла AI-модель на шляху на час, заданий у налаштуванні, і виходить через Типовий. На наступний запит із тим самим ключем пошук відповідає з кешу.

Вузол нічого не зберігає, а виконання однаково йде далі, коли:

  • жоден пошук вище не дав промаху в цьому виконанні з ключем, який можна використати, — пошук влучив, його ключ нічого не казав про запит або пошуку немає;

  • відповідь не закінчилася чисто: модель зупинилася з іншої причини, ніж кінець відповіді, або відповідь порожня;

  • відповідь більша, ніж приймає кеш, — за замовчуванням 256 КБ;

  • сховище кешу недоступне.

Коли використовувати

Ставте його після AI-модель на гілці Промах вузла Пошук у кеші. Один пошук і один запис складають пару: пошук питає, запис відповідає на питання, на яке пошук відповісти не зміг.

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

НалаштуванняДля чого воно
ttl_secondsСкільки зберігається відповідь, у цілих секундах, не менше 1. Вузол без значення зберігає її стільки, скільки налаштовано в сервісі, — за замовчуванням 3600 секунд.

У конструкторі налаштування — Зберігати (секунди). Новий вузол зберігає відповідь 3600 секунд, годину; вузол без значення зберігає її стільки, скільки налаштовано в сервісі, — за замовчуванням годину.

Порти

Вузол має один порт, Типовий, і він обов’язковий. Флоу, в якому він нікуди не веде, не публікується.

Вихід

Вузол не залишає виходу. Наступний вузол читає відповідь моделі з виходу вузла AI-модель.

Помилки

Помилок вузол не кидає. Коли він нічого не зберігає, подія warning у трасуванні каже чому. Ось попередження, які пише вузол:

JSON
[
  { "type": "warning", "node_key": "store", "payload": { "code": "cache_write_without_lookup" } },
  { "type": "warning", "node_key": "store", "payload": { "code": "cache_write_unfinished_answer" } },
  { "type": "warning", "node_key": "store", "payload": { "code": "cache_write_empty_answer" } },
  { "type": "warning", "node_key": "store", "payload": { "code": "cache_value_refused" } },
  { "type": "warning", "node_key": "store", "payload": { "code": "cache_store_unavailable" } }
]
КодЧому нічого не збережено
cache_write_without_lookupЖоден пошук вище вузла не дав промаху в цьому виконанні
cache_write_unfinished_answerМодель не закінчила відповідь
cache_write_empty_answerУ відповіді немає тексту
cache_value_refusedВідповідь більша, ніж приймає кеш
cache_store_unavailableСховище кешу недоступне

Вузол, вище якого на жодному шляху немає Пошук у кеші, отримує попередження перевірки під час публікації cache_write_without_lookup; флоу однаково публікується. Налаштування перевіряється під час перевірки флоу та під час його публікації.

В API запис issues називає таку перевірку в params.detail; його code — invalid_node_config.

ПеревіркаПовідомлення в конструкторі
cache_invalid_ttlЧас життя «{node}» має бути цілим числом секунд, не менше 1.

Приклад

  • Запит — Типовий → Пошук у кеші
  • Пошук у кеші — Влучання → Повернути відповідь
  • Пошук у кеші — Промах → AI-модель
  • AI-модель — Успіх → Запис у кеш
  • Запис у кеш — Типовий → Повернути відповідь

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

Зібрано з openapi b070e1f, sdk contract 5cc7055, php ae4a53b, node 84bc62d