OpenAI 는 글자 수가 아니라 token 수를 기준으로 과금해. 영어는 평균적으로 token 하나에 약 네 글자가 들어가지만, 한국어나 일본어는 같은 분량이어도 더 많은 token 이 필요해. 한글 1000 자짜리 프롬프트가 600 token 을 넘을 수도 있어서, 영어 문장을 볼 때의 감각으로 비용을 어림하면 크게 빗나가.
언어가 달라지면 비용도 달라져
여러 언어를 지원하는 앱은 같은 기능이라도 언어별 비용이 달라질 수 있어. 언어마다 예산을 따로 잡거나, 반복되는 system prompt 부분을 prompt caching 으로 아껴. 배포 전에 tiktoken 으로 직접 재는 게 가장 확실해. 눈으로 짧아 보인다는 이유만으로 싸다고 생각했다가는 원인을 찾는 데 더 많은 token 을 쓰게 돼.
vision token 은 이미지 크기와 detail 로 정해져
이미지 입력에 드는 token 은 이미지 크기와 detail 수준을 바탕으로 계산돼. detail='low' 는 85 token 으로 고정되고, detail='high' 는 이미지를 32×32 patch 로 나눠 계산해서 큰 이미지일수록 비싸져. high-detail 이미지를 대화 기록에 계속 쌓으면 비용이 빠르게 커져.
반복되는 앞부분은 cache 에 맡겨
OpenAI prompt caching 은 1024 token 이상인 같은 앞부분이 반복될 때 그 부분에 50% 할인을 적용해. 바뀌지 않는 system 지시와 few-shot 예시는 앞에 두고, 요청마다 달라지는 user input 은 뒤에 둬. 그래야 cache 가 긴 구간에 걸쳐 재사용돼.