14 ноября 2024 г.
Улучшение инструментов разработчика на базе искусственного интеллекта с помощью Gemini API
Демократизация искусственного интеллекта за последний год открыла перед разработчиками две большие возможности: невероятно упростила интеграцию передового искусственного интеллекта в свои проекты и повысила эффективность, основанную на искусственном интеллекте, в процессе разработки.
Sublayer , среда агентов искусственного интеллекта на основе Ruby, демонстрирует мощь и эффективность API Gemini, интегрируя наши модели 1.5 в свои основные предложения для разработчиков, а также в свои собственные рабочие процессы инструментов.
Обновление документации Sublayer с помощью Gemini
Одна из возможностей ИИ для разработчиков — дать возможность командам, особенно в небольших стартапах на ранней стадии, делать больше с меньшими затратами. Для многих это может быть что-то столь же простое, но важное, как документация. В своих рабочих процессах Sublayer решает эту проблему, интегрируя свою библиотеку с Gemini 1.5 Pro и создавая средства автоматизации искусственного интеллекта для поддержки работы по поддержанию актуальности документации и выявлению областей для улучшения.
«Все это произошло потому, что огромное контекстное окно Gemini действительно дает вам передышку, чтобы опробовать новые идеи, не увязая в сложных, оптимизированных реализациях заранее»,
Процесс работает следующим образом:
Каждый раз, когда PR объединяется с основным репозиторием Sublayer, агент приступает к работе по обновлению документации.
Агент генерирует приглашение, содержащее все содержимое библиотеки, все содержимое документации и все соответствующее содержимое PR, а также инструкции, объясняющие задачу, и отправляет его в Gemini.
Затем Gemini отвечает структурированными выходными данными, содержащими пути к файлам, имена и содержимое, которые библиотека Sublayer преобразует в объект для использования.
Наконец, агент берет полученную структурированную информацию и использует ее для создания новой ветки, внесения запрошенных изменений в файлы и отправки нового PR.
# Get the diff from the PR
diff = GithubGetDiffAction.new(repo: repo, pr_number: pr_number).call
# Get the contents of the library repository and docs repository
code_context = GetContextAction.new(path: code_repo_path).call
doc_context = GetContextAction.new(path: doc_repo_path).call
# Use Gemini 1.5 Pro to decide whether this PR requires a documentation update
result = DocUpdateNecessityGenerator.new(
code_context: code_context,
doc_context: doc_context,
diff: diff
).generate
# Use Gemini 1.5 Pro to generate suggested changes to the documentation
doc_update_suggestions = DocUpdateSuggestionGenerator.new(
code_context: code_context,
doc_context: doc_context,
context_ignore_list: context_ignore_list,
diff: diff
).generate
# Use Gemini 1.5 Pro to generate the changes to the suggested files
file_updates = DocUpdateGenerator.new(
code_context: code_context,
suggestions: suggestions,
doc_context: doc_context,
context_ignore_list: context_ignore_list
).generate
# Update each of the files returned by Gemini 1.5 Pro and create a new PR
Полный код рабочего процесса см. в примерах с открытым исходным кодом Sublayer.
После успеха этого первого проекта они расширились до агентов, которые отслеживают отдельные репозитории ресурсов, чтобы сосредоточиться на обновлении определенной страницы каталога своих документов. Есть даже похожая задача, которая выполняется в одночасье, когда Gemini анализирует текущую документацию, определяет несколько областей улучшения, ранжирует их по степени воздействия и генерирует единый PR, который команда Sublayer может просыпаться и просматривать каждое утро.
Привнесение ИИ в сообщество разработчиков Ruby с помощью моделей Gemini
Помимо повышения эффективности собственной инфраструктуры и инструментов разработки, Sublayer также поддерживает модели Gemini в рамках своих основных функций продукта.
Миссия Sublayer — дать возможность отдельным разработчикам и небольшим командам решать амбициозные проекты, которые ранее были недоступны из-за стоимости или сложности. Они сосредоточены на автоматизации утомительных, трудоемких и повторяющихся задач — идеальный вариант использования ИИ. Это может варьироваться от крупномасштабной миграции кода, когда аналогичные операции необходимо повторять тысячи раз, до повседневной эффективности, достигаемой за счет автоматизации небольших задач из контрольного списка, которые отнимают время и энергию.
Основной задачей Sublayer является поддержка сообщества разработчиков Ruby, которое относительно недостаточно развито в экосистеме искусственного интеллекта. Интеграция Gemini позволила им удовлетворить растущий спрос на поддержку Gemini в своих инструментах. Реализация Sublayer Gemini очень эффективна и требует всего около 60 строк кода благодаря уровню абстракции. Они используют структурированные выходные данные, взаимодействуя с моделями в рамках одноэтапного итерационного процесса. Такой подход упрощает разработку и отладку, помогая разработчикам создавать надежные приложения.
«При создании приложений на основе LLM разбивайте проблему на минимально возможные компоненты», — советует Вернер. «Вы хотите разрабатывать свои программы так, чтобы они эффективно обрабатывали выходные данные любой модели, что может даже означать намеренное добавление шагов, которые человек может просмотреть и отредактировать, прежде чем двигаться дальше».
LLM — основная часть головоломки инфраструктуры искусственного интеллекта
Для Sublayer такие LLM, как Gemini, являются важными частями инфраструктуры, сродни базам данных. Их инфраструктура предназначена для беспрепятственной интеграции вызовов как к Gemini 1.5 Pro, так и к Gemini 1.5 Flash, получая структурированные данные, которые разработчики могут легко использовать в своих приложениях. Этот подход открывает мир возможностей: от извлечения информации из различных источников данных до генерации кода и преобразования кодовых баз между языками и библиотеками. Sublayer даже использует модели Gemini, чтобы пользователи могли создавать новые функциональные компоненты внутри самой среды. Эта характеристика «самосборки» поощряет экспериментирование и позволяет пользователям быстро исследовать новые идеи.
«Gemini отлично справляется со всеми задачами, которые наша платформа призвана упростить: генерация кода, декомпозиция задач, следование инструкциям и генерация новых структур данных на основе примеров»
Что дальше
Заглядывая в будущее, Sublayer готовится к запуску Augmentations.ai , платформы, которая делает создаваемые ими средства автоматизации доступными для всех команд разработчиков. Их первоначальный выпуск будет включать два инструмента на базе Gemini 1.5 Pro: Semantic Linting, который позволяет командам создавать правила проверки кода на основе искусственного интеллекта, которые понимают контекст и реализуют развивающиеся лучшие практики, и Weekly Summaries, который распределяет деятельность по разработке между несколькими репозиториями и управлением продуктами. инструменты для получения практических идей для лидерства.
Они планируют продолжать использовать сочетание Gemini 1.5 Pro для более сложных задач и Gemini 1.5 Flash для более чувствительной к задержке и удобной для пользователя функциональности по мере выпуска новых инструментов на платформе Augmentations. Эта работа также будет учитываться в их среде с открытым исходным кодом, позволяя сообществу Ruby использовать преимущества новых функций Gemini по мере их появления, одновременно руководствуясь реальным использованием командой Sublayer.
История Sublayer демонстрирует преобразующий потенциал Gemini API. Это свидетельство того, насколько легко разработчики могут интегрировать Gemini в свои рабочие процессы, открывая мир возможностей для инноваций и автоматизации. Чтобы начать создавать модели Gemini, прочтите нашу документацию по API.