14 listopada 2024 r.
Ulepszanie narzędzi dla programistów opartych na AI za pomocą interfejsu Gemini API

W ubiegłym roku demokratyyzacja AI dała deweloperom 2 duże możliwości: niezwykle łatwą integrację najnowocześniejszych technologii AI w ich projektach oraz zwiększenie wydajności dzięki AI w procesie tworzenia.
Sublayer, framework agenta AI oparty na Ruby, demonstruje moc i wydajność interfejsu Gemini API, integrując nasze modele 1.5 w swojej podstawowej ofercie dla deweloperów, a także we własnych przepływach pracy narzędzi.
Aktualizowanie dokumentacji Sublayer zgodnie z Gemini
Jedną z możliwości, jakie daje AI deweloperom, jest umożliwienie zespołom, zwłaszcza małym startupom na wczesnym etapie rozwoju, osiągania lepszych wyników przy mniejszych nakładach. W przypadku wielu osób może to być coś tak prostego, a jednocześnie ważnego jak dokumentacja. W ramach własnych procesów Sublayer integruje swoją bibliotekę z Gemini 1.5 Pro i tworzy automatyzacje AI, aby ułatwić aktualizowanie dokumentacji i identyfikowanie obszarów wymagających poprawy.
„To wszystko dlatego, że ogromne okno kontekstu Gemini daje Ci przestrzeń do wypróbowania nowych pomysłów bez konieczności zagłębiania się w skomplikowane, zoptymalizowane implementacje”
Proces wygląda tak:
Za każdym razem, gdy PR jest scalany z głównym repozytorium Sublayer, powoduje to, że pracownik zespołu zaczyna aktualizować dokumentację.
Usługa generuje prompt zawierający całą zawartość biblioteki, całą dokumentację i wszystkie istotne treści z projektu PR wraz z instrukcjami dotyczącymi zadania, a następnie wysyła go do Gemini.
Gemini zwraca wtedy wyniki ustrukturyzowane zawierające ścieżki do plików, nazwy i zawartość, które biblioteka Sublayer przekształca w obiekt do użycia.
Na koniec agent wykorzystuje otrzymane uporządkowane informacje do utworzenia nowej gałęzi, wprowadzenia żądanych zmian w plikach i przesłania nowej wersji.
# 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
Zobacz pełny kod przepływu pracy w przykładach kodu open source firmy Sublayer.
Po sukcesie pierwszego projektu zespół rozszerzył go o elementy monitorujące oddzielne repozytoria zasobów, aby skupić się na aktualizowaniu konkretnej strony katalogu dokumentów. Jest nawet podobne zadanie wykonywane w nocy, w którym Gemini analizuje bieżącą dokumentację, identyfikuje kilka obszarów wymagających ulepszenia, porządkuje je według wpływu, a następnie generuje jeden PR, który zespół Sublayer może sprawdzić każdego ranka.
Wprowadzanie AI do społeczności programistów Ruby za pomocą modeli Gemini
Oprócz zwiększenia wydajności własnej infrastruktury i narzędzi dla programistów firma Sublayer obsługuje też modele Gemini w ramach podstawowej funkcjonalności produktu.
Misją Sublayer jest umożliwienie indywidualnym programistom i małym zespołom realizacji ambitnych projektów, które wcześniej były nieosiągalne ze względu na koszty lub złożoność. Skupiają się na automatyzacji żmudnych, czasochłonnych i powtarzalnych zadań – idealne zastosowanie dla AI. Może to być migracja kodu na dużą skalę, w której podobne operacje muszą być powtarzane tysiące razy, aż po codzienną wydajność osiąganą dzięki automatyzacji drobnych zadań z listy kontrolnej, które pochłaniają czas i energię.
Głównym wyzwaniem dla Sublayer jest wspieranie społeczności programistów Ruby, która nie była do tej pory dobrze obsługiwana w ekosystemie AI. Dzięki integracji z Gemini firma ta mogła sprostać rosnącemu zapotrzebowaniu na obsługę Gemini w swoich narzędziach. Implementacja Gemini przez Sublayer jest bardzo wydajna i wymaga tylko około 60 linii kodu dzięki warstwie abstrakcji. Używają one uporządkowanych danych, które współpracują z modelami w ramach jednoetapowego procesu iteracyjnego. Takie podejście upraszcza tworzenie i debugowanie, pomagając deweloperom w tworzeniu niezawodnych aplikacji.
„Podczas tworzenia aplikacji opartych na LLM podziel problem na jak najmniejsze możliwe komponenty” – radzi Werner. „Programy powinny być zaprojektowane tak, aby skutecznie obsługiwać dane wyjściowe modelu, co może nawet oznaczać celowe dodanie kroków, które użytkownik musi sprawdzić i zmodyfikować, zanim będzie mógł przejść dalej”.
LLM – kluczowy element infrastruktury AI
Dla Sublayer LLM, takie jak Gemini, są istotnymi elementami infrastruktury, podobnymi do baz danych. Ich framework umożliwia płynne integrowanie wywołań zarówno Gemini 1.5 Pro, jak i Gemini 1.5 Flash, pobierając uporządkowane dane, których deweloperzy mogą łatwo używać w swoich aplikacjach. Takie podejście otwiera przed Tobą wiele możliwości, od wyodrębniania statystyk z różnych źródeł danych po generowanie kodu i przekształcanie baz kodu w różnych językach i bibliotekach. Sublayer wykorzystuje nawet modele Gemini, aby umożliwić użytkownikom generowanie nowych komponentów funkcjonalnych w ramach samego frameworka. Ta cecha „samoorganizowania się” zachęca do eksperymentowania i umożliwia użytkownikom szybkie testowanie nowych pomysłów.
„Gemini świetnie radzi sobie ze wszystkimi problemami, które nasz framework ma ułatwiać – generowanie kodu, dekompozycja zadań, wykonywanie instrukcji i generowanie nowych struktur danych na podstawie przykładów”
Co dalej?
W przyszłości firma Sublayer planuje wprowadzić platformę Augmentations.ai, która umożliwi udostępnienie tworzonych przez nią automatyzacji wszystkim zespołom programistycznym. Pierwsza wersja zawiera 2 narzędzia oparte na Gemini 1.5 Pro: semantyczne sprawdzanie kodu, które umożliwia zespołom tworzenie reguł sprawdzania kodu opartych na AI, które rozumieją kontekst i egzekwują rozwijające się sprawdzone metody, oraz podsumowania tygodniowe, które przekształcają działania związane z rozwojem w różnych repozytoriach i narzędziach do zarządzania produktami w przydatne statystyki dla kadry kierowniczej.
Zamierzają nadal korzystać z modeli Gemini 1.5 Pro do wykonywania bardziej złożonych zadań i modeli Gemini 1.5 Flash do obsługi funkcji, które wymagają niskiej latencji i są skierowane do użytkowników, ponieważ będą publikować więcej narzędzi na platformie Augmentations. Dzięki temu będziemy mogli również udoskonalać naszą platformę open source, co pozwoli społeczności Ruby korzystać z nowych funkcji Gemini w miarę ich pojawiania się. Jednocześnie będziemy mogli wykorzystywać rzeczywiste przypadki użycia w praktyce przez zespół Sublayer.
Historia firmy Sublayer pokazuje przełomowy potencjał interfejsu Gemini API. To dowód na to, jak łatwo deweloperzy mogą integrować Gemini w swoich procesach, otwierając przed sobą mnóstwo możliwości innowacji i automatyzacji. Aby zacząć tworzyć modele Gemini, przeczytaj dokumentację interfejsu API.