공유

2024년 11월 14일

Gemini API로 AI 기반 개발자 도구 개선

스콧 베르너

Sublayer CEO

페이지 베일리

AI 개발자 환경 엔지니어

비샬 다르마디카리

제품 솔루션 엔지니어

하위 레이어 쇼케이스 히어로

지난 1년 동안 AI가 대중화되면서 개발자에게는 첨단 AI를 프로젝트에 매우 쉽게 통합하고 AI 기반 효율성을 개발 프로세스에 도입하는 두 가지 큰 기회가 열렸습니다.

루비 기반 AI 에이전트 프레임워크인 Sublayer는 1.5 모델을 핵심 개발자 제품 및 자체 도구 워크플로에 통합하여 Gemini API의 강력함과 효율성을 보여줍니다.

Gemini를 사용하여 하위 레이어 문서 최신 상태 유지

개발자에게 AI가 제공하는 기회 중 하나는 특히 초기 단계의 소규모 스타트업 내 팀이 적은 인력으로 더 많은 작업을 할 수 있도록 지원하는 것입니다. 많은 경우 문서와 같이 간단하지만 중요한 요소일 수 있습니다. Sublayer는 자체 워크플로에서 라이브러리를 Gemini 1.5 Pro와 통합하고 문서를 최신 상태로 유지하고 개선이 필요한 영역을 파악하는 작업을 지원하는 AI 자동화를 빌드하여 이 문제를 해결합니다.

"Gemini의 대규모 컨텍스트 창을 사용하면 복잡하고 최적화된 구현에 얽매이지 않고 새로운 아이디어를 시도할 수 있기 때문에 이런 결과가 가능했습니다."

' - 최근 Waste Inferences!에서 이 개념에 대해 쓴 Sublayer의 CEO 스콧 베르너는 말합니다.

이 프로세스는 다음과 같이 작동합니다.

  1. PR이 기본 하위 레이어 저장소에 병합될 때마다 문서를 업데이트하는 작업을 시작하도록 에이전트가 트리거됩니다.

  2. 상담사는 라이브러리의 전체 콘텐츠, 문서의 전체 콘텐츠, PR의 모든 관련 콘텐츠를 포함하는 프롬프트를 생성하고 작업을 설명하는 안내와 함께 Gemini로 전송합니다.

  3. 그러면 Gemini는 하위 레이어 라이브러리가 사용할 객체로 변환하는 파일 경로, 이름, 콘텐츠가 포함된 구조화된 출력으로 응답합니다.

  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  
          
            
          

하위 레이어의 오픈소스 예시에서 전체 워크플로 코드를 확인하세요.

이 첫 번째 프로젝트의 성공에 힘입어 별도의 리소스 저장소를 모니터링하는 상담사로 확대하여 문서의 특정 카탈로그 페이지를 최신 상태로 유지하는 데 집중하고 있습니다. Gemini가 현재 문서를 분석하고, 개선할 부분을 몇 가지 파악하고, 영향을 기준으로 순위를 매기고, Sublayer팀이 매일 아침에 확인할 단일 PR을 생성하는 유사한 작업도 야간에 실행됩니다.

Gemini 모델을 통해 Ruby 개발자 커뮤니티에 AI 제공

Sublayer는 자체 개발자 인프라와 도구를 더 효율적으로 만드는 것 외에도 핵심 제품 기능 내에서 Gemini 모델을 지원합니다.

Sublayer의 사명은 개별 개발자와 소규모 팀이 비용이나 복잡성으로 인해 이전에는 도달할 수 없었던 야심찬 프로젝트에 도전할 수 있도록 지원하는 것입니다. 지루하고, 시간이 많이 걸리고, 반복적인 작업을 자동화하는 데 중점을 두고 있습니다. 이는 AI의 완벽한 사용 사례입니다. 이는 유사한 작업을 수천 번 반복해야 하는 대규모 코드 이전부터 시간과 에너지를 소모하는 체크리스트의 소규모 작업을 자동화하여 달성하는 일상적인 효율성까지 다양합니다.

Sublayer의 주요 과제는 AI 생태계에서 상대적으로 소외된 Ruby 개발자 커뮤니티를 지원하는 것입니다. Gemini를 통합하여 도구 내에서 증가하는 Gemini 지원 수요를 충족할 수 있었습니다. 하위 레이어의 Gemini 구현은 추상화 레이어 덕분에 약 60줄의 코드만 있으면 되므로 매우 효율적입니다. 정형 출력을 사용하여 단일 턴 반복 프로세스에서 모델과 상호작용합니다. 이 접근 방식은 개발 및 디버깅을 간소화하여 개발자가 강력한 애플리케이션을 빌드하는 데 도움이 됩니다.

"LLM 기반 앱을 빌드할 때는 문제를 최대한 작은 구성요소로 분류하세요."라고 베르너는 조언합니다. "모든 모델 출력을 효과적으로 처리하도록 프로그램을 설계해야 합니다. 이를 위해 사용자가 계속 진행하기 전에 검토하고 수정할 수 있는 단계를 의도적으로 추가할 수도 있습니다."

AI 인프라 퍼즐의 핵심 부분인 LLM

하위 레이어에서 Gemini와 같은 LLM은 데이터베이스와 마찬가지로 필수적인 인프라 구성요소입니다. 이 프레임워크는 Gemini 1.5 Pro 및 Gemini 1.5 Flash 호출을 원활하게 통합하여 개발자가 애플리케이션에서 쉽게 활용할 수 있는 정형 데이터를 가져오도록 설계되었습니다. 이 접근 방식을 사용하면 다양한 데이터 소스에서 통계를 추출하는 것부터 언어와 라이브러리 간에 코드를 생성하고 코드베이스를 변환하는 것까지 다양한 가능성을 열 수 있습니다. 하위 레이어는 Gemini 모델을 사용하여 사용자가 프레임워크 자체 내에 새로운 기능 구성요소를 생성할 수 있도록 지원합니다. 이러한 '자체 조합' 특성은 실험을 장려하고 사용자가 새로운 아이디어를 빠르게 탐색할 수 있도록 합니다.

“Gemini는 코드 생성, 태스크 분해, 안내 따르기, 예시를 기반으로 새 데이터 구조 생성 등 프레임워크가 설계된 모든 문제를 해결하는 데 효과적입니다.”

— 스콧 베르너, 하위 레이어

다음 단계

Sublayer는 앞으로 모든 개발팀에서 생성한 자동화를 사용할 수 있는 플랫폼인 Augmentations.ai를 출시할 준비를 하고 있습니다. 초기 출시에는 Gemini 1.5 Pro를 기반으로 하는 두 가지 도구가 포함됩니다. 팀에서 컨텍스트를 이해하고 진화하는 권장사항을 적용하는 AI 기반 코드 검토 규칙을 만들 수 있는 Semantic Linting과 여러 저장소 및 제품 관리 도구의 개발 활동을 경영진이 활용할 수 있는 유용한 정보로 변환하는 Weekly Summaries입니다.

Google은 Augmentations 플랫폼에 더 많은 도구를 출시함에 따라 더 복잡한 작업에는 Gemini 1.5 Pro를, 지연 시간에 민감한 사용자 대상 기능에는 Gemini 1.5 Flash를 계속 활용할 계획입니다. 이 작업은 오픈소스 프레임워크에도 반영되어 Ruby 커뮤니티가 새로운 Gemini 기능이 출시될 때 이를 활용할 수 있도록 하면서 하위 레이어팀의 실제 사용을 기반으로 합니다.

하위 레이어의 스토리는 Gemini API의 혁신적인 잠재력을 보여줍니다. 이는 개발자가 Gemini를 워크플로에 얼마나 쉽게 통합하여 혁신과 자동화를 위한 기회의 장을 열 수 있는지를 보여주는 증거입니다. Gemini 모델로 빌드를 시작하려면 API 문서를 참고하세요.