Делиться

14 ноября 2024 г.

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

Скотт Вернер

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

Пейдж Бейли

Инженер по пользовательскому опыту для разработчиков ИИ

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

Инженер по разработке продуктовых решений

Витрина подслоя: главный герой

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

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

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

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

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

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

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

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

  2. Агент генерирует запрос, содержащий все содержимое библиотеки, все содержимое документации и все соответствующее содержимое запроса на слияние, а также инструкции, поясняющие задачу, и отправляет его в 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 готовится к запуску 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.

Тонсутра

Использование возможностей контекстного многоязычного перевода Gemini 2.0 позволяет сделать комиксы и веб-комиксы доступными для аудитории в Индии на разных региональных языках.