Перейти к основному содержимому

Встроенные функции

Agent Platform предоставляет встроенные JavaScript-функции, которые позволяют управлять диалогом, взаимодействовать с базами данных и интеграциями, отправлять HTTP-запросы и многое другое.

Подробнее о работе с функциями читайте в разделе Использование функций в процессе.

Встроенные коллекции

КоллекцияОписание
Asr и TtsРаспознавать и синтезировать речь
ContextПолучать метаданные, подробную информацию о запросе пользователя, отслеживать состояние процесса
CredentialsПолучать учетные данные для интеграций
Db и SessionDbРаботать с базами данных
EmailОтправлять email-сообщения
HttpВыполнять HTTP-запросы
LlmВзаимодействовать с языковыми моделями
RagРаботать с базами знаний RAG
ReactionsОтправлять ответы клиенту в подключенном канале
TelegramОтправлять сообщения в Telegram без подключения канала

Asr и Tts

Для работы этих функций нужно подключить интеграции: Модель ASR и Голос TTS.

  • Asr.recognize — получает файл по URL и распознает речь в нем.
  • Tts.synthesize — синтезирует речь из текста и возвращает URL, по которому можно скачать аудиофайл.

Подробнее о работе с этими функциями читайте в статье ASR и TTS в текстовых каналах.

Context

  • Получайте различные метаданные процесса:

    • getAccountId — ID вашего аккаунта Agent Platform.
    • getProjectShortName — короткое имя проекта.
    • getBotId, getChannelType, isAsyncChannel, isTestChannel — ID и тип канала.
    • getChatID, getSessionID — идентификаторы диалога и текущей сессии.
    • getClientInfo — информация о пользователе, который взаимодействует с процессом.
  • Получайте подробную информацию о запросе пользователя:

    • getRequestId — ID запроса.
    • getMessageContent, getRawRequest — контент сообщения и полные данные запроса.
  • Отслеживайте состояние диалога:

    • getChatHistory — история сообщений в диалоге.
    • getLastFunctionResult — результат последнего вызова функции в процессе.

Credentials

Получайте учетные данные для интеграций из хранилища с помощью функции get вместо непосредственной вставки в код.

Db и SessionDb

С помощью Db вы можете работать с базами данных, которые вы настроили в разделе Интеграции.

Функции из коллекции SessionDb работают аналогично, но не требуют настройки интеграции с БД и обрабатывают данные только в рамках текущей сессии.

  • Получайте данные:

    • get — получить запись по ключу.
    • findByFilters — найти одну или несколько записей по заданным фильтрам.
    • countByFilters — получить количество записей, которые соответствуют фильтрам.
  • Добавляйте и изменяйте данные:

    • put — добавить новую запись в базу.
    • updateByFilters — обновить поля в записях, которые соответствуют фильтрам.
  • Удаляйте данные:

    • delete — удалить запись по ключу.
    • deleteByFilters — удалить все записи, которые соответствуют фильтрам.

Email

Отправляйте email-сообщения с помощью функции send.

Http

  • Функции для вызова HTTP-методов:

    • get
    • post
    • put
    • delete
    • patch
  • execute — функция, в которой вы можете выбрать HTTP-метод сами.

Llm

  • sendText — отправляйте простые текстовые запросы к LLM.
  • sendRequest — настраивайте все параметры запроса вручную.
  • getChatHistory — получайте историю сообщений в специальном формате для LLM.

Rag

Используйте интеграцию с базой знаний RAG:

  • retrieveChunks — получить фрагменты документов, релевантные запросу пользователя.
  • generateAnswer — сгенерировать ответ на вопрос пользователя с помощью RAG.

Reactions

Отправляйте сообщения клиентам в подключенных каналах:

  • sendText — текстовое сообщение.
  • sendHtml — сообщение в разметке HTML.
  • sendAudio, sendImage, sendVideo, sendFile — аудио, изображение, видео или файл.
  • sendLocation — геолокация.
  • sendRawRequest — данные для ответа в формате, который поддерживает канал.

Telegram

Отправляйте сообщения в Telegram без подключения канала. В каждой функции укажите API-токен вашего Telegram-бота. Эти функции можно использовать вместо Reactions, например, в следующих случаях:

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

Функции:

  • sendText — отправить текстовое сообщение.
  • sendImage, sendAudio, sendVoice — отправить изображение, аудио или голосовое сообщение.
  • sendButtons — отправить сообщение с кнопками.

Асинхронность функций

Большинство встроенных функций являются асинхронными. Вы можете вызывать их с помощью await.

Синхронными являются только следующие функции:

  • Context:

    • getAccountId
    • getProjectShortName
    • getBotId
    • getChannelType
    • isAsyncChannel
    • isTestChannel
    • getChatID
    • getSessionID
    • getClientInfo
    • getRequestId
    • getMessageContent
    • getRawRequest
    • getLastFunctionResult
  • Credentials.get