Учетные данные для интеграций
Учетные данные — это токены, пароли и API-ключи для безопасного подключения LLM, каналов и других внешних сервисов. Вы сохраняете их один раз и, в зависимости от уровня доступа, можете переиспользовать в разных проектах. В коде и блоках сценария вместо самих ключей отображается только их название.
Раздел Учетные данные доступен в двух местах: в левой панели внутри проекта и в левом меню на уровне аккаунта.
Уровень доступа
При создании учетных данных вы выбираете уровень доступа. Сохраненный уровень изменить нельзя.
- Проект — учетные данные доступны только в текущем проекте, переиспользовать в других проектах нельзя. Управляют ими внутри проекта.
- Аккаунт — учетные данные доступны во всем аккаунте: их можно подключить к любому проекту. Управляют ими на уровне аккаунта; из проекта они доступны только для просмотра.
О том, кто может создавать и изменять учетные данные, читайте в разделе Роли и доступы.
Для типа SIP-аккаунт доступен только уровень Аккаунт.
Управление в проекте
Добавить новые
-
Нажмите Добавить → Добавить новые.
-
Выберите тип учетных данных. Набор полей зависит от типа.
примечаниеПод каждый сервис нужен свой тип данных:
- Для моделей выберите LLM.
- Для ASR и TTS используйте Провайдер ASR/TTS. Если провайдеры разные, создайте отдельные записи для каждого.
- Если нужной интеграции нет в списке, выберите Другое. Это позволит обращаться к сервису через код с помощью функции
Credentials.get().
-
Выберите уровень доступа:
- Только в текущем проекте.
- Для всех проектов аккаунта — учетные данные попадут в раздел аккаунта. Вы сможете подключить их к нескольким проектам.
-
Укажите нужные данные и настройте срок действия.
-
Нажмите Добавить.
Подключить сохраненные
Если в аккаунте уже есть учетные данные с уровнем доступа Аккаунт, вы можете подключить их к текущему проекту.
- Нажмите Добавить → Подключить сохраненные.
- Выберите нужные учетные данные из списка.
- Нажмите Подключить.
Выбранные учетные данные появятся в таблице проекта.
Редактировать
- В строке с нужными данными нажмите .
- Внесите изменения и нажмите Сохранить.
Все интеграции и вызовы Credentials.get() сразу начнут использовать обновленные значения.
Если данные созданы с уровнем доступа Аккаунт, изменить их из проекта нельзя — только просмотреть. Для редактирования нажмите Перейти к редактированию на уровне аккаунта. Эти изменения также мгновенно применятся ко всем подключенным проектам.
Удалить
Нажмите в таблице и подтвердите действие. Результат зависит от уровня доступа:
- Проект — система удалит учетные данные полностью.
- Аккаунт — система отключит учетные данные от текущего проекта, но сохранит их в разделе аккаунта. Вы сможете полностью удалить их только в разделе аккаунта.
В обоих случаях связанные интеграции в текущем проекте сразу перестанут работать.
Управление на уровне аккаунта
Раздел Учетные данные доступен на уровне аккаунта — в левом меню на странице со списком проектов. В нем вы видите только учетные данные с уровнем доступа Аккаунт. Вы можете создавать такие данные и здесь, и в любом проекте через Добавить новые.
В разделе аккаунта вы можете:
- Создавать новые учетные данные — только с уровнем доступа Аккаунт.
- Редактировать их — изменения затронут все проекты, где они используются.
- Удалять их — это навсегда отвяжет данные от всех проектов и удалит их из системы.
Чтобы использовать эти данные в конкретном проекте, зайдите в него и подключите их.
Ограничения
- Уникальность токенов. Токены для всех каналов (Telegram, VK, WhatsApp, MAX и другие) должны быть уникальными во всем аккаунте: один и тот же токен нельзя использовать в двух проектах одного аккаунта. Если такой токен уже сохранен в учетных данных аккаунта, система выдаст ошибку и не даст сохранить дубликат. Для остальных типов (например, LLM, SMTP, IMAP, RAG) одни и те же ключи можно использовать без ограничений.
- Экспорт и импорт. Архив не содержит секретных значений учетных данных. При импорте система создает пустые шаблоны и показывает список тех, которые нужно заполнить вручную. Существующие учетные данные аккаунта система не подключает автоматически.
Использование в интеграциях
При подключении интеграций выпадающий список показывает все учетные данные проекта — и проектные, и подключенные аккаунтные.
Выбор данных во встроенных интеграциях
Вы можете выбрать сохраненные учетные данные в двух местах:
- В разделе Интеграции при подключении нового сервиса.
- Прямо в процессе — например, при настройке LLM в блоке Агент.
В обоих случаях вам не придется вводить токен или ключ API вручную — просто выберите нужные данные из выпадающего списка.
Подключение к любому другому сервису
Например, вы хотите, чтобы ваш бот сообщал погоду через сторонний сервис WeatherAPI.com. Однако встроенной интеграции с этим сервисом в Agent Platform нет и вам нужно обращаться к нему напрямую по API.
Для таких задач используйте функцию Credentials.get(). Она позволяет безопасно получить сохраненный API-ключ прямо в коде и использовать его для отправки запросов.
Шаг 1: Сохраните API-ключ
- Зарегистрируйтесь на WeatherAPI.com и получите бесплатный API-ключ.
- В Agent Platform перейдите в раздел Учетные данные.
- Добавьте новые учетные данные с типом Другое, уровнем доступа Проект и авторизацией по токену. В поле Токен вставьте ваш API-ключ.
- Новые учетные данные появятся в таблице в разделе Учетные данные. Скопируйте ID из таблицы. Предположим, что ID выглядит так:
1000111111-weather-abc.
Шаг 2: Напишите функцию для запроса погоды
Теперь вы можете написать простую функцию, которая будет обращаться к API погоды. В ней используйте Credentials.get(), чтобы безопасно получить ключ.
Реализация на JavaScript зависит от версии движка в вашем проекте.
- JavaScript + Версия 2
- JavaScript + Версия 1
- Python
async function getWeather({ city }) {
// Получаем объект с учетными данными по ID из таблицы
const credentials = Credentials.get({credentialKey: '1000111111-weather-abc'});
// Формируем запрос
const requestConfig = {
url: 'https://api.weatherapi.com/v1/current.json',
params: {
// Подставляем токен из наших учетных данных
key: credentials.token,
q: city
}
};
// Выполняем запрос с помощью встроенной функции Http.get
const response = await Http.get(requestConfig);
// Извлекаем температуру из ответа и возвращаем результат
return `Температура: ${response.body.current.temp_c}°C`;
}
async function getWeather({ city }) {
// Получаем объект с учетными данными по ID из таблицы
const credentials = await Credentials.get('1000111111-weather-abc');
// Формируем запрос
const requestConfig = {
url: 'https://api.weatherapi.com/v1/current.json',
params: {
// Подставляем токен из наших учетных данных
key: credentials.token,
q: city
}
};
// Выполняем запрос с помощью встроенной функции Http.get
const response = await Http.get(requestConfig);
// Извлекаем температуру из ответа и возвращаем результат
return `Температура: ${response.body.current.temp_c}°C`;
}
async def get_weather(city):
# Получаем учетные данные по ID из таблицы
credential = await sdk.credentials.get("1000111111-weather-abc")
token = credential["token"]
# Формируем запрос
import requests
response = requests.get(
"https://api.weatherapi.com/v1/current.json",
params={"key": token, "q": city}
)
# Извлекаем температуру из ответа и возвращаем результат
return f"Температура: {response.json()['current']['temp_c']}°C"
В этом примере используется внешний пакет requests — добавьте его на вкладке Зависимости.
Таким образом, Agent Platform надежно хранит ваш API-ключ — в коде функции он не виден.