Что такое sdk gradio в Python

Tags:

Published 8 сентября 2025 г. 14:33 by max_summer

Gradio SDK — это инструмент для быстрого создания интерактивных веб-интерфейсов (UI) для машинного обучения и Python-функций. Он позволяет разработчикам легко развертывать модели, скрипты или API в виде удобных веб-приложений с минимальными усилиями.


Основные возможности Gradio SDK

  1. Простота использования:
  2. Создание UI для Python-функций в несколько строк кода.
  3. Поддержка различных типов входных/выходных данных (текст, изображения, аудио, видео, таблицы и др.).

  4. Интерактивные компоненты:

  5. Виджеты для ввода/вывода: текстовые поля, слайдеры, чекбоксы, загрузка файлов, камеры и т. д.
  6. Автоматическая генерация интерфейса на основе аннотаций типов (type hints).

  7. Развертывание:

  8. Локальный запуск (gradio.App.launch()).
  9. Развертывание в облаке (через Hugging Face Spaces, Google Colab, Replit и др.).
  10. Встроенная поддержка для обмена ссылками (например, share=True для временного хостинга).

  11. Интеграция с ML-фреймворками:

  12. Работает с TensorFlow, PyTorch, scikit-learn, Hugging Face Transformers и другими библиотеками.

  13. Кастомизация:

  14. Настройка внешнего вида (темы, макеты, CSS).
  15. Поддержка нескольких интерфейсов в одном приложении (вкладки, блоки).

Пример использования

1. Установка

bash pip install gradio

2. Простое приложение

```python import gradio as gr

def greet(name): return f"Hello, {name}!"

Создание интерфейса

demo = gr.Interface( fn=greet, # Функция для выполнения inputs="text", # Тип ввода (текстовое поле) outputs="text", # Тип вывода (текст) title="Приветствие", # Заголовок description="Введите ваше имя" # Описание )

Запуск приложения

demo.launch() `` **Результат**: Откроется локальный сервер (обычно по адресуhttp://127.0.0.1:7860`), где можно ввести имя и получить приветствие.


3. Пример с изображением (классификация)

```python import gradio as gr import numpy as np

def classify_image(image): # Пример: возвращаем случайный класс classes = ["Кот", "Собака", "Птица"] probs = np.random.rand(len(classes)) probs /= probs.sum() # Нормализация return {cls: float(prob) for cls, prob in zip(classes, probs)}

demo = gr.Interface( fn=classify_image, inputs=gr.Image(type="pil"), # Ввод: изображение outputs=gr.Label(num_top_classes=3), # Вывод: метки с вероятностями examples=[["cat.jpg"], ["dog.jpg"]] # Примеры файлов )

demo.launch() ```


4. Сложный интерфейс с несколькими входами/выходами

```python import gradio as gr

def chatbot_response(message, history): history = history or [] response = f"Вы сказали: {message}" history.append((message, response)) return history, history # Возвращаем историю для чата и лога

with gr.Blocks() as demo: chatbot = gr.Chatbot() # Виджет чата state = gr.State([]) # Состояние (история сообщений)

with gr.Row():
    txt = gr.Textbox(show_label=False, placeholder="Введите сообщение")
    btn = gr.Button("Отправить")

# Обработчик нажатия кнопки
btn.click(
    fn=chatbot_response,
    inputs=[txt, state],
    outputs=[chatbot, state]
)

demo.launch() ```


Развертывание в Hugging Face Spaces

  1. Создайте репозиторий в Hugging Face Spaces.
  2. Загрузите файлы:
  3. app.py (ваш код с Gradio).
  4. requirements.txt (со списком зависимостей, например, gradio).
  5. Интерфейс автоматически развернется по ссылке вида: https://<your-username>.hf.space/<repo-name>.

Полезные ссылки


Gradio идеально подходит для прототипирования, демонстрации моделей ML или создания простых веб-инструментов без необходимости изучать фронтенд-разработку.

Share this post

Similar posts

There are no similar posts yet.

0 comments

There are no comments

Add a new comment