14 ноября 2024 г.
Расширение инструментов разработчика на базе ИИ с помощью API Gemini
Демократизация ИИ за последний год открыла разработчикам две большие возможности: невероятно упростила интеграцию передового ИИ в свои проекты и привнесла эффективность за счет ИИ в процесс разработки.
Sublayer , фреймворк агентов ИИ на базе Ruby, демонстрирует мощь и эффективность API Gemini, интегрируя наши модели 1.5 в свое основное предложение для разработчиков, а также в собственные инструментальные рабочие процессы.
Поддержание актуальности документации по подслою с помощью 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 ориентирована на автоматизацию трудоемких, трудоемких и повторяющихся задач — идеальный вариант использования ИИ. Это может быть как масштабная миграция кода, где одни и те же операции необходимо повторять тысячи раз, так и повышение эффективности повседневной работы за счет автоматизации небольших задач из контрольного списка, отнимающих много времени и сил.
Одной из основных задач Sublayer является поддержка сообщества разработчиков Ruby, которое в настоящее время недостаточно развито в экосистеме искусственного интеллекта. Интеграция Gemini позволила им удовлетворить растущий спрос на поддержку Gemini в своих инструментах. Реализация Gemini в Sublayer отличается высокой эффективностью и требует всего около 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 демонстрирует преобразующий потенциал API Gemini. Это свидетельствует о том, насколько легко разработчики могут интегрировать Gemini в свои рабочие процессы, открывая целый мир возможностей для инноваций и автоматизации. Чтобы начать разработку с использованием моделей Gemini, ознакомьтесь с нашей документацией по API.
Toonsutra
Использование возможностей контекстного многоязыкового перевода Gemini 2.0 для того, чтобы сделать комиксы и веб-фильмы доступными для аудитории в Индии на всех региональных языках.