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

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

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

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

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

Категории

Все категории
Loading categories
gha-lab-40e23db109 — Лаборатория исследований безопасности: контролируемое воспроизведение CVE-2024-4254 (GHSA-fc78-c36r-cc59) — fork checkout/выполнение кода в deploy-website.yml в gradio-app/gradio @ d4c503a | Kitploit
Инструменты/GitHubGitHub/pvharmo2/gha-lab-40e23db109
Анализ уязвимостейБезопасность облачных средDevSecOpsБезопасность Цепочки ПоставокОбучение и Образование
GitHubpvharmo2/gha-lab-40e23db109

gha-lab-40e23db109

Лаборатория исследований безопасности: контролируемое воспроизведение CVE-2024-4254 (GHSA-fc78-c36r-cc59) — fork checkout/выполнение кода в deploy-website.yml в gradio-app/gradio @ d4c503a

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

Популярное

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

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

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

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

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

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

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

Вышестоящий проект не участвует, никогда не является целью, а изучаемая здесь уязвимость уже публична. Каждый секрет и переменная в этом репозитории — случайно сгенерированное фиктивное значение — никаких реальных учётных данных здесь нет. Ссылки на действия и образы раннеров закреплены на то, чем они были на 2024-08-02; см. 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, специально предназначенный для создания UI чат-ботов. Как и в Interface, вы предоставляете функцию, и Gradio создаёт полностью работающий UI чат-бота. Если вы заинтересованы в создании чат-бота, можете сразу перейти к нашему специальному руководству по 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},
}
Скачать инструмент