Обзор

Большинство инструментов и эндпоинтов плагинов работают по модели взаимодействия без сохранения состояния, в один раунд:
  1. Получить запрос
  2. Обработать данные
  3. Вернуть ответ
  4. Завершить взаимодействие
Однако многим реальным приложениям нужно сохранять состояние между несколькими взаимодействиями. Именно здесь не обойтись без постоянного хранилища.
Механизм постоянного хранилища позволяет плагинам хранить данные постоянно в пределах одного рабочего пространства, обеспечивая работу приложений с сохранением состояния и функций памяти.
В настоящее время Интеллос предоставляет плагинам систему key-value (KV) хранилища, а в будущем планирует добавить более гибкие и мощные интерфейсы хранения в зависимости от потребностей разработчиков.

Доступ к хранилищу

Все операции с хранилищем выполняются через объект storage, доступный в сессии вашего плагина:

Операции с хранилищем

Сохранение данных

Сохраняйте данные методом set:
Значение должно быть в формате bytes. Это даёт гибкость для хранения данных различных типов, включая файлы.

Пример: сохранение данных разных типов

Получение данных

Получайте сохранённые данные методом get:

Пример: получение и преобразование данных

Удаление данных

Удаляйте сохранённые данные методом delete:

Рекомендации

Используйте понятные ключи

Создайте единообразную схему именования ключей, чтобы избежать конфликтов и упростить сопровождение кода.

Обрабатывайте отсутствующие ключи

Всегда проверяйте наличие данных перед их обработкой, так как ключ может быть не найден.

Сериализуйте сложные данные

Перед сохранением преобразуйте сложные объекты в JSON или другой сериализованный формат.

Реализуйте обработку ошибок

Оборачивайте операции с хранилищем в блоки try/except, чтобы корректно обрабатывать возможные ошибки.

Типичные сценарии использования

  • Пользовательские настройки: храните настройки и предпочтения пользователя между сессиями
  • История разговоров: сохраняйте контекст предыдущих разговоров
  • API-токены: безопасно храните токены аутентификации
  • Кэшированные данные: храните часто запрашиваемые данные, чтобы сократить число вызовов API
  • Хранение файлов: храните загруженные пользователем файлы или сгенерированный контент

Редактировать эту страницу | Сообщить о проблеме