What is BAML — 함수 정의와 baml_client
What is BAML — 함수 정의와 baml_client
BAML의 개발자 경험을 가장 잘 이해하는 방법은 라이브로 보고 직접 해 보는 거예요. 여기서는 BAML 함수 정의를 작성하고, 그걸 Python 스크립트에서 호출하는 흐름을 볼게요. 전체 마이그레이션이 필요 없다는 점이 장점이에요. 기존 LLM 프레임워크와 나란히 동작하니까요.
출처: https://docs.boundaryml.com/guide/introduction/what-is-baml
Write a BAML function definition
먼저 main.baml에 함수를 정의해요. VSCode Playground에서 바로 테스트를 돌려볼 수 있어요.
// main.baml — BAML 함수 정의 예시
Generate baml_client from those .baml files
그다음 .baml 파일들에서 **baml_client**를 생성해요. 이건 자동 생성된 코드로, LLM 엔드포인트 호출, 출력 파싱, 깨진 JSON 수정, 오류 처리를 위한 모든 보일러플레이트를 담고 있어요.
Call your function in any language
마지막으로 어떤 언어에서든 함수를 호출해요. 타입 안전성, 자동완성, 재시도 로직, 견고한 JSON 파싱이 붙어 있어요.
# Python에서 baml_client의 함수 호출 예시
from baml_client import baml
result = baml.MyFunction(...)
BAML로 LLM 코드를 100% 마이그레이션할 필요는 없어요. 기존 LLM 프레임워크와 함께 쓰면 되고, 몇 분 안에 셋업하려면 언어별 설치 가이드를 따라가면 돼요.