Встроенные функции
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-методов:
getpostputdeletepatch
-
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:getAccountIdgetProjectShortNamegetBotIdgetChannelTypeisAsyncChannelisTestChannelgetChatIDgetSessionIDgetClientInfogetRequestIdgetMessageContentgetRawRequestgetLastFunctionResult
-
Credentials.get