Викиверситет ruwikiversity https://ru.wikiversity.org/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0 MediaWiki 1.47.0-wmf.1 first-letter Медиа Служебная Обсуждение Участник Обсуждение участника Викиверситет Обсуждение Викиверситета Файл Обсуждение файла MediaWiki Обсуждение MediaWiki Шаблон Обсуждение шаблона Справка Обсуждение справки Категория Обсуждение категории Портал Обсуждение портала Факультет Обсуждения факультета TimedText TimedText talk Модуль Обсуждение модуля Event Event talk Toolforge 0 30102 166185 166143 2026-05-05T13:26:03Z Bolo1910 233 166185 wikitext text/x-wiki <center>'''''Курс по Toolforge''' является частью обучающих материалов [[Веб-технологии|кафедры веб-технологий]].''</center> [[File:Toolforge logo.svg|right|thumb|Логотип Toolforge]] '''Toolforge''' ({{lang-ru|Тулфордж}}) — бесплатный облачный хостинг для участников проектов Викимедиа. Он предоставляет веб-серверы, доступ к данным, управление заданиями и другие функции, помогающие разработчикам создавать ''инструменты и ботов''. : Инструменты ({{lang-en|tools}}) — приложения, которые помогают в работе над проектами Викимедиа. : Боты ({{lang-en|Bots}}) — это автоматизированные программы, которые помогают вики-проектам, выполняя важные повторяющиеся задачи. :: Инструменты и боты могут выполнять самые разные задачи, например, помогать редакторам находить контент для улучшения, помогать в организации и проведении марафонов и конкурсов, визуализировать контент вики, бороться с вандализмом и многое другое. :: Многие инструменты и боты используют API MediaWiki для доступа к содержимому вики, метаданным, аналитическим данным и многому другому. === Основные характеристики Toolforge === * Бесплатный, надежный и масштабируемый облачный хостинг для: :* Веб-сервисов, использующих PHP, Python, Node.js, Java и другие языки или фреймворки, :* Ботов и запланированных задач (scheduled tasks). * ''Kubernetes'' — бэкенд для оркестровки. * Доступ к копиям (replicas) рабочих вики-баз данных и другим сервисам данных. * Доступ к общему хранилищу (shared storage), включая общедоступные дампы контента и данных Викимедиа. * Совместное управление (shared management) учетными записями (tool accounts). * Поддержка mosh, SSH, SFTP. * Система контроля версий Git. * Инструменты для отправки и получения электронной почты. * Поддержка Redis. * Поддержка Elasticsearch. === Ограничения Toolforge === * Весь код, запускаемый на Toolforge, должен приносить пользу проектам Wikimedia. * Использование Toolforge регулируется общими Условиями использования облачных сервисов (Cloud Services Terms of Use), а также правилами и политиками, специфичными для Toolforge (Toolforge-specific rules and policies). :* Правила Toolforge (Toolforge rules) включают публикацию вашего кода под лицензией с открытым исходным кодом, одобренной OSI (OSI approved). * Поскольку Toolforge — это управляемый сервис, вы ограничены пакетами (the packages), предоставляемыми Фондом Викимедиа на его серверах или устанавливаемыми через службу сборки (build service). Если ваш проект требует администрирования собственного виртуального сервера, рассмотрите вариант облачного VPS (Cloud VPS). * Объем памяти и хранилища ограничен 2 виртуальными процессорами и 8 ГБ оперативной памяти (quotas). Максимально рекомендуемый объем памяти для одного задания составляет 4 ГБ. Если вашему проекту требуется больше памяти, вы можете запросить увеличение квоты или использовать облачный VPS. * В настоящее время существует жесткое ограничение в 500 одновременных подключений к каждой вики, поэтому любой некорректно работающий инструмент может быть заблокирован без предупреждения, если он использует более 50 одновременных подключений. === Какие инструменты размещены на Toolforge? === * Toolforge предоставляет доступ к различным типам инструментов, включая веб-сервисы, ботов и запланированные задачи (scheduled tasks). * Чтобы просмотреть инструменты по типу, посетите [https://toolhub.wikimedia.org/ Toolhub]. Чтобы увидеть все инструменты, размещенные в настоящее время на Toolforge, используйте [https://toolsadmin.wikimedia.org/tools/ консоль администратора Toolforge] ("toolsadmin"). === Прежде чем начать === Для использования Toolforge вам необходимо: * Некоторые знания в области программирования, * Понимание командной строки Unix, * SSH-клиент (входит в состав большинства современных операционных систем), * [https://wikitech.wikimedia.org/wiki/Help:Create_a_Wikimedia_developer_account Учетная запись разработчика Wikimedia] и [https://meta.wikimedia.org/wiki/Help:Unified_login учетная запись Wikimedia] (используется для входа в Википедию и другие вики-проекты Wikimedia). === С чего начать === Следуйте краткому руководству по [[Начало работы с Toolforge|началу работы с Toolforge]], чтобы создать учетную запись и начать использовать Toolforge. Чтобы ознакомиться с API MediaWiki, попробуйте пройти [https://developer.wikimedia.org/build-tools/tutorials/ обучающий курс] или создайте прототип кода в [https://wikitech.wikimedia.org/wiki/PAWS PAWS] — среде Jupyter Notebook, размещенной на сервере Wikimedia. &nbsp; <center>''При создании курса по Тулфордж использовались материалы '''[[wikitech:Help:Toolforge|справки по Toolforge (на английском языке)]]''' в соответствии с условиями лицензии [https://creativecommons.org/licenses/by-sa/4.0/deed.ru CC BY-SA 4.0].''</center> [[Категория:Веб-технологии]] [[Категория:Toolforge]] 9vo2oqjpoosn3o5piciog1a7s52p6g7 Навыки Алисы/Разработка интерактивного квеста 0 30212 166188 166180 2026-05-05T16:25:37Z SemyonDudenkov 36586 /* Зафиксированная проблема отображения изображения */ 166188 wikitext text/x-wiki Эта подстраница описывает учебный навык «Петрозаводск Quiz»: голосовую викторину о достопримечательностях Петрозаводска. == Цель навыка == Навык «Петрозаводск Quiz» представляет собой голосовую викторину, предназначенную для проверки знаний пользователя о достопримечательностях Петрозаводска. В процессе игры навык последовательно задаёт пользователю пять вопросов, каждый из которых относится к одному из городских памятников или знаковых мест. После получения ответа навык проверяет его правильность. Если пользователь ошибается, система предоставляет подсказки: сначала текстовую, а при повторной ошибке — визуальную (изображение достопримечательности в карточке <code>BigImage</code> платформы Яндекс.Диалоги). В завершение викторины навык подсчитывает итоговый результат (количество правильных ответов) и предлагает пользователю сыграть снова. == Пользовательский сценарий == Пользователь запускает навык — он начинает работу без дополнительных команд. Как видно на [[:File:StartQwiz.png|скриншоте 1]], навык сразу после активации выводит приветствие и первый вопрос о достопримечательности Петрозаводска, не требуя от пользователя лишних действий. [[File:StartQwiz.png|thumb|Скриншот 1: начало игры — приветствие навыка и первый вопрос о достопримечательности Петрозаводска.]] Далее навык задаёт 5 вопросов. Если пользователь ошибается, даётся первая подсказка (текстовая). После второй ошибки на том же вопросе показывается вторая подсказка — визуальная, с изображением достопримечательности. [[:File:Petrozavodsk-Quiz-dialog-hints2.png|Скриншот 2]] демонстрирует этот момент: на экране видно, как после неверного ответа появляется текстовая подсказка (например, «Этот памятник находится в центре города, на Онежской набережной»), а затем — карточка с фотографией объекта. Благодаря этому пользователь может угадать объект визуально. [[File:Petrozavodsk-Quiz-dialog-hints2.png|thumb|Скриншот 2: текстовая подсказка (после первой ошибки) и визуальная подсказка с изображением (после второй ошибки).]] После ответа на все 5 вопросов выводится счёт и предложение сыграть снова. == Архитектура и компоненты == Архитектура навыка построена на '''webhook-подходе''', который предписан платформой Яндекс.Диалоги: все запросы от Алисы направляются на внешний HTTP-адрес, где работает обработчик. Все модули навыка работают в облачной среде '''Yandex Cloud Functions'''. '''Точка входа''' — <code>cloud_function.py</code>. Он принимает HTTP-запрос от Алисы и передаёт управление вебхук-обработчику <code>alice_handler.py</code>. Обработчик анализирует команды пользователя, извлекает состояние диалога (прогресс игры хранится в <code>session_state</code>) и вызывает игровой движок <code>game_engine.py</code>. Движок обращается к базе данных достопримечательностей <code>landmarks.py</code>, где для каждого объекта сохранены вопросы, текстовые подсказки, <code>image_id</code> для карточек и правильные ответы. На основе полученных данных формируется ответ Алисе — текст, подсказки, а при необходимости — карточка '''BigImage'''. Весь цикл (запрос → проверка → подсказка → обновление счёта) сохраняется между запросами благодаря <code>session_state</code>. '''Поток обработки запроса (пронумерованные шаги на диаграмме):''' [[File:Petrozavodsk_Quiz_architecture_diagram.png|thumb|center|600px|Диаграмма архитектуры учебного навыка Алисы «Petrozavodsk Quiz»: номерами показан порядок взаимодействия компонентов.]] # '''Пользователь отправляет команду''' — запрос (голосовой или текстовый) передаётся платформе Яндекс.Диалоги и направляется на webhook-адрес навыка. # '''Yandex Cloud Functions принимает запрос''' — облачная функция запускается и вызывает точку входа <code>cloud_function.handler</code>. # '''Webhook Handler читает состояние сессии''' — <code>alice_handler.py</code> загружает прогресс игры из <code>session_state</code>. # '''Webhook Handler вызывает игровой движок''' — обработчик передаёт управление <code>game_engine.py</code>. # '''Игровой движок запрашивает данные''' — <code>game_engine.py</code> отправляет запрос в <code>landmarks.py</code>. # '''База данных возвращает данные''' — <code>landmarks.py</code> отдаёт вопрос, подсказки и ответ. # '''Игровой движок возвращает результат''' — движок передаёт вебхук-обработчику новый счёт или подсказку. # '''Webhook Handler сохраняет прогресс''' — <code>alice_handler.py</code> записывает новое состояние в <code>session_state</code>. # '''Webhook Handler передаёт ответ в облачную функцию''' — формируется JSON-ответ. # '''Yandex Cloud Functions возвращает ответ пользователю''' — облачная функция отправляет ответ в Яндекс.Диалоги, после чего Алиса озвучивает или показывает карточку. '''Компоненты проекта:''' * '''<code>cloud_function.py</code>''' — точка входа для развёртывания в Yandex Cloud Functions, принимает HTTP-запросы от Алисы. * '''<code>alice_handler.py</code>''' — webhook-обработчик, анализирует команды пользователя, формирует ответ (текст, карточки, кнопки). * '''<code>game_engine.py</code>''' — игровая логика, проверка ответов, управление подсказками, подсчёт результата. * '''<code>landmarks.py</code>''' — база данных достопримечательностей Петрозаводска с вопросами, подсказками и изображениями. * '''<code>session_state</code>''' — хранилище прогресса игры между запросами пользователя. == Зафиксированная проблема отображения изображения == В интерфейсе навыка наблюдается дефект отображения визуальной подсказки во второй подсказке. Для показа изображений в навыках Яндекс.Алисы используется специальный тип карточки — '''BigImage'''. Это формат ответа, который выводит крупное изображение на экране устройства пользователя (подробнее см. [https://yandex.ru/dev/dialogs/alice/doc/ru/response-card-bigimage документацию Яндекс.Диалогов: карточка BigImage]). Карточка '''BigImage''' имеет фиксированное соотношение сторон, и платформа автоматически обрезает исходное изображение, чтобы оно вписалось в контейнер. На '''Скриншоте 3''' виден результат такой автоматической обрезки: у изображения памятника Петру I в Петрозаводске отображается только нижняя часть (постамент и ноги), а верхняя часть с лицом императора и якорем полностью отсутствует. Это проблема композиции исходного снимка: важный объект оказался слишком близко к верхнему краю, и при обрезке под формат '''BigImage''' он исчез. [[File:Petrozavodsk Quiz dialog collage.jpg|thumb|Скриншот 3: дефект отображения в карточке BigImage — у памятника Петру I видна только нижняя часть, верхняя обрезана платформой Алисы.]] '''Предполагаемая причина:''' изображение показывается в карточке типа '''BigImage''' с фиксированным соотношением сторон и автоматической обрезкой под контейнер клиента Алисы. '''Возможные решения:''' * подготовить отдельную версию изображения для карточки (кадрировать заранее так, чтобы ключевой объект был в центре); * использовать альтернативный <code>image_id</code> с более подходящей композицией (без важного объекта у верхней границы); * в тексте второй подсказки дополнительно дать пользователю ссылку на полное изображение в Викискладе/источнике. '''Мнение:''' наиболее практичный вариант для учебного проекта — заменить изображение подсказки на заранее кадрированную версию под формат карточки, так как это не требует изменения логики игры и даёт предсказуемый результат в интерфейсе. == Упражнения == <quiz display=simple> { Для чего навыку нужна передача состояния диалога через <code>session_state</code>? | type="()" } - Чтобы хранить только настройки интерфейса пользователя - Чтобы автоматически публиковать навык в каталоге + Чтобы сохранять прогресс игры между запросами пользователя { Почему для учебного проекта выбран webhook-подход? | type="()" } - Потому что webhook работает только в локальном CLI - Потому что webhook не требует JSON-формата + Потому что платформа Яндекс.Диалоги отправляет запросы на внешний HTTP-адрес навыка { Какую практическую пользу дают автотесты при доработке навыка? | type="()" } - Нужны только для ускорения загрузки изображений - Полезны только перед публикацией в каталог + Позволяют быстро проверить, что изменения не сломали существующую логику </quiz> 1tzje6wtui9wzl2ns6bi1rqfjmm6wu9 Начало работы с Toolforge 0 30280 166184 2026-05-05T13:25:20Z Bolo1910 233 Новая страница: «<center>'''''Курс по Toolforge''' является частью обучающих материалов [[Веб-технологии|кафедры веб-технологий]].''</center> [[File:Toolforge logo.svg|right|thumb|Логотип Toolforge]] На этой странице описаны шаги для получения доступа к Toolforge и начала работы с файлами в учетной записи. == Пол...» 166184 wikitext text/x-wiki <center>'''''Курс по Toolforge''' является частью обучающих материалов [[Веб-технологии|кафедры веб-технологий]].''</center> [[File:Toolforge logo.svg|right|thumb|Логотип Toolforge]] На этой странице описаны шаги для получения доступа к Toolforge и начала работы с файлами в учетной записи. == Получение доступа == Для доступа к Toolforge, Cloud VPS или другим инструментам разработчика Wikimedia вам необходимы следующие два типа учетных записей: === Wikimedia аккаунт === Также известен как "Wikimedia single user login (SUL)" аккаунт. Позволяет залогиниться в вики, такие как Википедия, MediaWiki.org, MetaWiki, и Wikitech. === Wikimedia developer аккаунт === Имя пользователя (также называемое именем пользователя LDAP) используется для входа в Gerrit, административную консоль Toolforge и другие технические инструменты Wikimedia. В GitLab это ваше отображаемое имя, поэтому вы можете захотеть, чтобы это было ваше полное имя. Изменить это позже будет невозможно. Имя пользователя оболочки Shell используется для входа в Toolforge, другие облачные VPS или производственные хосты Wikimedia с помощью SSH. [https://idm.wikimedia.org/signup/ Создать учетную запись разработчика Wikimedia] &nbsp; <center>''При создании курса по Тулфордж использовались материалы '''[[wikitech:Help:Toolforge/Quickstart|справки по Toolforge/Quickstart (на английском языке)]]''' в соответствии с условиями лицензии [https://creativecommons.org/licenses/by-sa/4.0/deed.ru CC BY-SA 4.0].''</center> [[Категория:Toolforge]] cm1wyalr6dih3xgalgxkefinz825r2r 166187 166184 2026-05-05T13:43:06Z Bolo1910 233 166187 wikitext text/x-wiki <center>'''''Курс по Toolforge''' является частью обучающих материалов [[Веб-технологии|кафедры веб-технологий]].''</center> [[File:Toolforge logo.svg|right|thumb|Логотип Toolforge]] На этой странице описаны шаги для получения доступа к Toolforge и начала работы с файлами в учетной записи. == Получение доступа == Для доступа к Toolforge, Cloud VPS или другим инструментам разработчика Wikimedia вам необходимы следующие два типа учетных записей: === Wikimedia аккаунт === Также известен как "Wikimedia single user login (SUL)" аккаунт. Позволяет залогиниться в вики, такие как Википедия, MediaWiki.org, MetaWiki, и Wikitech. [https://meta.wikimedia.org/wiki/Special:CreateAccount Создать учетную запись Викимедиа] === Wikimedia developer аккаунт === Имя пользователя (также называемое именем пользователя LDAP) используется для входа в Gerrit, административную консоль Toolforge и другие технические инструменты Wikimedia. В GitLab это ваше отображаемое имя, поэтому вы можете захотеть, чтобы это было ваше полное имя. Изменить это позже будет невозможно. Имя пользователя оболочки Shell используется для входа в Toolforge, другие облачные VPS или производственные хосты Wikimedia с помощью SSH. [https://idm.wikimedia.org/signup/ Создать учетную запись разработчика Wikimedia] == Вход в аккаунт Toolforge == [https://toolsadmin.wikimedia.org/ toolsadmin.wikimedia.org] == Подключение к серверам Toolforge через SSH. == Если вы используете OpenSSH, вы можете найти свой открытый ключ в файле ~/.ssh/id_rsa.pub == Вход в Toolforge == <syntaxhighlight lang="shell-session"> $ ssh -i <path-to-ssh-private-key> <shell-username>@login.toolforge.org </syntaxhighlight> &nbsp; <center>''При создании курса по Тулфордж использовались материалы '''[[wikitech:Help:Toolforge/Quickstart|справки по Toolforge/Quickstart (на английском языке)]]''' в соответствии с условиями лицензии [https://creativecommons.org/licenses/by-sa/4.0/deed.ru CC BY-SA 4.0].''</center> [[Категория:Toolforge]] 7q2u28jb0y28tl2ashiq6km4ztjbrhi 166189 166187 2026-05-06T10:16:56Z Bolo1910 233 166189 wikitext text/x-wiki <center>'''''Курс по Toolforge''' является частью обучающих материалов [[Веб-технологии|кафедры веб-технологий]].''</center> [[File:Toolforge logo.svg|right|thumb|Логотип Toolforge]] На этой странице описаны шаги для получения доступа к Toolforge и начала работы с файлами в учетной записи. == Получение доступа == Для доступа к Toolforge, Cloud VPS или другим инструментам разработчика Wikimedia вам необходимы следующие два типа учетных записей: === Wikimedia аккаунт === Также известен как "Wikimedia single user login (SUL)" аккаунт. Позволяет залогиниться в вики, такие как Википедия, MediaWiki.org, MetaWiki, и Wikitech. [https://meta.wikimedia.org/wiki/Special:CreateAccount Создать учетную запись Викимедиа] === Wikimedia developer аккаунт === Имя пользователя (также называемое именем пользователя LDAP) используется для входа в Gerrit, административную консоль Toolforge и другие технические инструменты Wikimedia. В GitLab это ваше отображаемое имя, поэтому вы можете захотеть, чтобы это было ваше полное имя. Изменить это позже будет невозможно. Имя пользователя оболочки Shell используется для входа в Toolforge, другие облачные VPS или производственные хосты Wikimedia с помощью SSH. [https://idm.wikimedia.org/signup/ Создать учетную запись разработчика Wikimedia] == Вход в аккаунт Toolforge == [https://toolsadmin.wikimedia.org/ toolsadmin.wikimedia.org] == Подключение к серверам Toolforge через SSH. == Если вы используете OpenSSH, вы можете найти свой открытый ключ в файле ~/.ssh/id_rsa.pub == Вход в Toolforge == <syntaxhighlight lang="shell-session"> $ ssh -i <path-to-ssh-private-key> <shell-username>@login.toolforge.org </syntaxhighlight> == Разрешение на запуск скрипта == <syntaxhighlight lang="shell-session"> $ chmod +x <script-name>.py </syntaxhighlight> == Запуск скрипта == <syntaxhighlight lang="shell-session"> $ ./<script-name>.py </syntaxhighlight> &nbsp; <center>''При создании курса по Тулфордж использовались материалы '''[[wikitech:Help:Toolforge/Quickstart|справки по Toolforge/Quickstart (на английском языке)]]''' в соответствии с условиями лицензии [https://creativecommons.org/licenses/by-sa/4.0/deed.ru CC BY-SA 4.0].''</center> [[Категория:Toolforge]] aizh55os3jwo305phock3eixwzwaoto Категория:Toolforge 14 30281 166186 2026-05-05T13:26:12Z Bolo1910 233 Новая страница: «[[Категория:Веб-технологии]]» 166186 wikitext text/x-wiki [[Категория:Веб-технологии]] p3ki9v2i2g8j151gmn66pcw5gkdpc9y