Важные функции 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
API-интерфейс Jitu Express для электронных счетов-Express Bird [просто для понимания]
boy illustration
Каковы архитектуры микросервисов Java. Серверная часть плавающей области обслуживания
boy illustration
Описание трех режимов жизненного цикла службы внедрения зависимостей Asp.net Core.
boy illustration
Java реализует пользовательские аннотации для доступа к интерфейсу без проверки токена.
boy illustration
Серверная часть Unity добавляет поддержку .net 8. Я еще думал об этом два дня назад, и это сбылось.
boy illustration
Проект с открытым исходным кодом | Самый элегантный метод подписки на публичные аккаунты WeChat на данный момент
boy illustration
Разрешения роли пользователя Gitlab Гость, Репортер, Разработчик, Мастер, Владелец
boy illustration
Spring Security 6.x подробно объясняет механизм управления аутентификацией сеанса в этой статье.
boy illustration
[Основные знания ASP.NET] — Аутентификация и авторизация — Использование удостоверений для аутентификации.
boy illustration
Соединение JDBC с базой данных MySQL в jsp [легко понять]
boy illustration
[Уровень няни] Полный процесс развертывания проекта Python (веб-страницы Flask) в Docker.
boy illustration
6 способов чтения файлов свойств, рекомендуем собрать!
boy illustration
Графическое объяснение этапа строительства проекта IDEA 2021 Spring Cloud (базовая версия)
boy illustration
Подробное объяснение технологии междоменного запроса данных JSONP.
boy illustration
Учебное пособие по SpringBoot (14) | SpringBoot интегрирует Redis (наиболее полный во всей сети)
boy illustration
Подробное объяснение механизма подтверждения выпуска сообщений RabbitMQ.
boy illustration
На этот раз полностью поймите протокол ZooKeeper.
boy illustration
Реализуйте загрузку файлов с использованием минимального WEB API.
boy illustration
Демо1 Laravel5.2 — генерация и хранение URL-адресов
boy illustration
Spring boot интегрирует Kafka и реализует отправку и потребление информации (действительно при личном тестировании)
boy illustration
Мысли о решениях по внутренней реализации сортировки методом перетаскивания
boy illustration
Междоменный доступ к конфигурации nginx не может вступить в силу. Междоменный доступ к странице_Page
boy illustration
Как написать текстовый контент на php
boy illustration
PHP добавляет текстовый водяной знак или водяной знак изображения к изображениям – метод инкапсуляции
boy illustration
Интерпретация быстрой таблицы (TLB)
boy illustration
Интерфейс WeChat API (полный) — оплата WeChat/красный конверт WeChat/купон WeChat/магазин WeChat/JSAPI
boy illustration
Преобразование Java-объекта в json string_complex json-строки в объект
boy illustration
Примените сегментацию слов jieba (версия Java) и предоставьте пакет jar
boy illustration
matinal: Самый подробный анализ управления разрешениями во всей сети SAP. Все управление разрешениями находится здесь.
boy illustration
Коротко расскажу обо всем процессе работы алгоритма сборки мусора G1 --- Теоретическая часть -- Часть 1