API LLM tính tiền theo token, tách riêng input (prompt) token và output (completion) token — giá output thường cao hơn input vài lần (vì output phải sinh tuần tự, tốn compute hơn). Một token ≈ 4 ký tự tiếng Anh; tiếng Việt và code thường nhiều token hơn cùng độ dài.
Chi phí một lần gọi ≈ input_tokens × giá_in + output_tokens × giá_out.
Tại sao hội thoại tăng dần: API là stateless — mỗi lượt bạn phải gửi lại toàn bộ lịch sử (system + tất cả lượt user/assistant trước) làm input. Lượt càng về sau, input càng dài → chi phí input cộng dồn gần như bậc hai theo số lượt nếu không cắt bớt.
Ước lượng chi phí trước khi build: đếm token bằng tokenizer chính thức (tiktoken hoặc endpoint đếm token của provider) trên mẫu dữ liệu thật — đừng ước theo số chữ; chi phí một hội thoại ≈ số lượt × (lịch sử tích lũy trung bình + output trung bình) × giá. Đòn bẩy trực tiếp cho vấn đề tăng-theo-lượt là quản lý lịch sử: tóm tắt/cắt lượt cũ, chỉ giữ phần liên quan. Các chiến lược giảm chi phí tổng thể ở production (routing, caching, batch) là chủ đề riêng. Luôn tra bảng giá hiện hành vì giá thay đổi theo model.