Делиться

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. Агент генерирует подсказку, содержащую все содержимое библиотеки, все содержимое документации и все соответствующее содержимое 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 ориентирована на автоматизацию трудоемких, трудоемких и повторяющихся задач — идеальный вариант использования ИИ. Это может быть как масштабная миграция кода, где одни и те же операции необходимо повторять тысячи раз, так и повышение эффективности повседневной работы за счет автоматизации небольших задач из контрольного списка, отнимающих много времени и сил.

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

,
Делиться

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. Агент генерирует подсказку, содержащую все содержимое библиотеки, все содержимое документации и все соответствующее содержимое 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 ориентирована на автоматизацию трудоемких, трудоемких и повторяющихся задач — идеальный вариант использования ИИ. Это может быть как масштабная миграция кода, где одни и те же операции необходимо повторять тысячи раз, так и повышение эффективности повседневной работы за счет автоматизации небольших задач из контрольного списка, отнимающих много времени и сил.

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