Плагины ChatGPT
Эта публикация о запуске устарела.
Полный список плагинов ChatGPT:

Примечание: См. полный список доступных плагинов для ChatGPT.
Мы реализовали начальную поддержку плагинов в ChatGPT. Плагины — это инструменты, разработанные специально для языковых моделей, в основе которых лежит принцип безопасности; они помогают ChatGPT получать актуальную информацию, выполнять вычисления или использовать сторонние сервисы.
В соответствии с нашей философией итеративного внедрения, мы постепенно открываем доступ к плагинам в ChatGPT, чтобы изучить их реальное использование, влияние, а также связанные с ними проблемы безопасности и согласованности. Все эти задачи нам необходимо успешно решить для достижения нашей миссии.
Пользователи просили о плагинах с момента запуска ChatGPT (и многие разработчики экспериментируютспохожимиидеями), поскольку они открывают широкий спектр возможных сценариев использования. Мы начинаем с небольшой группы пользователей и планируем постепенно расширять доступ по мере накопления опыта (для разработчиков плагинов, пользователей ChatGPT, а после альфа-периода — и для пользователей API, которые хотели бы интегрировать плагины в свои продукты). Мы рады формировать сообщество, которое определяет будущее парадигмы взаимодействия человека и искусственного интеллекта.
Разработчики плагинов, получившие приглашение из листа ожидания, могут использовать нашу документацию для создания плагина для ChatGPT. В этом случае включенные плагины перечисляются в подсказке (промпте), передаваемой языковой модели, наряду с инструкциями о том, как использовать каждый из них. Первые плагины были созданы компаниями Expedia, FiscalNote, Instacart, KAYAK, Klarna, Milo, OpenTable, Shopify, Slack, Speak, Wolfram и Zapier.
Мы также сами предоставляем два плагина: веб-браузер и интерпретатор кода. Кроме того, мы выложили в открытый доступ код плагина поиска по базе знаний, который любой разработчик может развернуть самостоятельно, чтобы дополнить ChatGPT собственной информацией.
Сегодня мы начинаем предоставлять альфа-доступ к плагинам пользователям и разработчикам из нашего листа ожидания. Хотя на первом этапе мы отдадим приоритет небольшому числу разработчиков и подписчиков ChatGPT Plus, со временем мы планируем расширить доступ для более широкой аудитории.
Обзор
Современные языковые модели, несмотря на свою полезность в самых разных задачах, все еще имеют ограничения. Единственная информация, из которой они могут извлекать знания — это их обучающие данные. Эти данные могут устаревать и носят универсальный («один размер для всех») характер для любых приложений. Кроме того, все, что языковые модели умеют «из коробки» — это генерировать текст. Этот текст может содержать полезные инструкции, но для их непосредственного выполнения требуется какой-то другой процесс.
Хотя это и не идеальная аналогия, плагины могут стать «глазами и ушами» языковых моделей, предоставляя им доступ к информации, которая является слишком свежей, слишком личной или слишком специфичной для включения в обучающие данные. В ответ на явный запрос пользователя плагины также могут позволить языковым моделям выполнять безопасные, ограниченные действия от их имени, что в целом повышает полезность системы.
Мы ожидаем появления открытых стандартов, которые унифицируют способы взаимодействия приложений с интерфейсами искусственного интеллекта. Мы работаем над первой попыткой создания такого стандарта и ищем отзывы от разработчиков, заинтересованных в совместной работе.
Сегодня мы начинаем постепенно открывать доступ к существующим плагинам от наших ранних партнеров для пользователей ChatGPT, начиная с подписчиков ChatGPT Plus. Мы также открываем для разработчиков возможность создавать собственные плагины для ChatGPT.
В ближайшие месяцы, по мере накопления опыта развертывания и совершенствования систем безопасности, мы будем дорабатывать этот протокол. Мы планируем предоставить разработчикам, использующим модели OpenAI, возможность интегрировать плагины в их собственные приложения за пределами ChatGPT.
Безопасность и более широкие последствия
Подключение языковых моделей к внешним инструментам открывает новые возможности, но также создает серьезные новые риски.
Плагины потенциально способны решить различные проблемы, связанные с большими языковыми моделями, включая «галлюцинации», отслеживание последних событий и доступ (при наличии разрешений) к проприетарным источникам информации. Интегрируя прямой доступ к внешним данным — таким как актуальная онлайн-информация, вычисления с использованием кода или пользовательские данные, полученные через плагины — языковые модели могут подкреплять свои ответы ссылками на факты.
Эти ссылки не только повышают полезность модели, но и позволяют пользователям оценивать надежность результатов работы модели и перепроверять их точность. Это помогает снизить риски, связанные с чрезмерным доверием к ИИ, о чем говорилось в нашей недавней системной карте GPT-4. Наконец, ценность плагинов может выйти далеко за рамки устранения текущих ограничений, помогая пользователям в самых разных новых сценариях: от просмотра каталогов товаров до бронирования авиабилетов или заказа еды.
В то же время существует риск того, что плагины могут усилить угрозы безопасности за счет совершения вредоносных или непреднамеренных действий, расширяя возможности злоумышленников, занимающихся мошенничеством, дезинформацией или злоупотреблениями. Увеличивая диапазон возможных применений, плагины могут повысить риск негативных последствий из-за ошибочных или несогласованных действий модели в новых сферах. С первого дня эти факторы определяли развитие нашей платформы плагинов, и мы внедрили ряд мер защиты.
«С первого дня эти факторы определяли развитие нашей платформы плагинов, и мы внедрили ряд мер защиты».
Мы провели тесты на проникновение («ред-тейминг») как внутри компании, так и с привлечением внешних партнеров, которые выявили ряд потенциально опасных сценариев. Например, наша команда по тестированию безопасности обнаружила способы, с помощью которых плагины (при выпуске без средств защиты) могли бы выполнять сложные атаки через внедрение промптов (prompt injection), отправлять мошеннические письма и спам, обходить ограничения безопасности или неправомерно использовать данные, переданные плагину. Мы используем эти результаты для разработки защитных механизмов на этапе проектирования (safety-by-design), которые ограничивают рискованное поведение плагинов и повышают прозрачность того, как и когда они работают в рамках пользовательского интерфейса. Мы также опираемся на эти выводы при принятии решений о постепенном предоставлении доступа к плагинам.
Если вы исследователь, заинтересованный в изучении рисков безопасности или методов защиты в этой области, мы рекомендуем вам подать заявку на участие в нашей программе доступа для исследователей. Мы также приглашаем разработчиков и исследователей направлять нам оценки безопасности и возможностей, связанные с плагинами, в рамках нашего недавно открытого фреймворка Evals.
Плагины, вероятнее всего, окажут масштабное влияние на общество. Например, недавно мы опубликовали научную работу, в которой говорится, что языковые модели с доступом к инструментам окажут гораздо более сильное экономическое влияние, чем модели без них. В целом, в соответствии с выводами другихисследователей, мы ожидаем, что нынешняя волна технологий ИИ существенно повлияет на скорость трансформации, сокращения и создания рабочих мест. Мы с нетерпением ждем возможности сотрудничать с внешними исследователями и нашими клиентами для изучения этих последствий.
Опираясь на прошлый опыт (наш собственный проект WebGPT, а также разработки GopherCite, BlenderBot2, LaMDA2 и других), предоставление языковым моделям возможности читать информацию из интернета значительно расширяет объем контента, который они могут обсуждать, выходя за рамки обучающего корпуса в сторону свежей информации из сегодняшнего дня.
Вот пример того, какие возможности открывает веб-поиск для пользователей ChatGPT: раньше в подобных ситуациях модель вежливо сообщала, что ее обучающие данные содержат недостаточно информации для ответа. Этот пример, в котором ChatGPT находит свежие данные о последней церемонии вручения премии «Оскар», а затем демонстрирует уже ставшие привычными поэтические способности ChatGPT, показывает, как веб-поиск может дополнить возможности модели.
Помимо очевидной пользы для конечных пользователей, мы считаем, что предоставление языковым и чат-моделям возможности проводить тщательное и интерпретируемое исследование открывает захватывающие перспективы для масштабируемого выравнивания (scalable alignment).
Вопросы безопасности
Мы создали плагин для веб-поиска, который дает языковой модели доступ к веб-браузеру. Его конструкция ставит во главу угла как безопасность, так и ответственное поведение в сети. Текстовый веб-браузер плагина ограничен выполнением GET-запросов, что снижает (но не полностью исключает) определенные категории рисков безопасности. Благодаря этому поисковый плагин полезен для извлечения информации, но исключает «транзакционные» операции (например, отправку форм), которые несут в себе больше потенциальных угроз для безопасности.
Поиск извлекает контент из интернета с помощью поискового API Bing. В результате мы опираемся на значительный объем работы, проделанной корпорацией Microsoft в отношении (1) надежности источников и достоверности информации, а также (2) «безопасного режима» (safe-mode), предотвращающего получение проблемного контента. Плагин работает в изолированной среде, поэтому поисковая активность ChatGPT отделена от остальной части нашей инфраструктуры.
Чтобы проявлять уважение к создателям контента и следовать сетевым нормам, токен user-agent нашего браузерного плагина называется ChatGPT‑User и настроен с учетом правил файла robots.txt веб-сайтов. Это может иногда приводить к сообщению «click failed» (клик не удался), что означает, что плагин выполняет инструкцию сайта избегать его сканирования. Этот user-agent используется исключительно для совершения прямых действий от имени пользователей ChatGPT и не применяется для автоматического сканирования интернета. Мы также опубликовали наши диапазоны исходящих IP-адресов. Кроме того, были внедрены ограничения частоты запросов (rate-limiting), чтобы не создавать чрезмерную нагрузку на веб-сайты.
Наш плагин для просмотра сайтов показывает посещенные веб-ресурсы и указывает источники в ответах ChatGPT. Этот дополнительный уровень прозрачности помогает пользователям проверять точность ответов модели, а также отдает должное создателям контента. Мы понимаем, что это новый метод взаимодействия с интернетом, и приветствуем отзывы о дополнительных способах направления трафика обратно к источникам и повышения общей пользы экосистемы.
Мы предоставляем нашим моделям работающий интерпретатор Python в изолированной среде выполнения с межсетевым экраном, а также выделяем временное дисковое пространство. Код, запускаемый нашим плагином-интерпретатором, оценивается в рамках постоянной сессии, которая активна на протяжении всей беседы в чате (с ограничением по времени ожидания), и последующие вызовы могут опираться на предыдущие результаты. Мы поддерживаем загрузку файлов в рабочее пространство текущей беседы и скачивание результатов вашей работы.
Мы хотели бы, чтобы наши модели могли использовать свои навыкипрограммирования для обеспечения более естественного интерфейса к основным возможностям наших компьютеров. Наличие очень старательного младшего программиста, работающего со скоростью ваших пальцев, может сделать совершенно новые рабочие процессы простыми и эффективными, а также открыть преимущества программирования для новой аудитории.
На основе наших первоначальных пользовательских исследований мы выделили сценарии использования, в которых интерпретатор кода особенно полезен:
- Решение математических задач (как количественных, так и качественных)
- Анализ и визуализация данных
- Конвертация файлов между различными форматами
Мы приглашаем пользователей попробовать интеграцию с интерпретатором кода и открыть для себя другие полезные задачи.
Вопросы безопасности
Главная задача при подключении наших моделей к интерпретатору языков программирования — правильная изоляция выполнения (сэндбоксинг), чтобы созданный ИИ код не приводил к непредвиденным побочным эффектам в реальном мире. Мы выполняем код в защищенной среде и используем строгие сетевые ограничения для предотвращения доступа к внешнему интернету из выполняемого кода. Кроме того, мы установили лимиты ресурсов для каждой сессии. Отключение доступа в интернет ограничивает функциональность нашей изолированной среды кода, но мы считаем это правильным компромиссом на начальном этапе. Сторонние плагины были созданы как метод подключения наших моделей к внешнему миру, в котором безопасность стоит на первом месте.
Поиск информации
Плагин поиска с открытым исходным кодом позволяет ChatGPT получать доступ к личным или организационным информационным источникам (при наличии разрешения). Он дает пользователям возможность находить наиболее релевантные фрагменты документов из своих источников данных (таких как файлы, заметки, электронные письма или публичная документация), задавая вопросы или формулируя запросы на естественном языке.
Будучи решением с открытым исходным кодом и возможностью саморазвертывания, этот плагин позволяет разработчикам развертывать собственную версию и регистрировать ее в ChatGPT. Плагин использует эмбеддинги OpenAI и позволяет разработчикам выбирать векторную базу данных (Milvus, Pinecone, Qdrant, Redis, Weaviate или Zilliz) для индексации и поиска документов. Источники информации могут синхронизироваться с базой данных с помощью веб-хуков.
Для начала работы посетите репозиторий плагина поиска.
Вопросы безопасности
Плагин поиска позволяет ChatGPT выполнять поиск по векторной базе данных с контентом и добавлять наилучшие результаты в сеанс ChatGPT. Это означает, что он не оказывает никаких внешних воздействий, а основными рисками являются авторизация данных и конфиденциальность. Разработчики должны добавлять в свой плагин поиска только тот контент, на использование которого у них есть разрешение и которым они могут делиться в сеансах пользователей ChatGPT.
Сторонние плагины описываются с помощью файла манифеста, который включает в себя машинно-читаемое описание возможностей плагина и способов их вызова, а также документацию для пользователя.
JSON
1{2 "schema_version": "v1",3 "name_for_human": "TODO Manager",4 "name_for_model": "todo_manager",5 "description_for_human": "Manages your TODOs!",6 "description_for_model": "An app for managing a user's TODOs",7 "api": { "url": "/openapi.json" },8 "auth": { "type": "none" },9 "logo_url": "https://example.com/logo.png",10 "legal_info_url": "http://example.com",11 "contact_email": "hello@example.com"12}Пример файла манифеста для плагина управления задачами
Шаги для создания плагина:
- Создайте API с конечными точками, которые языковая модель должна вызывать (это может быть новый API, существующий API или обертка вокруг существующего API, специально разработанная для LLM).
- Создайте спецификацию OpenAPI, документирующую ваш API, и файл манифеста, который ссылается на спецификацию OpenAPI и содержит некоторые метаданные, специфичные для плагина.
Начиная беседу на chatgpt.com, пользователи могут выбирать, какие сторонние плагины они хотят включить. Документация об активированных плагинах отображается для языковой модели как часть контекста беседы, что позволяет модели вызывать соответствующие API плагинов по мере необходимости для выполнения задач пользователя. В настоящее время плагины предназначены для вызова бэкенд-API, но мы также изучаем плагины, которые могут вызывать API на стороне клиента.
Взгляд в будущее
Мы работаем над разработкой плагинов и предоставлением их более широкой аудитории. Нам предстоит многому научиться, и с помощью каждого из вас мы надеемся создать инструмент, который будет одновременно полезным и безопасным.
- Присоединиться к листу ожидания плагинов
- Читать документацию
Автор
Участники
Sandhini Agarwal, Ilge Akkaya, Valerie Balcom, Mo Bavarian, Gabriel Bernadett-Shapiro, Greg Brockman, Miles Brundage, Jeff Chan, Fotis Chantzis, Noah Deutsch, Brydon Eastman, Atty Eleti, Niko Felix, Simón Posada Fishman, Isa Fulford, Christian Gibson, Joshua Gross, Mike Heaton, Jacob Hilton, Xin Hu, Shawn Jain, Joy Jiao, Haozhun Jin, Logan Kilpatrick, Christina Kim, Michael Kolhede, Andrew Mayne, Paul McMillan, David Medina, Jacob Menick, Andrey Mishchenko, Ashvin Nair, Rajeev Nayak, Arvind Neelakantan, Rohan Nuttall, Joel Parish, Alex Tachard Passos, Adam Perelman, Filipe de Avila Belbute Peres, Vitchyr Pong, John Schulman, Eric Sigler, Natalie Staudacher, Nicholas Turley, Jerry Tworek, Ryan Greene, Arun Vijayvergiya, Chelsea Voss, Jiayi Weng, Matt Wiethoff, Sarah Yoo, Kevin Yu, Wojciech Zaremba, Shengjia Zhao, Will Zhuk, Barret Zoph
Полный текст статьи читайте на OpenAI
