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

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

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

Создать ассистента с инструментом WebSearch

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

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

AI Assistant API — это функциональность Foundation Models для создания AI-ассистентов. С его помощью можно создать персонализированных помощников, реализовывать сценарий генеративного ответа с учетом информации из внешних источников (RAG, Retrieval Augmented Generation), а также сохранять контекст запросов к модели.

Получать информацию из источников в интернете AI-ассистентам позволяет инструмент WebSearch.

Примечание

Использование инструмента WebSearch тарифицируется как генеративный ответ сервиса Yandex Search API.

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

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

cURL

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

Чтобы воспользоваться примерами, установите утилиты cURL и jq.

Создайте ассистентаСоздайте ассистента

cURL

Этот пример показывает, как создать ассистента, который для ответов использует информацию из интернета. В примере будет задействован базовый алгоритм работы с AI Assistant API через интерфейс REST API — создание ассистента и треда, а также последующее обращение к ассистенту с запросом.

В качестве внешних источников информации будут использованы официальный сайт Центрального банка Российской Федерации и сервис Курсы валют Яндекса. Если вы хотите искать информацию по всему интернету, то оставьте пустым значение поля options инструмента WebSearch.

  1. Создайте AI-ассистента:

    1. Создайте файл assistant.json с телом запроса на создание ассистента:

      assistant.json

      {
        "folderId": "<идентификатор_каталога>",
        "modelUri": "gpt://<идентификатор_каталога>/yandexgpt-lite/latest",
        "instruction": "Ты — умный помощник финансовой компании. Отвечай вежливо. Для ответов на вопросы воспользуйся инструментом поиска. Не придумывай ответ.",
        "tools": [
          {
            "genSearch": {
              "options": {
                "site": {
                  "site": [
                    "https://cbr.ru/",
                    "https://yandex.ru/finance/currencies"
                  ]
                },
                "enableNrfmDocs": true
              },
              "description": "Инструмент для получения информации об официальных курсах валют."
            }
          }
        ]
      }
      

      Где:

      • folderId — идентификатор каталога, на который у вашего аккаунта есть роли ai.assistants.editor и ai.languageModels.user или выше.

      • modelUri — URI используемой модели генерации текста.

      • instruction — базовая инструкция, в соответствии с которой AI-ассистент будет выполнять запросы пользователя.

      • tools — настройки инструмента, который будет использоваться создаваемым ассистентом:

        • site — массив сайтов, на которых ассистент будет иметь возможность искать информацию.
        • enableNrfmDocs — параметр, который определяет, попадут ли в результаты поиска документы, недоступные при прямом переходе с главных страниц заданных сайтов.
        • description — описание создаваемого инструмента, который позволяет ассистенту понять, нужно ли при генерации ответа на конкретный запрос использовать данный инструмент.

        Подробнее о доступных настройках инструмента WebSearch для поиска в интернете см. в разделе Инструмент WebSearch.

    2. Отправьте запрос на создание AI-ассистента, указав путь к созданному файлу assistant.json с телом запроса:

      export IAM_TOKEN=<IAM-токен>
      curl \
        --request POST \
        --header "Authorization: Bearer ${IAM_TOKEN}" \
        --silent \
        --data "@<путь_к_телу_запроса>" \
        "https://rest-assistant.api.cloud.yandex.net/assistants/v1/assistants" | \
        jq
      

      Где:

      • <IAM-токен> — IAM-токен, полученный перед началом работы.
      • <путь_к_телу_запроса> — путь к созданному ранее файлу с телом запроса assistant.json.
      Результат
      {
        "id": "fvthd7m0d6up********",
        "folder_id": "b1gt6g8ht345********",
        "name": "",
        "description": "",
        "created_by": "ajeol2afu1js********",
        "created_at": "2025-08-27T11:07:37.532517Z",
        "updated_by": "ajeol2afu1js********",
        "updated_at": "2025-08-27T11:07:37.532517Z",
        "expiration_config": {
          "expiration_policy": "SINCE_LAST_ACTIVE",
          "ttl_days": "7"
        },
        "expires_at": "2025-09-03T11:07:37.532517Z",
        "labels": {},
        "model_uri": "gpt://b1gt6g8ht345********/yandexgpt-lite/latest",
        "instruction": "Ты — умный помощник финансовой компании. Отвечай вежливо. Для ответов на вопросы воспользуйся инструментом поиска. Не придумывай ответ.",
        "prompt_truncation_options": {
          "max_prompt_tokens": null,
          "auto_strategy": {}
        },
        "completion_options": {
          "max_tokens": null,
          "temperature": null
        },
        "tools": [
          {
            "gen_search": {
              "options": {
                "site": {
                  "site": [
                    "https://cbr.ru/",
                    "https://yandex.ru/finance/currencies"
                  ]
                },
                "enable_nrfm_docs": true,
                "search_filters": []
              },
              "description": "Инструмент для получения информации об официальных курсах валют."
            }
          }
        ],
        "response_format": null
      }
      

      В ответ сервис вернет идентификатор созданного AI-ассистента. Сохраните полученный идентификатор (значение поля id) — он понадобится при обращении к ассистенту.

  2. Создайте тред:

    1. Создайте файл thread.json с телом запроса на создание треда, указав идентификатор каталога:

      thread.json

      {
        "folderId": "<идентификатор_каталога>"
      }
      
    2. Отправьте запрос на создание треда, указав путь к созданному файлу thread.json с телом запроса:

      curl \
        --request POST \
        --header "Authorization: Bearer ${IAM_TOKEN}" \
        --silent \
        --data "@<путь_к_телу_запроса>" \
        "https://rest-assistant.api.cloud.yandex.net/assistants/v1/threads" | \
        jq
      
      Результат
      {
        "id": "fvtfq63a134i********",
        "folder_id": "b1gt6g8ht345********",
        "name": "",
        "description": "",
        "default_message_author_id": "fvtsnf3tqbhg********",
        "created_by": "ajeol2afu1js********",
        "created_at": "2025-08-27T11:22:28.999319Z",
        "updated_by": "ajeol2afu1js********",
        "updated_at": "2025-08-27T11:22:28.999319Z",
        "expiration_config": {
          "expiration_policy": "SINCE_LAST_ACTIVE",
          "ttl_days": "7"
        },
        "expires_at": "2025-09-03T11:22:28.999319Z",
        "labels": {},
        "tools": []
      }
      

      Сохраните полученный идентификатор треда (значение поля id) — он понадобится позднее.

  3. Создайте сообщение в треде:

    1. Создайте файл message.json с телом запроса на создание сообщения, указав полученный ранее идентификатор треда и текст запроса:

      message.json

      {
        "threadId": "<идентификатор_треда>",
        "content": {
          "content": [
            {
              "text": {
                "content": "Какой официальный курс доллара установлен на сегодня?"
              }
            }
          ]
        }
      }
      
    2. Отправьте запрос на создание сообщения, указав путь к созданному файлу message.json с телом запроса:

      curl \
        --request POST \
        --header "Authorization: Bearer ${IAM_TOKEN}" \
        --silent \
        --data "@<путь_к_телу_запроса>" \
        "https://rest-assistant.api.cloud.yandex.net/assistants/v1/messages" | \
        jq
      

      Результат:

      {
        "id": "fvt6bpm6mbp5********",
        "thread_id": "fvtfq63a134i********",
        "created_by": "ajeol2afu1js********",
        "created_at": "2025-08-27T11:24:46.312977Z",
        "author": {
          "id": "fvtsnf3tqbhg********",
          "role": "USER"
        },
        "labels": {},
        "content": {
          "content": [
            {
              "text": {
                "content": "Какой официальный курс доллара установлен на сегодня?"
              }
            }
          ]
        },
        "status": "COMPLETED",
        "citations": []
      }
      
  4. Выполните запуск ассистента с созданным ранее сообщением:

    1. Создайте файл run.json с телом запроса на запуск ассистента, указав полученные ранее идентификаторы ассистента и треда:

      run.json

      {
        "assistantId": "<идентификатор_ассистента>",
        "threadId": "<идентификатор_треда>"
      }
      
    2. Отправьте запрос на запуск ассистента, указав путь к созданному файлу run.json с телом запроса:

      curl \
        --request POST \
        --header "Authorization: Bearer ${IAM_TOKEN}" \
        --silent \
        --data "@<путь_к_телу_запроса>" \
        "https://rest-assistant.api.cloud.yandex.net/assistants/v1/runs" | \
        jq
      

      Результат:

      {
        "id": "fvtar74rehg7********",
        "assistant_id": "fvthd7m0d6up********",
        "thread_id": "fvtfq63a134i********",
        "created_by": "ajeol2afu1js********",
        "created_at": "2025-08-27T11:31:06.486275281Z",
        "labels": {},
        "state": {
          "status": "PENDING"
        },
        "usage": null,
        "custom_prompt_truncation_options": null,
        "custom_completion_options": null,
        "tools": [],
        "custom_response_format": null
      }
      

      Сервис вернул информацию о запуске: запуск находится в ожидании выполнения (статус PENDING). Сохраните идентификатор запуска (значение поля id) — он понадобится на следующем шаге.

  5. Получите результат запуска с ответом ассистента. Для этого выполните запрос, указав полученный ранее идентификатор запуска:

    curl \
      --request GET \
      --header "Authorization: Bearer ${IAM_TOKEN}" \
      --silent \
      "https://rest-assistant.api.cloud.yandex.net/assistants/v1/runs/<идентификатор_запуска>" | \
      jq
    
    Результат
    {
      "id": "fvtar74rehg7********",
      "assistant_id": "fvthd7m0d6up********",
      "thread_id": "fvtfq63a134i********",
      "created_by": "ajeol2afu1js********",
      "created_at": "2025-08-27T11:31:06.486275281Z",
      "labels": {},
      "state": {
        "status": "COMPLETED",
        "completed_message": {
          "id": "fvt24upe31hh********",
          "thread_id": "fvtfq63a134i********",
          "created_by": "ajeol2afu1js********",
          "created_at": "2025-08-27T11:31:08.781561740Z",
          "author": {
            "id": "fvthd7m0d6up********",
            "role": "ASSISTANT"
          },
          "labels": {},
          "content": {
            "content": [
              {
                "text": {
                  "content": "Официальный курс доллара США к рублю Российской Федерации на сегодня составляет 80,5268 рубля за 1 доллар."
                }
              }
            ]
          },
          "status": "COMPLETED",
          "citations": []
        }
      },
      "usage": {
        "prompt_tokens": "390",
        "completion_tokens": "44",
        "total_tokens": "434"
      },
      "custom_prompt_truncation_options": null,
      "custom_completion_options": null,
      "tools": [],
      "custom_response_format": null
    }
    

    В поле content AI-ассистент вернул ответ модели, который был сгенерирован с использованием данных на сайтах, заданных в настройках ассистента.

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

  • Создать простого ассистента
  • Создать RAG-ассистента с инструментом VectorStore
  • Создать AI-ассистента для RAG с сохранением метаданных исходных файлов и индексов
  • Создать AI-ассистента с RAG по PDF-файлам со сложным форматированием
  • Инструменты для получения дополнительной информации
  • Примеры работы с ML SDK на GitHub

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

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