Skip to content

Add tutorial: AI-сервис автоматических ответов на отзывы Wildberries#1107

Closed
eslazarev wants to merge 4 commits into
yandex-cloud:masterfrom
eslazarev:feat/wb-review-responder-tutorial
Closed

Add tutorial: AI-сервис автоматических ответов на отзывы Wildberries#1107
eslazarev wants to merge 4 commits into
yandex-cloud:masterfrom
eslazarev:feat/wb-review-responder-tutorial

Conversation

@eslazarev

@eslazarev eslazarev commented May 1, 2026

Copy link
Copy Markdown

Добавляет новое практическое руководство в раздел Cloud Functions: как развернуть открытый сервис автоматических ответов на отзывы покупателей в Wildberries с помощью Cloud Functions, YandexGPT и таймера.

Структура

Файлы добавлены по тому же шаблону, что и существующий tutorial video-converting-queue:

  • ru/_tutorials/_tutorials_includes/wildberries-review-responder/{index,console,paid-resources}.md — тело руководства (обзор, пошаговые инструкции, список тарифицируемых ресурсов).
  • ru/functions/tutorials/wildberries-review-responder/{index,console}.md — обёртки в разделе Cloud Functions с frontmatter canonical + noIndex: true и {% include %} тела.
  • ru/tutorials/serverless/wildberries-review-responder/{index,console}.md — обёртки в верхнеуровневом разделе «Практические руководства → Бэкенд на Serverless».
  • Зеркальный набор в en/... для англоязычной документации.
  • ru/functions/toc.yaml, ru/tutorials/toc.yaml, en/functions/toc.yaml, en/tutorials/toc.yaml — регистрация во всех TOC (в tutorials/toc.yaml руководство добавлено в две секции, как и video-converting-queue).

Содержание руководства

В одном файле console.md через {% list tabs %} представлены два способа развёртывания:

  1. Serverless Framework (рекомендуемый, быстрый) — одна команда serverless deploy создаёт функцию, оба сервисных аккаунта (с ролями ai.languageModels.user и functions.functionInvoker) и таймер-триггер по манифесту serverless.yml.
  2. Консоль управления — ручной сценарий: создание сервисных аккаунтов, загрузка ZIP-архива в функцию, настройка таймера-триггера.

Внутри сервиса используется паттерн авторизации YandexGPT через IAM-токен сервисного аккаунта из context.token без явного API-ключа — переменная LLM__API_KEY остаётся пустой/null.

Исходный код, тесты, Dockerfile и Helm chart — в открытом репозитории под лицензией MIT: https://github.com/eslazarev/ai-wildberries-review-responder.

Что не вошло

  • Вариант с Terraform — у сервиса нет готового манифеста *.tf, поэтому не описан.

CLA

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en

eslazarev added 2 commits May 1, 2026 13:01
Adds a new tutorial showing how to deploy an open-source service that
auto-responds to Wildberries marketplace reviews using Cloud Functions
and YandexGPT, triggered by a timer.

Files:
- ru/_tutorials/_tutorials_includes/wildberries-review-responder/{index,console,paid-resources}.md
  — actual tutorial body (overview, full step-by-step, paid resources list)
- ru/functions/tutorials/wildberries-review-responder/{index,console}.md
  — entry shells under the Cloud Functions section
- ru/tutorials/serverless/wildberries-review-responder/{index,console}.md
  — top-level shells under Tutorials -> Serverless
- ru/functions/toc.yaml, ru/tutorials/toc.yaml
  — registration in both TOCs (mirrors the video-converting-queue pattern)

The tutorial supports two deployment paths via a tabs block:
1. Serverless Framework (recommended) — one `serverless deploy` command
   creates the function, both service accounts (ai.languageModels.user
   for the function, functions.functionInvoker for the trigger) and the
   timer trigger from the manifest in serverless.yml.
2. Console — manual flow that creates the service accounts, function
   (uploaded as a zip), and timer trigger separately.

Source code, tests, Dockerfile and Helm chart for the service live at
https://github.com/eslazarev/ai-wildberries-review-responder (MIT).

I hereby agree to the terms of the CLA available at:
https://yandex.ru/legal/cla/?lang=en
Mirrors the RU version added in the previous commit:
- en/_tutorials/_tutorials_includes/wildberries-review-responder/{index,console,paid-resources}.md
- en/functions/tutorials/wildberries-review-responder/{index,console}.md
- en/tutorials/serverless/wildberries-review-responder/{index,console}.md
- en/functions/toc.yaml + en/tutorials/toc.yaml registration in both
  Serverless backend sections (mirroring the video-converting-queue layout).
@yfm-team

yfm-team commented May 1, 2026

Copy link
Copy Markdown

Возникла ошибка. Пожалуйста, свяжитесь с администратором и укажите идентификатор запроса: e5489c56-284b-4956-9bb3-54391449c35b

@yfm-team

yfm-team commented May 1, 2026

Copy link
Copy Markdown

Возникла ошибка. Пожалуйста, свяжитесь с администратором и укажите идентификатор запроса: fdd524a8-8da6-4b80-9de6-ef3ea49a3571

Three issues caught by the YFM validator:

1. `[{{ yagpt-full-name }}]({{ yagpt-full-name }})` was a self-referential
   markdown link with the variable used both as the visible text and as
   the URL — the URL resolved to plain text "YandexGPT API" which is
   not a link. Replace the URL with `{{ link-docs-ai }}ai-studio/concepts/generation/index`,
   matching the pattern already used in tracker-yandexgpt-postbox-integrations.md.

2. `../../../foundation-models/pricing.md` resolved to a non-existent
   file (`foundation-models/` is not a top-level docs directory).
   Replace with `{{ link-docs-ai }}ai-studio/pricing`.

3. The "Test version" button was referenced via a non-existent UI key
   `ui-key.yacloud.serverless-functions.item.test-action.button_test-version`.
   The canonical flow uses the Testing tab + Run test button + result
   fields, as in applied/datalens.md. Rewrite the test step accordingly.

Same fixes applied to the EN mirror.
@yfm-team

yfm-team commented May 1, 2026

Copy link
Copy Markdown

Возникла ошибка. Пожалуйста, свяжитесь с администратором и укажите идентификатор запроса: 6d3f534e-504e-49be-890f-8fe8a5182d88

The include _tutorials/_tutorials_includes/wildberries-review-responder/index.md
referenced sibling files (`console.md` and `console.md#paid-resources`).
YFM resolves these relative to the include's own location, where they
exist as files but are not declared in any TOC, so YFM003 reported the
link as unreachable from each of the four wrapper index.md files
(ru/en × functions/tutorials and tutorials/serverless).

Match the video-converting-queue layout: keep the include focused on
shared narrative, and place the deployment-method bullet and the
paid-resources note in each wrapper, where the relative paths resolve
to the wrapper's own console.md.
@yfm-team

yfm-team commented May 1, 2026

Copy link
Copy Markdown

Commit: dcee719
Проверьте результат: RU.
Check the result: EN.
Есть ошибки. Проверьте результат и исправьте их:

⚠️ Variable version.name not found in ru/managed-kubernetes/concepts/k8s-supported-versions.md
⚠️ Variable version.rapid not found in ru/managed-kubernetes/concepts/k8s-supported-versions.md
⚠️ Variable version.regular not found in ru/managed-kubernetes/concepts/k8s-supported-versions.md
⚠️ Variable version.stable not found in ru/managed-kubernetes/concepts/k8s-supported-versions.md
⚠️ Variable version.deprecated not found in ru/managed-kubernetes/concepts/k8s-supported-versions.md
⚠️ Variable version.name not found in en/managed-kubernetes/concepts/k8s-supported-versions.md
⚠️ Variable version.rapid not found in en/managed-kubernetes/concepts/k8s-supported-versions.md
⚠️ Variable version.regular not found in en/managed-kubernetes/concepts/k8s-supported-versions.md
⚠️ Variable version.stable not found in en/managed-kubernetes/concepts/k8s-supported-versions.md
⚠️ Variable version.deprecated not found in en/managed-kubernetes/concepts/k8s-supported-versions.md

@eslazarev

Copy link
Copy Markdown
Author

@redalka-cloud Добрый день! Проверьте, пожалуйста, пайплан, вроде указанные ошибки не относится к моим изменениям. Спасибо!

@redalka-cloud redalka-cloud added the cloud-functions Cloud Functions label May 11, 2026
@myusosnovskay

Copy link
Copy Markdown
Contributor

Добрый день! Спасибо за ваш интерес к документации Yandex Cloud!

К сожалению, мы не сможем принять ваше практическое руководство, потому что в значительной степени оно полагается на сторонний ресурс: мы не сможем проверить проходимость руководства и поддерживать его актуальность.

Будем рады другим практическим руководствам, которые в большей степени фокусируются на технологиях Yandex Cloud.

@eslazarev

Copy link
Copy Markdown
Author

Добрый день! @myusosnovskay
Спасибо за ответ.
Вы можете, пожалуйста, пояснить на какие сторонние ресурсы полагается код?

Используется Yandex Cloud Functions и Yandex Alisa AI для реализации функционала.
В остальном только python и serverless для быстрого деплоя!

Спасибо!

@myusosnovskay

Copy link
Copy Markdown
Contributor

Добрый день! @myusosnovskay Спасибо за ответ. Вы можете, пожалуйста, пояснить на какие сторонние ресурсы полагается код?

Используется Yandex Cloud Functions и Yandex Alisa AI для реализации функционала. В остальном только python и serverless для быстрого деплоя!

Спасибо!

Речь про Wildberries. Чтобы убедиться в том, что ваше руководство полностью проходимо, потребуется доступ к кабинету продавца и товары с отзывами.

@eslazarev

Copy link
Copy Markdown
Author

@myusosnovskay, спасибо за ответ и пояснение!

Если критерий отказа - «руководство полагается на сторонний ресурс, проходимость которого редакция не может проверить», то в опубликованной документации Yandex Cloud уже есть несколько принятых практических руководств, которые завязаны на сторонние сервисы ровно в той же степени, и их тоже невозможно пройти без аккаунта во внешнем сервисе:

Во всех этих случаях у редакции так же нет доступа к стороннему ресурсу (Telegram-бот, Slack workspace, GitHub-репозиторий), и это не помешало их принять. Wildberries в моём руководстве играет ровно такую же роль - внешний источник данных, как Telegram/Slack/GitHub в перечисленных туториалах.

При этом ядро руководства — это технологии Yandex Cloud:

  • Cloud Functions - сам сервис;
  • YandexGPT - генерация ответов;
  • Timer-триггер - запуск по расписанию;
  • авторизация YandexGPT через IAM-токен сервисного аккаунта из context.token без явного API-ключа.

Сторонний API (Wildberries) используется только для получения отзывов и публикации ответов — это не более «непроверяемо», чем токен от @BotFather или GitHub PAT в уже принятых руководствах.

Буду признателен, если вы повторно рассмотрите PR с учётом этих прецедентов.

Спасибо!

@myusosnovskay

Copy link
Copy Markdown
Contributor

@eslazarev Указанные вами инструменты мы используем в работе, в отличие от кабинета продавца Wildberries. Принять руководство мы не сможем.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cloud-functions Cloud Functions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants