C.W.K.
Stream
Lesson 03 of 07 · published

Braintrust: Observability 와 Eval Platform

~22 min · frameworks, braintrust, observability, platform

Level 0Guesser
0 XP0/55 lessons0/10 achievements
0/150 XP to next level150 XP to go0% complete

Eval + tracing + UI + dataset 한 platform 에

Braintrust 는 LLM 평가와 observability 위한 hosted (self-hosted 옵션 있음) platform. Experiment tracking, dataset versioning, side-by-side 비교 UI, prompt playground, online (production) eval, CI/CD 통합 결합. 팀이 공유 workspace 필요하고 dashboard 만들고 싶지 않을 때 best fit.

기본 제공

  • Experiment — 모든 eval run 이 전체 input/output/score 와 함께 추적된 experiment 가 됨.
  • Dataset — versioned, UI-편집 가능, JSONL 에서 import 가능.
  • Side-by-side diff view — 두 experiment 를 case level 에서 비교. "이 prompt 변경이 도움이 됐어?" 에 결정적.
  • Online eval — production traffic log, async 로 score, regression 알림.
  • Prompt playground — eval signal 붙은 채 UI 에서 prompt iterate.
  • SDK — TypeScript, Python, plus promptfoo, OpenAI, Anthropic 통합.

빛나는 곳

팀들. 공유 workspace 가 killer feature. Engineer A 가 prompt iterate; engineer B 가 10분 후 experiment 봐서 뭐가 바뀌었고 왜 바뀌었는지 봐. UI 가 'notebook 이 내 노트북에 있어' 함정 제거.

안 맞는 곳

빠르게 iterate 하는 solo developer 는 SaaS layer 가 overkill 일 수 있어. Scale 에서 비용 중요 (per-call pricing). Self-hosted 존재하지만 운영적으로 non-trivial.

원칙: Braintrust 는 '공유 eval workspace 있어' 가 'eval 이 우리 repo 에 살아' 보다 팀에 더 가치 있을 때 옳은 pick. 둘이 배타적 X — 많은 팀이 둘 다 써.

Code

Install 과 Python 에서 experiment 돌리기·python
# pip install braintrust
from braintrust import Eval
from autoevals import LevenshteinScorer

def task(input):
    return your_app(input)

Eval(
    "my-app-eval",
    data=lambda: [
        {"input": "hello", "expected": "hi"},
        {"input": "good morning", "expected": "good day"},
    ],
    task=task,
    scores=[LevenshteinScorer],
)
Production traffic 위 online eval·python
from braintrust import init_logger, current_logger

logger = init_logger(project="production-app")

def handle_request(req):
    output = your_app(req.input)
    # Log to Braintrust — async scoring runs in the background
    current_logger().log(
        input=req.input,
        output=output,
        metadata={"user_id": req.user_id, "model": "gpt-4o"},
    )
    return output
SDK 통한 side-by-side diff·typescript
import { compareExperiments } from "braintrust";

const diff = await compareExperiments({
  baseExperimentId: "exp_v3_baseline",
  candidateExperimentId: "exp_v4_new_prompt",
});

console.log(`improved: ${diff.improved.length}, regressed: ${diff.regressed.length}`);
console.log("top regressions:", diff.regressed.slice(0, 5));

External links

Exercise

Braintrust 프로젝트 setup 하고 experiment 둘 — baseline 하나, 작은 prompt 변경 하나 — 돌려. Diff view 열어. 변경이 중요한 case 셋 식별하고 ship 할지 결정.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.