Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
gha-lab-8e9316151c — Контролируемая исследовательская лаборатория безопасности, воспроизводящая CVE-2024-1540 (инъекция команд в GitHub Actions в gradio-app/gradio deploy+test-visual.yml) — упрощённый снимок gradio-app/gradio @ f35f615e33a5dd90bfeb106b6f5dca689849fcef | Kitploit
Инструменты/GitHubGitHub/pvharmo2/gha-lab-8e9316151c
Анализ уязвимостейЭксплуатацияОбучение и ОбразованиеПодобранные Ресурсы
GitHubpvharmo2/gha-lab-8e9316151c

gha-lab-8e9316151c

Контролируемая исследовательская лаборатория безопасности, воспроизводящая CVE-2024-1540 (инъекция команд в GitHub Actions в gradio-app/gradio deploy+test-visual.yml) — упрощённый снимок gradio-app/gradio @ f35f615e33a5dd90bfeb106b6f5dca689849fcef

Репозиторий
121 ч 1 мин назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Автоматизированный исследовательский артефакт — не вышестоящий проект.

Этот репозиторий — одноразовая лаборатория, созданная автоматизированной системой для магистерской диссертации в Université Laval по воспроизведению опубликованных уязвимостей в рабочих процессах GitHub Actions. Это точный снимок gradio-app/gradio на коммите f35f615e33a5dd90bfeb106b6f5dca689849fcef (2024-02-09), распространяемый под лицензией этого проекта, файл которой включён в этот снимок без изменений.

Вышестоящий проект не участвует, никогда не является целью, а изучаемая здесь уязвимость уже публична. Каждый секрет и переменная в этом репозитории — случайно сгенерированное фиктивное значение; никаких реальных учётных данных здесь нет. Ссылки на действия и образы раннеров закреплены на те значения, которые они имели на 2024-02-09; см. pinning.md в выводе системы для каждого изменения, внесённого в снимок.

Вопросы или возражения: [email protected]


gradio

gradio-backend gradio-ui


PyPI
PyPI downloads
Python version
Twitter follow

Website | Documentation | Guides | Getting Started | Examples | 中文

Gradio: создавайте веб-приложения для машинного обучения — на Python

Gradio — это пакет Python с открытым исходным кодом, который позволяет быстро создавать демо или веб-приложение для вашей модели машинного обучения, API или любой произвольной функции Python. Затем вы можете поделиться ссылкой на своё демо или веб-приложение всего за несколько секунд с помощью встроенных функций общего доступа Gradio. Никакого опыта работы с JavaScript, CSS или веб-хостингом не требуется!

Для создания красивого демо, как показано выше, нужно всего несколько строк Python, так что давайте начнём 💫

Установка

Предварительное требование: Gradio требует Python 3.8 или выше

Мы рекомендуем устанавливать Gradio с помощью pip, который включён в Python по умолчанию. Выполните эту команду в терминале или командной строке:

root@kitploit:~
pip install gradio

[!TIP] Лучше всего устанавливать Gradio в виртуальное окружение. Подробные инструкции по установке для всех распространённых операционных систем приведены здесь.

Создание вашего первого демо

Вы можете запускать Gradio в любом удобном редакторе кода, Jupyter notebook, Google Colab или в любом другом месте, где вы пишете на Python. Давайте напишем ваше первое приложение Gradio:

root@kitploit:~
import gradio as gr

def greet(name, intensity):
    return "Hello " * intensity + name + "!"

demo = gr.Interface(
    fn=greet,
    inputs=["text", "slider"],
    outputs=["text"],
)

demo.launch()

[!TIP] Мы сокращаем импортируемое имя с gradio до gr для лучшей читаемости кода. Это широко принятое соглашение, которому вы должны следовать, чтобы любой, кто работает с вашим кодом, мог легко его понять.

Теперь запустите свой код. Если вы записали код Python в файл с именем, например, app.py, то вам нужно выполнить python app.py из терминала.

Демо ниже откроется в браузере по адресу http://localhost:7860, если вы запускаете его из файла. Если вы работаете в notebook, демо появится встроенным в notebook.

hello_world_4 demo

Введите своё имя в текстовое поле слева, перетащите ползунок, а затем нажмите кнопку Submit. Справа вы должны увидеть дружеское приветствие.

[!TIP] При локальной разработке вы можете запускать своё приложение Gradio в режиме горячей перезагрузки, который автоматически перезагружает приложение Gradio при каждом изменении файла. Для этого просто введите gradio перед именем файла вместо python. В приведённом выше примере вам нужно ввести: gradio app.py в терминале. Узнайте больше о горячей перезагрузке в Руководстве по горячей перезагрузке.

Понимание класса Interface

Вы заметите, что для создания первого демо вы создали экземпляр класса gr.Interface. Класс Interface предназначен для создания демо для моделей машинного обучения, которые принимают один или несколько входов и возвращают один или несколько выходов.

Класс Interface имеет три основных аргумента:

  • fn: функция, вокруг которой нужно создать пользовательский интерфейс (UI)
  • inputs: компонент(ы) Gradio для ввода. Количество компонентов должно соответствовать количеству аргументов вашей функции.
  • outputs: компонент(ы) Gradio для вывода. Количество компонентов должно соответствовать количеству возвращаемых значений вашей функции.

Аргумент fn очень гибкий — вы можете передать любую функцию Python, которую хотите обернуть в UI. В приведённом выше примере мы видели относительно простую функцию, но функция может быть чем угодно: от генератора музыки до калькулятора налогов или функции предсказания предобученной модели машинного обучения.

Аргументы input и output принимают один или несколько компонентов Gradio. Как мы увидим, Gradio включает более 30 встроенных компонентов (таких как gr.Textbox(), gr.Image() и gr.HTML()), предназначенных для приложений машинного обучения.

[!TIP] Для аргументов inputs и outputs вы можете передать имя этих компонентов в виде строки ("textbox") или экземпляр класса (gr.Textbox()).

Если ваша функция принимает более одного аргумента, как в приведённом выше случае, передайте список входных компонентов в inputs, причём каждый входной компонент соответствует одному из аргументов функции по порядку. То же самое верно, если ваша функция возвращает более одного значения: просто передайте список компонентов в outputs. Эта гибкость делает класс Interface очень мощным способом создания демо.

Мы подробнее рассмотрим gr.Interface в нашей серии о создании интерфейсов.

Публикация вашего демо

Что толку от красивого демо, если им нельзя поделиться? Gradio позволяет легко публиковать демо машинного обучения, не беспокоясь о хлопотах с хостингом на веб-сервере. Просто установите share=True в launch(), и для вашего демо будет создан общедоступный URL. Давайте вернёмся к нашему примеру демо, но изменим последнюю строку следующим образом:

root@kitploit:~
import gradio as gr

def greet(name):
    return "Hello " + name + "!"

demo = gr.Interface(fn=greet, inputs="textbox", outputs="textbox")
    
demo.launch(share=True)  # Share your demo with just 1 extra parameter 🚀

Когда вы запустите этот код, для вашего демо будет сгенерирован общедоступный URL за считанные секунды, например:

👉   https://a23dsf231adb.gradio.live

Теперь любой человек в мире может попробовать ваше демо Gradio в своём браузере, в то время как модель машинного обучения и все вычисления продолжают выполняться локально на вашем компьютере.

Чтобы узнать больше о публикации демо, прочитайте наше специальное руководство о публикации вашего приложения Gradio.

Обзор Gradio

До сих пор мы обсуждали класс Interface, который является высокоуровневым классом, позволяющим быстро создавать демо с помощью Gradio. Но что ещё умеет Gradio?

Чат-боты с gr.ChatInterface

Gradio включает ещё один высокоуровневый класс, gr.ChatInterface, который специально предназначен для создания интерфейсов чат-ботов. Как и в случае с Interface, вы предоставляете функцию, и Gradio создаёт полностью работающий интерфейс чат-бота. Если вы заинтересованы в создании чат-бота, вы можете сразу перейти к нашему специальному руководству по gr.ChatInterface.

Пользовательские демо с gr.Blocks

Gradio также предлагает низкоуровневый подход для проектирования веб-приложений с более гибкими макетами и потоками данных с помощью класса gr.Blocks. Blocks позволяет вам контролировать, где компоненты появляются на странице, обрабатывать сложные потоки данных (например, выходы могут служить входами для других функций) и обновлять свойства/видимость компонентов на основе взаимодействия с пользователем — и всё это на Python.

Вы можете создавать очень индивидуальные и сложные приложения с помощью gr.Blocks(). Например, популярный веб-интерфейс генерации изображений Automatic1111 Web UI построен на Gradio Blocks. Мы подробнее рассмотрим gr.Blocks в нашей серии о создании с помощью Blocks.

Экосистема Python и JavaScript Gradio

Это суть основной библиотеки Python gradio, но Gradio — это гораздо больше! Это целая экосистема библиотек Python и JavaScript, которые позволяют создавать приложения машинного обучения или программно запрашивать их на Python или JavaScript. Вот другие связанные части экосистемы Gradio:

  • Python-клиент Gradio (gradio_client): программный запрос любого приложения Gradio на Python.
  • JavaScript-клиент Gradio (@gradio/client): программный запрос любого приложения Gradio на JavaScript.
  • Gradio-Lite (@gradio/lite): создание приложений Gradio на Python, которые полностью работают в браузере (сервер не нужен!) благодаря Pyodide.
  • Hugging Face Spaces: самое популярное место для размещения приложений Gradio — бесплатно!

Что дальше?

Продолжайте изучать Gradio последовательно с помощью руководств Gradio, которые включают объяснения, а также примеры кода и встроенные интерактивные демо. Далее: ключевые особенности демо Gradio.

Или, если вы уже знаете основы и ищете что-то конкретное, вы можете поискать в более технической документации по API.

Вопросы?

Если вы хотите сообщить об ошибке или у вас есть запрос функции, пожалуйста, создайте issue на GitHub. По общим вопросам об использовании мы доступны на нашем сервере Discord и будем рады помочь.

Если вам нравится Gradio, пожалуйста, оставьте нам ⭐ на GitHub!

Стек с открытым исходным кодом

Gradio построен на основе множества замечательных библиотек с открытым исходным кодом!

huggingface python fastapi encode svelte vite pnpm tailwind storybook chromatic

Лицензия

Gradio распространяется под лицензией Apache License 2.0, которая находится в файле LICENSE в корневом каталоге этого репозитория.

Цитирование

Также ознакомьтесь со статьёй Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild, ICML HILL 2019, и, пожалуйста, цитируйте её, если используете Gradio в своей работе.

root@kitploit:~
@article{abid2019gradio,
  title = {Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild},
  author = {Abid, Abubakar and Abdalla, Ali and Abid, Ali and Khan, Dawood and Alfozan, Abdulrahman and Zou, James},
  journal = {arXiv preprint arXiv:1906.02569},
  year = {2019},
}
Скачать инструмент