Skip to content

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

Open
eslazarev wants to merge 4 commits intoyandex-cloud:masterfrom
eslazarev:feat/wb-review-responder-tutorial
Open

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

Conversation

@eslazarev
Copy link
Copy Markdown

@eslazarev eslazarev commented May 1, 2026

Добавляет новое практическое руководство в раздел 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
Copy link
Copy Markdown

yfm-team commented May 1, 2026

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

@yfm-team
Copy link
Copy Markdown

yfm-team commented May 1, 2026

Возникла ошибка. Пожалуйста, свяжитесь с администратором и укажите идентификатор запроса: 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
Copy link
Copy Markdown

yfm-team commented May 1, 2026

Возникла ошибка. Пожалуйста, свяжитесь с администратором и укажите идентификатор запроса: 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
Copy link
Copy Markdown

yfm-team commented May 1, 2026

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 Добрый день! Проверьте, пожалуйста, пайплан, вроде указанные ошибки не относится к моим изменениям. Спасибо!

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants