Если вы не были на шестимесячной технологической детоксикации или одном из этих длительных изоляционных ретритов, вы, несомненно, слышали о том, как ИИ пожирает мир. Точнее, как модели больших языков (LLM) стали достаточно хорошими, чтобы обеспечить работу вычислений на естественном языке. Мы считаем, что LLM меняют наши представления о создании приложений.

Мы считаем, что LLM со временем позволят разработчикам писать и поддерживать меньше кода. Вместо того, чтобы разработчикам и дизайнерам приходилось создавать и поддерживать пользовательский интерфейс (UI) для приложений, новые среды разработки программного обеспечения, созданные для использования возможностей LLM, смогут генерировать пользовательский интерфейс для приложения. Прошли времена бесконечной настройки и тестирования новых элементов пользовательского интерфейса на основе постоянно меняющихся требований пользователей. Генеративные пользовательские интерфейсы позволят конечным пользователям получать динамичный, индивидуальный опыт, адаптированный к их конкретным потребностям… и все это в данный момент.

Три строительных блока для генеративных приложений

Мы думаем, что есть три основных строительных блока, которые необходимы для создания генеративных приложений ИИ. Два из этих строительных блоков становятся общепризнанной передовой практикой в ​​сообществе ИИ. Третий более экспериментальный, но мы думаем, что он станет обычным явлением. Этими строительными блоками являются: документирование вопросов и ответов (DocsQA), инструменты и генеративный пользовательский интерфейс. Давайте рассмотрим каждый из них и почему они важны.

Строительный блок № 1: документировать вопрос + ответ (DocsQA)

LLM: конечное знание, застрявшее во времени

Каждый LLM обучается на определенном наборе информации. Конечно, объем информации огромен (в масштабе Интернета или близком к нему), но собранные данные представляют собой моментальный снимок во времени. Это означает, что модели должны обновляться по мере поступления новой информации. Это может быть ограничивающим фактором, если вы пытаетесь использовать модель, чтобы помочь с конкретным доменом, который является новым или недавно изменился. Например, модели, вышедшие пару лет назад, не имеют никакой подготовки по ЛК-99 (заявленному недавно сверхпроводнику при комнатной температуре) или другим текущим событиям.

Добавление контекстных знаний с помощью DocsQA

Помните ту сцену в Матрице, когда Нео мгновенно приобретает способность заниматься кунг-фу? DocsQA — это фактически то же самое (примечание: это также известно как Retrieval Augmented Generation (RAG) в сообществе ИИ).

DocsQA предоставляет LLM доступ к новым знаниям и информации. Давайте посмотрим, как это работает.

В этом примере мы просканировали все веб-страницы поддержки и продуктов для компании и превратили их в то, что мы называем корпусом. На практике наш корпус может состоять из содержимого документов, PDF-файлов, веб-сайтов или даже мультимедийных материалов, таких как аудио и видео. Корпус состоит из кусков всего контента. Фрагменты превращаются в вложения в векторной базе данных.

Когда конечный пользователь спрашивает о возврате поврежденного продукта, который он получил, наше приложение может найти соответствующую информацию в корпусе, а затем заставить LLM сгенерировать правильный ответ. Мы эффективно рассказали LLM о политике и процедурах возврата и поддержки нашей компании. Возможно, не так весело, как кунг-фу, но в данном случае гораздо практичнее.

Строительный блок № 2: Инструменты

Мы только что рассмотрели, как DocsQA может предоставить LLM доступ к большему количеству знаний и информации. Теперь давайте посмотрим на следующий строительный блок: Инструменты. Это относится к тому, чтобы позволить приложению с поддержкой LLM действовать от имени конечного пользователя, вызывая обычные API или программные функции.

Вот пример того, как это может выглядеть в нашем приложении:

Инструменты можно использовать отдельно или в сочетании с DocsQA. Например, мы можем захотеть, чтобы наше приложение могло давать отличные ответы на основе корпуса документации поддержки и справки, а также иметь возможность использовать инструменты для выполнения значимых действий (например, начать процесс возврата).

В приведенном выше примере мы предоставляем LLM новые инструменты. Эти инструменты основаны на обычных API-интерфейсах и позволяют нашему приложению просто информировать конечного пользователя о том, как выполнить возврат, к активному действию в данный момент, создавая метку возврата и позволяя клиенту продолжить свой день.

Строительный блок № 3: Генеративный пользовательский интерфейс (Gen UI)

Третий стандартный блок прекрасно вписывается и расширяет то, что мы видели выше с помощью DocsQA и Tools. Рассмотрим следующее:

Здесь мы предоставили LLM набор компонентов JSX и сделали возможным динамическое создание более богатого пользовательского опыта в ответ на потребности конечного пользователя. Вместо того, чтобы отображать пользовательский интерфейс только в уценке, теперь мы предоставляем переключатели для выбора и отображения этикетки доставки в более визуально привлекательном виде.

Мы считаем, что GenUI коренным образом изменит то, как создаются и используются приложения. Когда модель может создавать пользовательский интерфейс динамически, приложение становится гораздо более гибким (по сравнению с ручным созданием пользовательского интерфейса). Это означает, что приложения могут обрабатывать гораздо более широкий спектр вариантов использования. Мы больше не ограничены тем, что мы можем реализовать вручную, а только возможностями модели и разнообразием компонентов, которые мы предоставляем.

Представляем AI.JSX

AI.JSX — это новый фреймворк, разработанный Fixie с нуля, чтобы быть совершенно естественным для всех, кто знаком с React и JSX. AI.JSX делает каждый из этих трех строительных блоков легко доступным. AI.JSX поддерживает DocsQA, позволяет объявлять и предоставлять LLM доступ к инструментам, а также упрощает создание компонентов пользовательского интерфейса, а затем LLM использует их для выполнения GenUI. Мы считаем, что это делает AI.JSX самым захватывающим способом создания приложений на основе ИИ.

AI.JSX с открытым исходным кодом под лицензией MIT позволяет легко внедрять диалоговый ИИ в новые или существующие приложения, написанные на JavaScript. AI.JSX (как и LLM) все еще развивается, поскольку мы работаем с сообществом разработчиков и нашими клиентами, чтобы выяснить, как лучше всего использовать огромную мощь ИИ в существующих и совершенно новых приложениях.

Приветствуем разработчиков JavaScript + React на вечеринке

Большая часть действий разработчиков и специалистов по данным, работающих с ИИ и машинным обучением (ML), приходится на экосистему Python. Python — потрясающий язык, и существует множество библиотек и ресурсов, доступных для работы с LLM и создания приложений на их основе.

Мы любим Python и широко используем его здесь, в Fixie. Тем не менее, действие по созданию передового опыта для конечных пользователей находится в JavaScript и React. Вот почему мы создали и выпустили AI.JSX: чтобы дать десяткам миллионов разработчиков JS + React возможность легко добавлять LLM в свой коллективный набор инструментов. AI.JSX легко интегрируется с существующими или новыми приложениями React. Наша цель состоит в том, чтобы AI.JSX чувствовал себя полностью «javascript» и нравился разработчикам JS + React.

Приложение AI.JSX создается с использованием компонентов JSX. Подсказки для LLM также построены из компонентов, что обеспечивает значительный прирост производительности. Компоненты JSX в приложении AI.JSX можно комбинировать для создания сложных подсказок, интеграции LLM и даже элементов пользовательского интерфейса. Поскольку это всего лишь JSX, компоненты ИИ можно смешивать с элементами пользовательского интерфейса. Это позволяет нам объявить некоторые компоненты пользовательского интерфейса в React, а затем позволить ИИ сгенерировать пользовательский интерфейс для нашего приложения.

Вот пара изображений, которые показывают AI.JSX и GenUI в действии:

Пример: рендеринг без GenUI

Пример: рендеринг с GenUI

Начните строить с AI.JSX

Мы находимся на первых этапах разработки генеративных приложений, и все движется быстро. Нам нужна ваша помощь и вклад в развитие AI.JSX! Вы можете начать строить с AI.JSX уже сегодня. Мы приветствуем вклады. Ознакомьтесь с Руководством по началу работы и присоединяйтесь к нам в Discord, если у вас есть вопросы или предложения по улучшению AI.JSX.