Предварительные настройки консоли Яндекс
Регистрируетесь в console.yandex.ru
.
Идете в AI API
.
Создаете платежный аккаунт.
Привязываете карту и переходите на платную версию.
Пополняете баланс (в начале 2023 г. 100К символов переводчика стоят ~50 р.).
Подробнее про тарифы здесь: https://cloud.yandex.ru/prices
Получаете oAuth-token
. Идете сюда https://cloud.yandex.ru/docs/iam/operations/iam-token/create, переходите на вкладку API и переходите по ссылке в пункте 2. Разрешаете доступ к cloud
от вашего аккаунта Яндекс и видите token
— сохраняете его.
Получаем IAM-token и настраиваем его обновление
Создаем поле тип Данные
для хранения IAM-token
.
Получаем IAM-token
и сохраняем его в созданное поле (подставьте свой oAuth
токен полученный ранее):
// код-действия кнопки
= : set(table: $#ntn; field: 'h_iamtoken' = $extract)
extract: jsonExtract(text: $iam)
iam: getFromScript(uri: "https://iam.api.cloud.yandex.net/iam/v1/tokens"; posts: $json)
json: jsonCreate(data: $row)
row: rowCreate(field: "yandexPassportOauthToken" = "YOUR_OAUTH_TOKEN_HERE")
Нажатие кнопки надо поставить на крон каждые 6 часов через execButton
.
Получаем идентификатор каталога и назначаем роль
Идентификатор каталога:
Выберите каталог на стартовой странице консоли управления. На этой странице отображается информация о всех каталогах в выбранном облаке. Если необходимо, переключитесь на другое облако.
Получить идентификатор каталога можно из URL страницы каталога в консоли управления:
https://console.cloud.yandex.ru/folders/b1gd129pp9ha0vnvf5g7
Где b1gd129pp9ha0vnvf5g7
— это идентификатор каталога.
Назначаем роль:
Выбираем каталог
Переходим на вкладку Права доступа
Жмем Назначить роли
Жмем выбрать пользователя
Выбираем того пользователя от которого мы выпускали токен
Жмем добавить роль и выбираем ai.translate.user
Сохранить
Формируем запрос на перевод и записываем результат куда-нибудь
Формируем запрос на перевод и записываем результат куда-нибудь (замените YOUR_FOLDER_ID
):
= : set(table: $#ntn; field: 'translation' = $extract[translations][0][text]; where: 'id' = #id)
extract: jsonExtract(text: $get)
get: getFromScript(uri: "https://translate.api.cloud.yandex.net/translate/v2/translate"; headers: $headers; posts: $json)
headers: listCreate(item: $header_1; item: $header_2)
header_1: "Content-Type: application/json"
header_2: str`"Authorization: Bearer" ++ #h_iamtoken[iamToken]`
json: jsonCreate(data: $data)
data: rowCreate(field: "folderId" = "YOUR_FOLDER_ID"; field: "texts" = $list; field: "sourceLanguageCode" = "en"; field: "targetLanguageCode" = "ru")
list: listCreate(item: $text_1)
text_1: #something_to_translate
За один запрос можно передать несколько текстов — для этого надо в строку list
передать список из текстов.
В ответе в ключе translations
будет содержаться список переводов в том же порядке в котором вы их передали.