13장. 계산은 언어 모델이 아니라 실행 가능한 식으로 검증한다
AI는 계산 과정을 설명할 수 있지만 숫자 대사는 코드, 스프레드시트, SQL처럼 결정적인 도구가 더 적합하다. 특히 비율, 날짜, 세금, 환율, 표 집계는 자연어 추론과 분리한다.
DecisionDesk의 비용은 다음 식으로 기록한다.
월 추정 변동비 = 월 요청 수 × 요청당 평균 입력 토큰 × 입력 단가
+ 월 요청 수 × 요청당 평균 출력 토큰 × 출력 단가
+ 검색·저장·도구 비용
단가를 코드에 영구 고정하지 않고 발행일 또는 실행일 값을 입력한다.
function estimateCost({inputTokens, outputTokens, inputPerMillion, outputPerMillion}) {
return (inputTokens * inputPerMillion + outputTokens * outputPerMillion) / 1_000_000;
}
결과에는 가정을 함께 반환한다. 4.8달러만 쓰면 나중에 재현할 수 없다.
{
"usd": 4.8,
"assumptions": {
"requests": 1000,
"average_input_tokens": 1200,
"average_output_tokens": 300,
"price_checked_at": "YYYY-MM-DD"
}
}
데이터 분석에서는 grain을 먼저 정한다. 한 행이 고객인지 주문인지 이벤트인지 모르면 중복 집계를 만든다. 시간대와 결측값, 취소 데이터, 테스트 계정을 명시한다. AI가 작성한 SQL은 작은 표본과 총계, 기존 대시보드와 대사한다.
계산 오류가 나면 프롬프트에 “정확히 계산”을 반복하지 않는다. 식을 분리하고 테스트 사례를 추가한다.
경계값 테스트를 작성한다
계산식에는 0, 음수, 매우 큰 값, 소수점, 다른 통화, 누락을 넣는다. 비용 상한을 초과했을 때 단순히 빨간색으로 보이는지뿐 아니라 실행이 실제 차단되는지 확인한다.
assert.equal(estimateCost({inputTokens: 0, outputTokens: 0}), 0);
assert.throws(() => estimateCost({inputTokens: -1}), /NON_NEGATIVE/);
assert.equal(roundCurrency(10.005, 'USD'), 10.01);
반올림 규칙과 환율 기준일은 비즈니스 규칙이다. 모델이 임의로 정하지 않는다. 원 데이터, 변환 코드, 결과의 해시 또는 버전을 연결하면 보고서 수치가 어디서 왔는지 재현할 수 있다. 스프레드시트라면 숨은 행, 필터, 수식 오류도 확인한다.