Отправить запрос в фоновом режиме
При выполнении объемных задач генерации текста, например, в которых требуется обработка больших документов, наиболее эффективным может оказаться фоновый режим запросов.
В фоновом режиме Responses API в ответ на запрос не дожидается от модели результата генерации, а получает идентификатор задачи, после чего соединение разрывается. После этого вы можете с нужной вам периодичностью проверять статус задачи по ее идентификатору и, дождавшись выполнения, получить результат генерации.
Если у вас небольшой запрос, предусматривающий короткий ответ, или вы используете модель генерации текста в режиме чата используйте синхронный режим запросов.
Чтобы воспользоваться примером, создайте сервисный аккаунт с ролью ai.languageModels.user и получите для него API-ключ с областью действия yc.ai.foundationModels.execute.
import openai
import time
YANDEX_CLOUD_API_KEY = "<API-ключ>"
YANDEX_FOLDER_ID = "<идентификатор_каталога>"
YANDEX_CLOUD_MODEL = "yandexgpt"
client = openai.OpenAI(
api_key=YANDEX_CLOUD_API_KEY,
base_url="https://rest-assistant.api.cloud.yandex.net/v1",
project=YANDEX_FOLDER_ID,
)
# --- 1. Создаем ответ в фоне
resp = client.responses.create(
model=f"gpt://{YANDEX_FOLDER_ID}/{YANDEX_CLOUD_MODEL}",
input="Сделай краткое резюме текста: 'На платформе Yandex AI Studio доступно более 20 развёрнутых в облаке моделей в разных режимах работы. Самыми популярными по потреблению остаются модели семейства YandexGPT — на них приходится 62,7% от общего трафика на облачной платформе. Такой высокий спрос позволил снизить цены на собственные модели компании, сделав их более доступными. На втором и третьем местах — опенсорсные модели Qwen3‑235b от Alibaba Group (30,9%) и GPT‑OSS от OpenAI (5,7%).'",
background=True, # запускаем в фоне
)
print("Задача отправлена:", resp.id)
# --- 2. Опрашиваем статус
while True:
status = client.responses.retrieve(resp.id)
print("Статус:", status.status)
if status.status in ["completed", "failed", "cancelled"]:
break
time.sleep(2)
# --- 3. Получаем результат
if status.status == "completed":
print("Готовый ответ:", status.output_text)
else:
print("Ошибка:", status.status)
Где:
-
YANDEX_API_KEY— полученный API-ключ сервисного аккаунта. -
YANDEX_FOLDER_ID— идентификатор каталога сервисного аккаунта. -
resp— объект с результатами запроса на генерацию ответа.Возможные статусы результата генерации:
queued— задание находится в очереди на выполнение.in_progress— задание выполняется.failed— выполнение задания завершилось ошибкой.cancelled— выполнение задания было отменено.completed— задание успешно выполнено.
Результат генерации сохранится в поле
status.output_textпри переходе в статусcompleted.
Пример результата:
Задача отправлена: 1e5ee267-2d01-49d7-abf9-94b9********
Статус: queued
Статус: completed
Готовый ответ: В Yandex AI Studio доступно более 20 облачных моделей. Лидеры по популярности — модели YandexGPT (62,7% трафика), за ними следуют Qwen3‑235b (30,9%) и GPT‑OSS (5,7%). Высокий спрос на YandexGPT позволил снизить цены на модели компании.