Osmi
Загрузчики документов

Custom Document Loader

Пользовательская функция для загрузки документов.

Этот модуль позволяет создавать собственные функции загрузки документов с помощью JavaScript. Он обеспечивает гибкую и настраиваемую обработку документов через пользовательские скрипты.

Что предоставляет этот модуль:

  • Выполнение пользовательских JavaScript-функций для загрузки документов
  • Динамическую работу с входными переменными
  • Поддержку как вывода документов, так и текста
  • Исполнение в изолированной (sandboxed) среде
  • Доступ к контексту потока и переменным
  • Обработку пользовательских метаданных

Входные параметры

Обязательные параметры:

  • Javascript Function: пользовательский код, который должен возвращать либо:
  • Массив объектов документов (для вывода документов)
  • Строку (для вывода текста)

Дополнительные параметры:

  • Input Variables: JSON-объект с переменными, доступными внутри функции, с префиксом $

Выходные данные

  • Document: массив объектов документов, содержащих metadata и pageContent
  • Text: объединенная строка из pageContent всех документов

Ключевые особенности:

  • Исполнение в изоленной среде (sandbox)
  • Поддержка внедрения переменных
  • Доступ к контексту потока (flow)
  • Поддержка пользовательских зависимостей
  • Обработка ошибок
  • Защита от тайм-аутов
  • Валидация входных данных

Структура документа при возвращении:

Объекты должны иметь следующую структуру:

{
  pageContent: 'Document Content',
  metadata: {
    title: 'Document Title',
    // ... other metadata
  }
}

Пример использования

Для возврата документов:

return [
  {
    pageContent: 'Document Content',
    metadata: {
      title: 'Document Title',
      source: 'Custom Source'
    }
  }
]

Для возврата текста:

return "Processed text content"

Доступный контекст

  • $input: входное значение, переданное функции
  • $vars: доступ к переменным потока
  • $flow: объект контекста потока, содержащий:
    • chatflowId
    • sessionId
    • chatId
    • input

Примечания

  • Скрипты работают в безопасной изолированной среде
  • Максимальное время выполнения — 10 секунд
  • Встроенные зависимости доступны по умолчанию
  • Можно настраивать внешние зависимости
  • Входные переменные должны быть валидным JSON
  • Обработка ошибок для некорректных возвратов данных
  • Поддержка асинхронных операций