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

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

  • Перед началом работы
  • Реализуйте чат
  1. Пошаговые инструкции
  2. Agent Atelier
  3. Разработка AI-агентов
  4. Создать текстового агента с вызовом функции

Создать простого текстового агента с вызовом функции

Статья создана
Yandex Cloud
Обновлена 14 октября 2025 г.
  • Перед началом работы
  • Реализуйте чат

В Yandex AI Studio вы можете создать текстового агента с вызовом функции, способного взаимодействовать с пользователем в текстовом формате и поддерживать диалог, близкий к естественному человеческому общению.

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

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

Python

Получите данные для аутентификации в API, как описано в разделе Аутентификация в API Yandex AI Studio.

Реализуйте чатРеализуйте чат

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

    import openai
    from openai import OpenAI
    import json
    
    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_CLOUD_FOLDER
    )
    
    # 1. Определение списка функций, которые модель может вызывать
    tools = [
        {
            "type": "function",
            "name": "get_weather",
            "description": "Получить текущую погоду для указанного города.",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "description": "Название города, например: Петербург или Москва",
                    },
                },
                "required": ["city"],
            },
        },
    ]
    
    # Простейшая реализация функции (можно заменить на вызов реального API)
    def get_weather(city):
        # Здесь можно реализовать интеграцию, например, с Яндекс Погодой
        return {
            "город": city,
            "температура": "12 °C",
            "состояние": "Облачно, лёгкий ветер"
        }
    
    # Формирование списка сообщений, который будет пополняться
    input_list = [
        {"role": "user", "content": "Какая погода в Красноярске?"}
    ]
    
    # 2. Запрос модели с определенными функциями
    response = client.responses.create(
        model=f"gpt://{YANDEX_CLOUD_FOLDER}/{YANDEX_CLOUD_MODEL}",
        tools=tools,
        input=input_list,
    )
    
    # Добавление ввода модели в историю
    input_list += response.output
    
    for item in response.output:
        if item.type == "function_call":
            if item.name == "get_weather":
                # 3. Выполнение функции get_weather
                weather_info = get_weather(**json.loads(item.arguments))
    
                # 4. Передача результата функции обратно модели
                input_list.append({
                    "type": "function_call_output",
                    "call_id": item.call_id,
                    "output": json.dumps(weather_info)
                })
    
    print("Финальный ввод:")
    for item in input_list:
        if isinstance(item, dict) and item.get("type") == "function_call_output":
            parsed = json.loads(item["output"])
            print("function_call_output:", parsed)
        else:
            print(item)
    
    response = client.responses.create(
        model=f"gpt://{YANDEX_CLOUD_FOLDER}/{YANDEX_CLOUD_MODEL}",
        instructions="Отвечай только данными о погоде, которые вернула функция.",
        tools=tools,
        input=input_list,
    )
    
    # 5. Финальный ответ
    print("Финальный вывод:")
    print(response.model_dump_json(indent=2))
    print("\n" + response.output_text)
    
  2. Сохраните данные для аутентификации в переменные окружения:

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

    python index.py
    

    Пример ответа:

    Финальный ввод:
    {'role': 'user', 'content': 'Какая погода в Красноярске?'}
    ResponseFunctionToolCall(arguments='{"city":"Красноярск"}', call_id='get_weather', name='get_weather', type='function_call', id='get_weather', status='completed', valid=True)
    function_call_output: {'город': 'Красноярск', 'температура': '12 °C', 'состояние': 'Облачно, лёгкий ветер'}
    Финальный вывод:
    {
      "id": "70d96fac-1c4b-4f4a-9f80-56df********",
      "created_at": 1758556157206.0,
      "error": null,
      "incomplete_details": null,
      "instructions": "Отвечай только данными о погоде, которые вернула функция.",
      "metadata": null,
      "model": "gpt://b1gstllj8rgs********/yandexgpt",
      "object": "response",
      "output": [
        {
          "id": "f15c66e8-99a2-4647-a820-406e********",
          "content": [
            {
              "annotations": [],
              "text": "В Красноярске сейчас 12 °C, облачно, легкий ветер.",
              "type": "output_text",
              "logprobs": null,
              "valid": true
            }
          ],
          "role": "assistant",
          "status": "completed",
          "type": "message",
          "valid": true
        }
      ],
      "parallel_tool_calls": true,
      "temperature": null,
      "tool_choice": "auto",
      "tools": [
        {
          "name": "get_weather",
          "parameters": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string",
                "description": "Название города, например: Петербург или Москва"
              }
            },
            "required": [
              "city"
            ]
          },
          "strict": null,
          "type": "function",
          "description": "Получить текущую погоду для указанного города.",
          "valid": true
        }
      ],
      "top_p": null,
      "background": false,
      "conversation": null,
      "max_output_tokens": null,
      "max_tool_calls": null,
      "previous_response_id": null,
      "prompt": null,
      "prompt_cache_key": null,
      "reasoning": null,
      "safety_identifier": null,
      "service_tier": null,
      "status": "completed",
      "text": null,
      "top_logprobs": null,
      "truncation": null,
      "usage": null,
      "user": "",
      "valid": true
    }
    
    В Красноярске сейчас 12 °C, облачно, легкий ветер.
    

См. такжеСм. также

  • Обзор AI-моделей сервиса Yandex AI Studio

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

Предыдущая
Создать простого текстового агента
Следующая
Создать текстового агента с поиском по файлам
Проект Яндекса
© 2025 ООО «Яндекс.Облако»