Важные функции Gradio и несколько примеров кода для изучения (1)
Важные функции Gradio и несколько примеров кода для изучения (1)

1 Анализ важных функций

1.1 Класс Интерфейс()

ссылка: interface

Наиболее часто используемый состав базового модуля.

  • Интерфейс приложения: gr.Interface (простой сценарий), gr.Blocks (индивидуальный сценарий)
  • Ввод и вывод: gr.Image (изображение), gr.Textbox (текстовое поле), gr.DataFrame (фрейм данных), gr.Dropdown (раскрывающийся список), gr.Number (число), gr.Markdown, gr. Файлы
  • Компонент управления: gr.Button (кнопка)
  • компонент макета: gr.Tab (вкладка),gr.Row(ХОРОШОмакет),gr.Column(Списокмакет)
1.1.1 Interface()
Язык кода:javascript
копировать
import gradio as gr

def image_classifier(inp):
    return {'cat': 0.3, 'dog': 0.7}

demo = gr.Interface(fn=image_classifier, inputs="image", outputs="label")
demo.launch()

Интерпретация некоторых основных параметров:

  • fn(Union[Callable, List[Callable]]): упакованная функция,Может быть один или несколько,Используйте список для хранения нескольких функций.
  • inputs(Union[str, InputComponent, List[Union[str, InputComponent]]]): тип/формат ввода.,Один параметр может быть строкой str; это может быть входной компонент. InputComponent. Несколько параметров могут быть списками;,Список может содержать строку str,Инпут Компонент Ввод Компонент. Количество входных компонентов должно соответствовать количеству параметров fnфункции.
  • выходы(Union[str, OutputComponent, List[Union[str, - OutputComponent]]]): тип/формат вывода,Аналогично входам,Разница в том, что это выходной компонент. Количество выходных компонентов должно соответствовать числу, возвращаемому функцией fn.
  • live(bool): по умолчанию установлено значение False, установлено значение True, это динамическая страница, при изменении входных данных результаты будут меняться немедленно.
  • макет(str): макет панелей ввода и вывода. «Горизонтально» размещает их в два столбца одинаковой высоты; «Невыровненный» размещает их в двух столбцах разной высоты; «Вертикально» размещает их вертикально.
  • allow_flagging(str): есть три варианта: «никогда», «авто» и «вручную». Если установлено значение «никогда» или «авто», пользователь не может видеть кнопку «Пометить»; если установлено значение «Вручную», пользователь может видеть кнопку «Пометить». Если установлено значение «авто», каждый вход и выход будут отмечены и сохранены. Если установлено значение «вручную», когда пользователь нажимает кнопку «Флаг», текущие результаты ввода и вывода отмечаются и сохраняются.
  • flagging_dir(str): имя папки, в которой сохраняется флаг.
1.1.2 Interface.launch

ссылка:gradio.Interface.launch(···)

Язык кода:javascript
копировать
import gradio as gr
def reverse(text):
    return text[::-1]
demo = gr.Interface(reverse, "text", "text")
demo.launch(share=True, auth=("username", "password"))

Имя параметра

тип данных

значение по умолчанию

описывать

inline

bool/None

None

Отображать ли встроенное в интерфейсе. По умолчанию в блокнотах Python установлено значение True, в противном случае — значение False.

inbrowser

bool

FALSE

Нужно ли автоматически открывать интерфейс в новой вкладке в браузере по умолчанию.

share

bool/None

None

Создавать ли общедоступную ссылку, чтобы любой мог получить доступ к демо-версии. Если этот параметр не указан, по умолчанию используется значение False, если он не запущен в Google Colab.

debug

bool

FALSE

Если задано значение True, основной поток будет заблокирован, когда в Google Colab необходимо распечатать ошибки.

enable_queue

bool/None

None

[Устарело] Включить ли очереди для обработки запросов на вывод, чтобы предотвратить тайм-ауты. По умолчанию значение True в пространствах HuggingFace и False в противном случае.

max_threads

int

40

Максимальное количество потоков, создаваемых параллельно. По умолчанию унаследовано от библиотеки Starlette (сейчас 40). Это применимо независимо от того, включены очереди или нет. Но если очереди включены, этот параметр будет увеличен как минимум до количества одновременных очередей.

auth

Callable/tuple/…

None

Если они предоставлены, для доступа к интерфейсу требуются имя пользователя и пароль (или список кортежей имени пользователя и пароля). Также возможно предоставить функцию, которая принимает имя пользователя и пароль и возвращает True для действительного входа в систему.

auth_message

str/None

None

Если указано, HTML-сообщение, которое будет отображаться на странице входа.

prevent_thread_lock

bool

FALSE

Если установлено значение True, интерфейс заблокирует основной поток во время работы сервера.

show_error

bool

FALSE

Если принимает значение True, отображать все ошибки в интерфейсе и печатать их в журнале консоли браузера.

server_name

str/None

None

Если установлено значение «0.0.0.0», приложение можно сделать доступным в локальной сети. Это можно установить через переменную среды GRADIO_SERVER_NAME. Если нет, используется «127.0.0.1».

server_port

int/None

None

Приложение Gradio будет запущено на этом порту, если оно доступно. Это можно установить через переменную среды GRADIO_SERVER_PORT. Если нет, поиск доступных портов начинается с 7860.

show_tips

bool

FALSE

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

height

int

500

Высота элемента iframe, содержащего интерфейс (используется, если inline=True).

width

int/str

“100%”

Ширина элемента iframe, содержащего интерфейс (используется, если inline=True).

encrypt

bool/None

None

[Устарело]. Никакого эффекта.

favicon_path

str/None

None

Если вы укажете путь к файлу (.png, .gif или .ico), он будет использоваться в качестве значка веб-страницы.

ssl_keyfile

str/None

None

Если указан путь к файлу, он будет использоваться для создания файла закрытого ключа для локального сервера, работающего по протоколу https.

ssl_certfile

str/None

None

Если указан путь к файлу, подписанный сертификат будет использоваться как https. Если указан ssl_keyfile, необходимо указать ssl_certfile.

ssl_keyfile_password

str/None

None

Если указан пароль, он будет использоваться с сертификатом SSL для https.

ssl_verify

bool

TRUE

Если значение равно False, проверка сертификата пропускается, что позволяет использовать самозаверяющие сертификаты.

quiet

bool

FALSE

Если принимает значение True, подавляется большинство операторов печати.

show_api

bool

TRUE

Если значение True, отображать документацию по API в нижнем колонтитуле приложения. По умолчанию — Истина. Если организация очереди включена, значение параметра api_open определяет, отображается ли документация API, независимо от значения параметра show_api.

file_directories

list[str]/None

None

[Переименовано в разрешенные_пути] Список доступных путей к файлам. Будет удалено в будущем выпуске.

allowed_paths

list[str]/None

None

Полный путь к файлу или список родительских каталогов, к которым Gradio разрешен доступ (кроме каталога, содержащего файлы Gradio Python). Должен быть абсолютный путь. Внимание: если каталоги указаны, все файлы в этих каталогах и их подкаталогах доступны всем пользователям приложения.

blocked_paths

list[str]/None

None

Список полных путей к файлам или родительских каталогов, к которым Gradio не разрешен доступ (т. е. пути, к которым запрещен доступ пользователю приложения). Должен быть абсолютный путь. Предупреждение: по умолчанию имеет приоритет над разрешенными_путями и всеми другими каталогами, предоставляемыми Gradio.

root_path

str

“”

Корневой путь (или «точка монтирования») приложения, если приложение не обслуживается из корня домена («/»). Обычно используется, когда приложение находится за обратным прокси-сервером, который пересылает запросы. Например, если приложение обслуживается по адресу «https://example.com/myapp», для root_path должно быть установлено значение «/myapp». Ссылка на

app_kwargs

dict[str, Any]/None

None

В качестве словаря ключей параметров и значений параметров, которые будут прикреплены к базовому приложению FastAPI. Например, {"docs_url": "/docs"}.

1.1.3 Interface.from_pipeline

2 примера кода

2.1 Некоторые функциональные фрагменты

2.1.1 Проверка пароля

Прежде чем открыть веб-страницу в первый раз, вы можете установить пароль учетной записи. Например, параметр auth — это данные кортежа (учетная запись, пароль). В этом режиме функцию очереди использовать нельзя.

Язык кода:javascript
копировать
demo.launch(auth=("admin", "pass1234"))

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

Язык кода:javascript
копировать
#Вы можете пройти, если учетная запись и пароль совпадают
def Same_auth (имя пользователя, пароль):
    вернуть имя пользователя == пароль
demo.launch(auth=same_auth,auth_message="имя пользователя и пароль должны быть одинаковыми")

2.2 Улучшение страницы

ссылка:Самое подробное руководство по всей сети от начального уровня до продвинутого Gradio [2]: быстро создайте визуальную демонстрацию развертывания алгоритмов ИИ (с упором на подробное объяснение параметров и практический пример).

Язык кода:javascript
копировать
import gradio as gr
from transformers import *

#заголовок
title = «Экстрактивные вопросы и ответы»
#описываю под заголовком, поддерживает формат md
description = «После ввода контекста и вопроса нажмите кнопку «Отправить», чтобы извлечь ответ из контекста. Попробуйте прямо сейчас!»
#Входной образец
examples = [
    ["Оттуда Пушкин выучил народный язык и впитал в себя много полезных питательных веществ, все это оказало большое влияние на поздние творения Пушкина. За последние два года Пушкин создал множество прекрасных произведений, таких как "Пленники", десятки лирических произведений. такие стихотворения, как «К морю», «К Кане» и «Если жизнь тебя обманула», поэма-повествование «Граф Нулин», историческая драма «Борис Годунов», «Евгений. Первые шесть глав «Онегина». «Автор знаменитого стихотворения «Если жизнь тебя обманула»»,
    ["Оттуда Пушкин выучил народный язык и впитал в себя много полезных питательных веществ, все это оказало большое влияние на поздние творения Пушкина. За последние два года Пушкин создал множество прекрасных произведений, таких как "Пленники", десятки лирических произведений. такие стихотворения, как «К морю», «К Кане» и «Если жизнь тебя обманула», поэма-повествование «Граф Нулин», историческая драма «Борис Годунов», «Евгений. Первые шесть глав «Онегина». «Как называется поэма, созданная Пушкиным»]
    ]
#Последняя информация на странице, вы можете выбрать цитирование статьи, поддержка формата md

article = «Заинтересованные друзья могут прочитать [колонку градиента](https://blog.csdn.net/sinat_39620217/category_12298724.html?spm=1001.2014.3001.5482)»

qa = pipeline("question-answering", model="uer/roberta-base-chinese-extractive-qa")

def custom_predict(context, question):
    answer_result = qa(context=context, question=question)
    answer = question + ": " + answer_result["answer"]
    score = answer_result["score"]
    return answer, score

gr.Interface(fn=custom_predict, inputs=["text", "text"], outputs=[gr.Textbox(label="answer"), gr.Label(label="score")], 
             title=title, description=description, examples=examples, article=article).launch()

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

Примечание:

  • вdef custom_predict(context, question):этотфункциясредиcontextи questionИменование повлияет на имя в верхнем левом углу кадра ниже.

Ссылки: Самое подробное руководство в Интернете от начального уровня до продвинутого Gradio [1]: быстро создайте визуальную демонстрацию развертывания алгоритмов ИИ (с упором на создание проектов и совместное использование кейсов). Самое подробное руководство по всей сети от начального уровня до продвинутого Gradio [2]: быстро создайте визуальную демонстрацию развертывания алгоритмов ИИ (с упором на подробное объяснение параметров и практический пример).

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose