Делиться

14 ноября 2024 г.

Улучшение инструментов разработчика на базе искусственного интеллекта с помощью API Gemini

Скотт Вернер

Генеральный директор Sublayer

Пейдж Бейли

Инженер по опыту разработчика искусственного интеллекта

Вишал Дхармадхикари

Инженер по продуктовым решениям

Герой демонстрации подслоя

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

Sublayer , фреймворк ИИ-агента на основе Ruby, демонстрирует мощь и эффективность API Gemini, интегрируя наши модели 1.5 в свое основное предложение для разработчиков, а также в свои собственные рабочие процессы инструментов.

Поддержание актуальности документации Sublayer с помощью Gemini

Одна из возможностей ИИ для разработчиков — дать возможность командам, особенно в небольших стартапах на ранней стадии, делать больше с меньшими затратами. Для многих это может быть что-то такое простое, но важное, как документация. В своих собственных рабочих процессах Sublayer решает эту проблему, интегрируя свою библиотеку с Gemini 1.5 Pro и создавая автоматизацию ИИ для поддержки работы по обновлению документации и выявлению областей улучшения.

«Все это произошло потому, что огромное контекстное окно Gemini действительно дает вам возможность опробовать новые идеи, не увязая в сложных оптимизированных реализациях на начальном этапе»,

— говорит Скотт Вернер, генеральный директор Sublayer, который недавно написал об этой концепции в Waste Inferences!

Процесс работает следующим образом:

  1. Каждый раз, когда PR объединяется с основным репозиторием Sublayer, он запускает агента, который приступает к обновлению документации.

  2. Агент генерирует подсказку, содержащую все содержимое библиотеки, все содержимое документации и все соответствующее содержимое PR вместе с инструкциями, поясняющими задачу, и отправляет ее в Gemini.

  3. Затем Gemini отвечает структурированными выходными данными, содержащими пути к файлам, имена и содержимое, которые библиотека Sublayer преобразует в объект для использования.

  4. Наконец, агент берет полученную структурированную информацию и использует ее для создания новой ветви, внесения запрошенных изменений в файлы и отправки нового 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 в своих инструментах. Реализация Gemini от Sublayer очень эффективна, требуя всего около 60 строк кода благодаря их слою абстракции. Они используют структурированные выходные данные, взаимодействуя с моделями в одношаговом итеративном процессе. Такой подход упрощает разработку и отладку, помогая разработчикам создавать надежные приложения.

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

LLM — ключевой элемент головоломки инфраструктуры ИИ

Для Sublayer LLM, такие как Gemini, являются неотъемлемыми частями инфраструктуры, сродни базам данных. Их фреймворк разработан для бесшовной интеграции вызовов как Gemini 1.5 Pro, так и Gemini 1.5 Flash, извлекая структурированные данные, которые разработчики могут легко использовать в своих приложениях. Такой подход открывает целый мир возможностей: от извлечения информации из различных источников данных до генерации кода и преобразования кодовых баз между языками и библиотеками. Sublayer даже использует модели Gemini, чтобы пользователи могли создавать новые функциональные компоненты внутри самого фреймворка. Эта «самосборочная» характеристика поощряет эксперименты и позволяет пользователям быстро исследовать новые идеи.

«Gemini отлично справляется со всеми задачами, которые призван облегчить наш фреймворк: генерация кода, декомпозиция задач, выполнение инструкций и генерация новых структур данных на основе примеров»

— Скотт Вернер, Sublayer

Что дальше?

Заглядывая вперед, 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 для того, чтобы сделать комиксы и вебтун-фильмы доступными для аудитории в Индии на всех региональных языках.