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

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

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

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

Статья создана
Yandex Cloud
Обновлена 19 августа 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.

Установите утилиты gRPCurl и jq.

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

cURL

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

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

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

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

      assistant.json

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

      Где:

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

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

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

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

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

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

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

      export IAM_TOKEN=<IAM-токен>
      grpcurl \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d @ < <путь_к_телу_запроса> \
        assistant.api.cloud.yandex.net:443 yandex.cloud.ai.assistants.v1.AssistantService/Create |
        jq
      

      Где:

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

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

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

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

      thread.json

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

      grpcurl \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d @ < <путь_к_телу_запроса> \
        assistant.api.cloud.yandex.net:443 yandex.cloud.ai.assistants.v1.threads.ThreadService/Create |
        jq
      
      Результат
      {
        "id": "fvt8tf1c3beu********",
        "folder_id": "b1gt6g8ht345********",
        "default_message_author_id": "fvt1qo9usone********",
        "created_by": "ajeol2afu1js********",
        "created_at": "2025-08-13T10:50:52.289620Z",
        "updated_by": "ajeol2afu1js********",
        "updated_at": "2025-08-13T10:50:52.289620Z",
        "expiration_config": {
          "expiration_policy": "SINCE_LAST_ACTIVE",
          "ttl_days": "7"
        },
        "expires_at": "2025-08-20T10:50:52.289620Z"
      }
      

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

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

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

      message.json

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

      grpcurl \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d @ < <путь_к_телу_запроса> \
        assistant.api.cloud.yandex.net:443 yandex.cloud.ai.assistants.v1.threads.MessageService/Create |
        jq
      

      Результат:

      {
        "id": "fvtfgeqhe4ct********",
        "thread_id": "fvth2n5v4i7e********",
        "created_by": "ajeol2afu1js********",
        "created_at": "2025-08-05T09:18:48.515453Z",
        "author": {
          "id": "fvtivd1j5ica********",
          "role": "USER"
        },
        "content": {
          "content": [
            {
              "text": {
                "content": "Какой курс доллара установлен Банком России на сегодня?"
              }
            }
          ]
        },
        "status": "COMPLETED"
      }
      
  4. Выполните запуск ассистента с созданным ранее сообщением:

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

      run.json

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

      grpcurl \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d @ < <путь_к_телу_запроса> \
        assistant.api.cloud.yandex.net:443 yandex.cloud.ai.assistants.v1.runs.RunService/Create |
        jq
      

      Результат:

      {
        "id": "fvtqms73nvkl********",
        "assistant_id": "fvt1m68ugu04********",
        "thread_id": "fvtv9ikd6lme********",
        "created_by": "ajeol2afu1js********",
        "created_at": "2025-08-05T09:23:55.096007666Z",
        "state": {
          "status": "PENDING"
        }
      }
      

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

  5. Получите результат запуска с ответом ассистента:

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

      get_result.json

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

      grpcurl \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d @ < <путь_к_телу_запроса> \
        assistant.api.cloud.yandex.net:443 yandex.cloud.ai.assistants.v1.runs.RunService/Get |
        jq
      
      Результат
      {
        "id": "fvtr0r43s94a********",
        "assistant_id": "fvtshcldmbcm********",
        "thread_id": "fvth2n5v4i7e********",
        "created_by": "ajeol2afu1js********",
        "created_at": "2025-08-04T19:01:56.736924537Z",
        "state": {
          "status": "COMPLETED",
          "completed_message": {
            "id": "fvtlspo6k12e********",
            "thread_id": "fvth2n5v4i7e********",
            "created_by": "ajeol2afu1js********",
            "created_at": "2025-08-04T19:01:58.960131555Z",
            "author": {
              "id": "fvtshcldmbcm********",
              "role": "ASSISTANT"
            },
            "content": {
              "content": [
                {
                  "text": {
                    "content": "Официальный курс доллара США на сегодня составляет 79,6736 рубля за 1 доллар. Эту информацию можно подтвердить на сайте Центрального банка Российской Федерации (cbr.ru/currency_base/daily/)."
                  }
                }
              ]
            },
            "status": "COMPLETED"
          }
        },
        "usage": {
          "prompt_tokens": "376",
          "completion_tokens": "59",
          "total_tokens": "435"
        }
      }
      

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

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

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

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

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