TL;DR

  • LLM 게이트웨이와 공급자의 모델 목록 차이를 알리는 봇을 크론 작업에서 exe.dev 가상 머신(VM) 기반 봇으로 바꿔 변경 사항을 완료 단계에 더 가깝게 전달함.
  • 기존 봇은 모델 목록 불일치를 확인하는 테스트를 실행하고, 작업이 필요하면 Slack에 알림을 보냄.
  • Buildkite로 크론 작업을 실행하는 대신 VM을 봇 군단에 추가함.
  • 새 봇은 제안된 변경 사항의 diff와 이를 CI 시스템에 대기열로 보내는 버튼을 제공함.
  • 봇은 다른 봇과 함께 모노레포에 체크인되어 지속적으로 배포됨.

모델 목록을 확인하는 봇

  • 최근 LLM 게이트웨이의 모델 목록이 LLM 공급자 중 한 곳의 목록과 일치하는지 알려주는 단순한 봇을 구축함.
  • 배포가 충분히 잦아 이를 동적으로 처리하는 일은 우선순위가 아니지만, 목록을 업데이트할 시점을 파악하는 데 유용함.
  • 경험을 바탕으로 Shelley와 함께 확인 로직을 테스트로 작성하고, Buildkite에서 크론 작업을 실행하도록 설정함. 작업이 필요하면 Slack에 알림을 게시함.
  • Buildkite에 대한 평가는 무난한 수준이며, 다음에 거슬리는 일이 생기면 분위기 코딩으로 개선한 대안으로 교체할 생각임.

알림에서 변경 실행까지

  • 작업을 마치자마자 접근 방식이 잘못됐음을 깨닫고 기존 구현을 모두 버림.
  • 초기 단계인 봇 군단에 추가할 exe.dev VM을 시작함.
  • 기존 봇은 “지원 중단된 모델을 제거해야 한다”는 알림을 출력하지만, 새 봇은 제안된 변경 사항의 diff와 변경을 CI 시스템에 대기열로 보내는 버튼을 제공함. 이후 변경은 CD 시스템으로 이어짐.
  • 이전에는 봇이 작업을 재촉하도록 하는 데 초점을 뒀지만, 이제는 봇이 작업을 가능한 한 완료 지점 가까이 가져오도록 함.
  • 이런 상태 관리는 CI 시스템만으로도 가능하지만 불필요하게 고통스러움. VM 비용이 저렴하다면 원하는 대로 맞춤 설정할 수 있는 작은 봇 서버를 두는 편이 나음.

봇 배포

  • 봇은 다른 봇과 나란히 모노레포에 체크인되어 있음.
  • 봇은 지속적으로 배포됨. 좋은 봇임.