Как начать работать с YandexGPT API
В этом разделе вы научитесь использовать нейросеть YandexGPT для генерации текста в синхронном режиме без дополнения контекста. Другие примеры см. в разделе Инструкции для работы с YandexGPT API
В консоли управления
О стоимости использования YandexGPT API читайте в разделе Правила тарификации для Yandex Foundation Models.
Перед началом работы
Чтобы начать работать в Yandex Cloud:
- Войдите в консоль управления
. Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям. - В сервисе Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его. - Если у вас еще нет каталога, создайте его.
Для работы из консоли управления подготовительные действия не требуются.
Чтобы воспользоваться примерами запроса через API, установите cURL
Для работы с API YandexGPT необходимо аутентифицироваться со своего аккаунта:
-
Получите IAM-токен: см. инструкцию для аккаунта на Яндексе или федеративного аккаунта.
-
Получите идентификатор каталога, на который у вашего аккаунта есть роль
ai.languageModels.user
или выше. -
При обращении к YandexGPT API через API передайте полученные параметры:
- в файле запроса в параметре
modelUri
указывайте идентификатор каталога; - в запросе в заголовке
Authorization
указывайте IAM-токен.
Authorization: Bearer <IAM-токен>
- в файле запроса в параметре
Другие способы аутентификации в API описаны на странице Аутентификация в API Yandex Foundation Models.
Сгенерируйте текст
Примечание
Чтобы повышать качество генерируемых ответов, YandexGPT API логирует промты пользователей. Не передавайте в запросах чувствительную информацию и персональные данные.
-
В консоли управления
выберите каталог, на который у вашего аккаунта есть рольai.languageModels.user
или выше. -
В списке сервисов выберите Foundation Models.
-
На панели слева выберите
Промт-режим YandexGPT. -
В поле Температура укажите значение от
0
до1
, которое определяет вариативность ответа модели: чем выше значение, тем более непредсказуемым будет результат выполнения запроса. -
В блоке Инструкции опишите контекст запроса.
-
В блоке Запрос опишите свой запрос к модели.
-
Нажмите кнопку Узнать ответ. Ответ отобразится в правой части экрана.
-
Создайте файл с телом запроса (например,
prompt.json
):{ "modelUri": "gpt://<идентификатор_каталога>/yandexgpt-lite", "completionOptions": { "stream": false, "temperature": 0.6, "maxTokens": "2000" }, "messages": [ { "role": "system", "text": "Найди ошибки в тексте и исправь их" }, { "role": "user", "text": "Ламинат подойдет для укладке на кухне или в детской комнате – он не боиться влаги и механических повреждений благодаря защитному слою из облицованных меламиновых пленок толщиной 0,2 мм и обработанным воском замкам." } ] }
Где:
-
modelUri
— идентификатор модели, которая будет использоваться для генерации ответа. Параметр содержит идентификатор каталога Yandex Cloud или идентификатор дообученной в DataSphere модели. -
completionOptions
— параметры конфигурации запроса:stream
— включает потоковую передачу частично сгенерированного текста. Принимает значенияtrue
илиfalse
.temperature
— чем выше значение этого параметра, тем более креативными и случайными будут ответы модели. Принимает значения от0
(включительно) до1
(включительно). Значение по умолчанию:0.3
.maxTokens
— устанавливает ограничение на выход модели в токенах. Максимальное число токенов генерации зависит от модели. Подробнее см. в разделе Квоты и лимиты в Yandex Foundation Models.
-
messages
— список сообщений, которые задают контекст для модели:-
role
— роль отправителя сообщения:user
— предназначена для отправки пользовательских сообщений к модели.system
— позволяет задать контекст запроса и определить поведение модели.assistant
— используется для ответов, которые генерирует модель. При работе в режиме чата ответы модели, помеченные рольюassistant
, включаются в состав сообщения для сохранения контекста беседы. Не передавайте сообщения пользователя с этой ролью.
-
text
— текстовое содержимое сообщения.
-
-
-
Отправьте запрос нейросети с помощью метода completion, выполнив команду:
export FOLDER_ID=<идентификатор_каталога> export IAM_TOKEN=<IAM-токен> curl \ --request POST \ --header "Content-Type: application/json" \ --header "Authorization: Bearer ${IAM_TOKEN}" \ --data "@prompt.json" \ "https://llm.api.cloud.yandex.net/foundationModels/v1/completion"
Где:
FOLDER_ID
— идентификатор каталога, на который у вашего аккаунта есть рольai.languageModels.user
или выше.IAM_TOKEN
— IAM-токен, полученный перед началом работы.
В ответе сервис вернет сгенерированный текст:
{ "result": { "alternatives": [ { "message": { "role": "assistant", "text": "Ламинат подходит для укладки на кухне и в детской комнате. Он не боится влажности и механических повреждений, благодаря защитному слою, состоящему из меланиновых плёнок толщиной 0.2 мм, и обработанным воском замкам." }, "status": "ALTERNATIVE_STATUS_TRUNCATED_FINAL" } ], "usage": { "inputTextTokens": "67", "completionTokens": "50", "totalTokens": "117" }, "modelVersion": "06.12.2023" } }