Yandex Cloud
Поиск
Связаться с намиПопробовать бесплатно
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Истории успеха
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»
Yandex AI Studio
  • О сервисе Yandex AI Studio
  • Начало работы с Model Gallery
  • Yandex Workflows
    • Все инструкции
    • Отключить логирование запросов
    • Получить API-ключ
      • Создать простого текстового агента
      • Создать текстового агента с вызовом функции
      • Создать голосового агента с помощью Realtime API
      • Выполнить задачу с помощью Code Interpreter
      • Управление контекстом диалога
  • Переход с AI Assistant API на Responses API
  • Совместимость с OpenAI
  • Квоты и лимиты
  • Правила тарификации
  • Управление доступом
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Термины и определения

В этой статье:

  • Перед началом работы
  • Создайте агента
  1. Пошаговые инструкции
  2. Agent Atelier
  3. Выполнить задачу с помощью Code Interpreter

Выполнить задачу с помощью Code Interpreter

Статья создана
Yandex Cloud
Обновлена 13 февраля 2026 г.
  • Перед началом работы
  • Создайте агента

Примечание

Функциональность находится на стадии Preview.

В Yandex AI Studio с помощью инструмента исполнения кода Code Interpreter вы сможете расширить возможности модели, чтобы она писала и выполняла Python-код в изолированной тестовой среде. Инструмент полезен для задач, в которых модель должна считать, проверять и преобразовывать данные, а не ограничиваться текстовыми рассуждениями.

Примечание

Сессии с Code Interpreter являются контекстно-нагруженными (код, данные, результаты выполнения). Для них рекомендуется использовать модели с большим контекстным окном, например Qwen.

Перед началом работыПеред началом работы

Чтобы воспользоваться примером:

Python
  1. Создайте сервисный аккаунт и назначьте ему роли ai.assistants.editor и ai.languageModels.user.

  2. Получите и сохраните API-ключ сервисного аккаунта, указав для него область действия yc.ai.foundationModels.execute.

    Примечание

    Если вы используете ОС Windows, рекомендуем предварительно установить оболочку WSL и выполнять дальнейшие действия в этой оболочке.

  3. Установите Python версии 3.10 или выше.

  4. Установите библиотеку Python venv для создания изолированных виртуальных окружений в Python.

  5. Создайте и войдите в новое виртуальное окружение Python:

    python3 -m venv new-env
    source new-env/bin/activate
    
  6. Установите библиотеку OpenAI для Python:

    pip install openai
    

Создайте агентаСоздайте агента

Python
  1. Создайте файл Presentation.py и добавьте в него код:

    import openai
    import json
    import os     
    
    YC_MODEL = "qwen3-235b-a22b-fp8"
    
    client = openai.OpenAI(
        api_key=YC_API_KEY,
        base_url="https://ai.api.cloud.yandex.net/v1",
        project=YC_FOLDER_ID
    )
    
    instruction = """
    Ты программист на питоне и умеешь писать и выполнять код для решения поставленной задачи
    Проверь сначала наличие нужных тебе библиотек и если их нет – установи их
    """
    
    prompt = """
    Сделай мне подробную презентацию в формате pptx про производные – что это такое, как их считать, добавь инфографики.
    Слайдов должно быть не менее 5
    """
    
    stream = client.responses.create(
        model=f"gpt://{YC_FOLDER_ID}/{YC_MODEL}",
        input=prompt,
        # instructions=instruction,
        tool_choice="auto",
        temperature=0.3,
        tools=[
            {
                "type": "code_interpreter",
                "container": {
                    "type": "auto",
                }
            }
        ],
        stream=True
    )
    
    resp_id = None
    
    print("Начало обработки запроса...\n")
    
    for event in stream:
        if event.type == "response.output_text.delta":
            print(event.delta, end='')
        elif event.type == "response.code_interpreter_call_code.delta":
            print(event.delta, end='')
        elif event.type == "response.reasoning_text.delta":
            print(event.delta, end='')
        elif event.type == "response.reasoning_summary_text.delta":
            print(event.delta, end='')
        elif event.type == "response.code_interpreter_call_code.done":
            print(f"\n\nИтоговый код:\n{event.code}\n")
        elif event.type == "response.code_interpreter_call.in_progress":
            print("\n[Выполняем код...]\n")
        elif event.type == "response.code_interpreter_call.done":
            print("\n[Код выполнен]\n")
        elif event.type == "response.in_progress":
            resp_id = event.response.id
            print(f"\n[Обрабатываем респонс {resp_id}]\n")
    
    print(f"\n\nЗадача решена: {resp_id}\n")
    print("=" * 50 + "\n")
    
    # Получение полного ответа
    response = client.responses.retrieve(resp_id)
    
    # Обработка результатов и скачивание файлов
    print("Обработка результатов выполнения:")
    os.makedirs("./downloaded_files", exist_ok=True)
    
    downloaded_count = 0
    for item in response.output:
        # Вывод результатов выполнения кода
        if item.type == "code_interpreter_call":
            print("\nКод:\n")
            print(item.code, '\n')
            for output_item in item.outputs:
                output_type = output_item.type
                logs = output_item.logs.strip()
                if logs:
                    print(f"[{output_type.upper()}] Вывод:")
                    for log_line in logs.split('\n'):
                        print(f"        {log_line}")
    
        # Скачивание файлов из контейнера
        elif item.type == "message":
            for content in item.content:
                # Проверяем наличие аннотаций с файлами
                if hasattr(content, 'annotations') and content.annotations:
                    for annotation in content.annotations:
                        if annotation.type == "container_file_citation":
                            file_id = annotation.file_id
                            file_name = annotation.filename
    
                            print(f"\n📎 Найден файл: {file_name} (ID: {file_id})")
    
                            try:
                                # Скачиваем файл
                                file_content = client.files.content(file_id)
                                
                                # Сохраняем локально
                                local_path = os.path.join("./downloaded_files", file_name)
                                with open(local_path, 'wb') as f:
                                    f.write(file_content.read())
                                
                                print(f"✅ Файл сохранен: {local_path}")
                                downloaded_count += 1
                            except Exception as e:
                                print(f"❌ Ошибка при скачивании файла {file_name}: {e}")
    
    if downloaded_count > 0:
        print(f"\n✅ Всего скачано файлов: {downloaded_count}")
    else:
        print("\nℹ️  Файлы для скачивания не найдены.")
    
    print("\n" + "=" * 50 + "\n")
    
    # Полный ответ
    print("Полный ответ (JSON):")
    print(json.dumps(response.model_dump(), indent=2, ensure_ascii=False))
    
  2. Сохраните данные для аутентификации в переменные окружения:

    export YC_FOLDER_ID=<идентификатор_каталога>
    export YC_API_KEY=<API-ключ>
    
  3. Выполните созданный файл:

    python presentation.py
    

Рядом с выполненным файлом будет создана папка downloaded_files с результатами работы модели: файл презентации в формате PPTX и графики. Отчет о проделанной работе будет выведен в консоль.

Фрагмент ответа
Я успешно создал для вас подробную презентацию о производных в формате PowerPoint (PPTX). Презентация содержит **6 слайдов**, включая титульный, теоретические объяснения, правила дифференцирования, примеры, графическую интерпретацию с инфографикой и применение производных в реальной жизни.

### Содержание презентации:
1. **Титульный слайд** — название и подзаголовок.
2. **Что такое производная?** — определение, геометрический смысл, обозначения.
3. **Правила дифференцирования** — основные формулы и законы.
4. **Примеры вычисления** — пошаговые расчёты для разных функций.
5. **Графическая интерпретация** — график функции \( y = x^2 \) и касательная в точке \( x = 1 \) (с визуализацией).
6. **Применение производных** — физика, экономика, машинное обучение и другие области.

...

📎 Найден файл: Proizvodnye_Presentation.pptx (ID: fvttk7sto2ne********)
✅ Файл сохранен: ./downloaded_files\Proizvodnye_Presentation.pptx

📎 Найден файл: tangent_plot.png (ID: fvtt18umj1gn********)
✅ Файл сохранен: ./downloaded_files\tangent_plot.png

✅ Всего скачано файлов: 2

Была ли статья полезна?

Предыдущая
Создать голосового агента с помощью Realtime API
Следующая
Управление контекстом диалога
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»