Что такое sdk gradio в Python
Published 8 сентября 2025 г. 14:33 by max_summer
Gradio SDK — это инструмент для быстрого создания интерактивных веб-интерфейсов (UI) для машинного обучения и Python-функций. Он позволяет разработчикам легко развертывать модели, скрипты или API в виде удобных веб-приложений с минимальными усилиями.
Основные возможности Gradio SDK
- Простота использования:
- Создание UI для Python-функций в несколько строк кода.
-
Поддержка различных типов входных/выходных данных (текст, изображения, аудио, видео, таблицы и др.).
-
Интерактивные компоненты:
- Виджеты для ввода/вывода: текстовые поля, слайдеры, чекбоксы, загрузка файлов, камеры и т. д.
-
Автоматическая генерация интерфейса на основе аннотаций типов (type hints).
-
Развертывание:
- Локальный запуск (
gradio.App.launch()
). - Развертывание в облаке (через Hugging Face Spaces, Google Colab, Replit и др.).
-
Встроенная поддержка для обмена ссылками (например,
share=True
для временного хостинга). -
Интеграция с ML-фреймворками:
-
Работает с TensorFlow, PyTorch, scikit-learn, Hugging Face Transformers и другими библиотеками.
-
Кастомизация:
- Настройка внешнего вида (темы, макеты, CSS).
- Поддержка нескольких интерфейсов в одном приложении (вкладки, блоки).
Пример использования
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
- Создайте репозиторий в Hugging Face Spaces.
- Загрузите файлы:
app.py
(ваш код с Gradio).requirements.txt
(со списком зависимостей, например,gradio
).- Интерфейс автоматически развернется по ссылке вида:
https://<your-username>.hf.space/<repo-name>
.
Полезные ссылки
- Официальная документация Gradio
- Галерея примеров
- Hugging Face Spaces (для хостинга)
Gradio идеально подходит для прототипирования, демонстрации моделей ML или создания простых веб-инструментов без необходимости изучать фронтенд-разработку.
Similar posts
There are no similar posts yet.
0 comments
There are no comments