LLM(대규모 언어모델) 기반 서비스를 개발할 때, 테스트 과정에서 발생하는 비용과 시간, 그리고 비결정성(non-determinism) 문제는 큰 걸림돌이었습니다. 이러한 문제를 해결하기 위해 OpenAI와 Anthropic API 호출을 기록하고 재생(record and replay)할 수 있는 파이썬 라이브러리 'llm-mock'이 공개되었습니다. 이 라이브러리는 실제 API 호출 없이 저장된 응답을 활용하여 테스트 효율성을 극대화합니다.
'llm-mock'은 `pytest` 플러그인 형태로 제공되며, 개발자는 초기 한 번만 실제 API를 호출하여 응답을 JSON 파일로 저장합니다. 이후 테스트 시에는 이 저장된 JSON 파일을 사용하여 API 호출을 모의(mock)합니다. 이 방식은 CI/CD(지속적 통합/지속적 배포) 환경에서 API 키 없이 테스트를 실행할 수 있게 하며, 실제 API 호출에 드는 비용을 절감하고, 네트워크 지연 없이 즉각적인 응답을 받을 수 있도록 돕습니다. 특히, LLM의 비결정적 특성(동일한 프롬프트에도 다른 응답이 나올 수 있는 현상)으로 인해 테스트가 불안정해지는 문제를 해결하여, 예측 가능하고 안정적인 테스트 환경을 구축할 수 있습니다.
이 라이브러리는 `httpx`와 `respx`를 통해 HTTP 전송 계층에서 API 호출을 가로채는 방식으로 작동하므로, 기존 애플리케이션 코드에 변경을 가할 필요가 없습니다. 저장된 응답(fixture)은 일반 JSON 파일로 Git에 커밋하여 버전 관리가 가능하며, 필요에 따라 쉽게 갱신할 수 있습니다. 'llm-mock'의 등장은 LLM 기반 서비스 개발의 테스트 단계를 획기적으로 개선하여, 개발자들이 더욱 빠르고 효율적으로 고품질의 애플리케이션을 구축할 수 있도록 지원할 것입니다.