Голосовая аутентификация через GPT

в 11:16, , рубрики: gpt, OpenAI, аутентификация, веб-приложения, интеграция, парольная защита, эксперимент

Около трёх месяцев назад я задумался о том, что в ближайшем будущем взаимодействие человека с техносферой (программно-аппаратно-сетевой инфраструктурой) будет происходить скорее через мессенджеры, такие как Telegram, чем через привычный браузер. Частое использование чатов на смартфоне быстро подтолкнуло меня к попытке снова попробовать голосовой ввод вместо привычных тапов по виртуальной клавиатуре или набора слов жестами. К моему приятному удивлению, распознавание голоса сейчас достигло очень высокого уровня как на Android, так и на iPhone. Причём настолько высокого, что STT (speech-to-text) стал для меня основным способом ввода текста в чатах, включая браузер.

Поскольку искусственный интеллект в целом, и технологии OpenAI в частности, уже практически стали повседневной нормой (по крайней мере, для меня), я, естественно, начал использовать голосовое общение и в GPT-чатах. А узнав о действиях (actions) в настраиваемых GPT-чатах, я сразу загорелся идеей соединить GPT-чат с каким-нибудь внешним приложением. Однако на этом этапе встал вопрос: как аутентифицировать пользователей чата во внешнем приложении? Несмотря на то что OpenAI предлагает использовать OAuth 2.0 для интеграции, в этой статье я рассмотрю альтернативный вариант — парольную аутентификацию, которая, на мой взгляд, лучше подходит для голосового взаимодействия.

Настраиваемый чат

С точки зрения интеграции, GPT-чат по сравнению с Telegram-чатом всё ещё находится на начальной стадии развития. OpenAI предлагает только одно направление передачи данных — от чата наружу:

Общая схема взаимодействия GPT-чата с внешними приложениями

Общая схема взаимодействия GPT-чата с внешними приложениями

В общем случае бизнес может настроить GPT-чат (доступно начиная с плана "GPT Plus" и выше) и предоставить к нему доступ — как публичный, так и по приватной ссылке.

К основным настройкам чата относятся:

  • название чата;

  • иконка;

  • краткое описание (до 300 символов);

  • инструкции (системный промпт);

  • фразы-стартеры (предложения для новых пользователей, чтобы начать диалог);

  • библиотека знаний (загружаемые файлы);

  • дополнительные возможности (поиск в сети, генерация изображений, интерпретатор кода);

  • действия (интеграция GPT-чата с внешними веб-сервисами).

Пример моего демо-чата — CustomGPT Integration Demo, скриншоты его настроек приведены ниже:

Имя, описание, инструкции

Имя, описание, инструкции
Фразы-стартеры и файлы знаний

Фразы-стартеры и файлы знаний
Возможности и действия

Возможности и действия

Действия в чате

Действия — это именно та функция, которая позволяет интегрировать GPT-чат с внешними веб-приложениями. Эти действия группируются по доменам, которые соответствуют адресам веб-сервисов в интернете. В моём случае используется один домен — user.demo.gpt.wiredgeese.com, на котором размещены четыре веб-сервиса.

Список доступных действий

Список доступных действий

Демо-чат предоставляет следующие действия:

  • userSignUpInit: инициирует процесс регистрации пользователя во внешнем приложении.

  • emailTestSend: отправляет запрос во внешнее приложение для отправки тестового email на адрес пользователя.

  • userProfileUpdateInit: запрашивает у внешнего приложения отправку ссылки на email пользователя для редактирования профиля или сброса парольной фразы.

  • emailOwnerSend: отправляет запрос во внешнее приложение на отправку email в свободном формате на адрес владельца бизнеса (в данном случае — на мой).

Настройка GPT-чата выполняется с использованием OpenAPI-спецификации (схемы).

Импорт OpenAI-спецификации

Импорт OpenAI-спецификации

Доступ к веб-сервису ограничивается с помощью авторизации. В моём случае используется заголовок Authorization: Bearer ...):

Настройки аутентификации

Настройки аутентификации

Доступность решения

По странам

GPT-чаты доступны во многих странах, но есть ряд регионов, где их использование недоступно. К таким странам относятся:

  • Китай

  • Гонконг

  • Россия

  • Иран

  • Северная Корея

  • Сирия

  • Куба

Причины включения этих стран в список ограничений я объяснять не буду.

По подписке

Для использования GPT-чатов необходима хотя бы минимальная подписка на сайте chatgpt.com. Хотя OpenAI утверждает, что преднастроенные чаты доступны даже для бесплатных планов, я бы не рекомендовал основывать на этом свою бизнес-модель. Пользователи с бесплатным планом могут использовать преднастроенный чат какое-то время, однако это больше похоже на демонстрацию возможностей самого ChatGPT. Кроме того, пользователи с бесплатным планом периодически могут сталкиваться с такими сообщениями в чате:

Уведомление об ограничении доступа

Уведомление об ограничении доступа

Голосовое взаимодействие

При использовании смартфона в качестве основного устройства для работы с GPT-чатом доступны два варианта голосового взаимодействия.

STT-преобразование

В этом варианте пользователь использует возможности смартфона для преобразования голоса в текст. Для GPT-чата такой способ ввода практически не отличается от набора текста с помощью клавиатуры.

Набор голосом через STT

Набор голосом через STT

Ответы чата в этом случае будут выводиться в текстовом формате.

Аналогичная ситуация происходит, если вы используете запись голоса с последующим преобразованием средствами самого ChatGPT.

Включение записи аудио-файла

Включение записи аудио-файла

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

Диалог GPT

Вы можете переключить своё GPT-приложение в режим голосового диалога:

Переход в режим голосового общения

Переход в режим голосового общения

В этом случае взаимодействие с GPT-чатом будет происходить исключительно голосом.

Чат готов к общению

Чат готов к общению

Транскрибация вашего диалога с чатом выполняется в фоновом режиме. При этом ваши реплики преобразуются в осмысленную речь с корректным использованием знаков препинания.

Этот способ особенно удобен, если вы не можете читать сообщения чата и предпочитаете слушать его ответы. Хотя он медленнее по сравнению с текстовым выводом, в некоторых ситуациях, таких как вождение автомобиля, это может быть единственным доступным вариантом общения.

Отправка данных чатом на сервер

В текущем состоянии эта функция реализована довольно неудобно с точки зрения UX. Наиболее комфортный вариант, с которым мне удалось столкнуться, — это нативное приложение ChatGPT для Android, работающее в режиме диалога.

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

Голосовая аутентификация через GPT - 13

Хотя в GPT-чате предусмотрена возможность отключить подтверждение отправки данных на соответствующий внешний сервер:

Настройка разрешений для действий

Настройка разрешений для действий

Мне так и не удалось добиться стабильного поведения, при котором данные отправлялись бы на сервер из чата без дополнительного подтверждения со стороны пользователя.

С другой стороны, пользователь имеет возможность видеть, какие данные чат отправляет во внешний сервис:

Контроль отправляемых данных

Контроль отправляемых данных

Заключение

Моей основной мотивацией для создания демо-чата и демо-приложения было исследование возможности регистрации новых пользователей через GPT-чат исключительно с использованием голосового взаимодействия.

В целом, эксперимент можно считать успешным:

  • Интеллектуальных возможностей GPT-чата более чем достаточно для распознавания запросов пользователя и подготовки данных в нужном формате для взаимодействия с внешним веб-сервисом через действия.

  • Идентификация пользователей с помощью числового PIN облегчает его ввод голосом. Для крупных веб-приложений с охватом миллионов пользователей это может потребовать шестизначных или более длинных PIN-кодов, но для небольших проектов вполне достаточно четырёх цифр.

  • Что касается паролей, голосовой ввод позволяет создавать достаточно длинные пароли, хотя и без использования специальных символов.

  • Самая большая сложность — подтверждение через email. Некоторые адреса сложно продиктовать голосом, их проще вводить вручную. В таких случаях было бы удобнее использовать подтверждение через номер мобильного телефона с цифровым вводом, аналогично PIN.

  • Очевидно, что безопасность данных (PIN и паролей), хранящихся в чате, оставляет желать лучшего. Любой, кто получит доступ к вашему чату, сможет легко запросить секретную информацию.

В целом, я удовлетворён результатами эксперимента. Хотя область применения такой интеграции не слишком широка, использование аутентификации через OAuth может существенно повысить безопасность. Однако однонаправленность передачи данных (от чата к внешнему приложению) ограничивает возможности. Интересные перспективы открываются при совмещении GPT-чата с Telegram-ботами. На мой взгляд, широкое применение мессенджеров может со временем вытеснить Web Push API.

Список ссылок:

Автор: flancer

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js