AI 입문가이드
긴 AI 채팅이 더 비싼 이유: API가 기록을 다시 보냅니다
AI 채팅의 모든 새 메시지는 전체 기록을 다시 보내므로 매 턴 입력이 늘어납니다. 계산 방식과 비용을 낮추는 3가지 방법을 확인하세요.

이 페이지의 내용
채팅의 첫 메시지들은 저렴합니다. 같은 양을 입력했는데도 50번째 메시지는 10번째 메시지보다 눈에 띄게 비쌉니다. 고장 난 것은 아닙니다. 채팅 API는 이렇게 동작합니다.
짧은 답변#
모델은 이전 요청을 기억하지 않습니다. OpenAI의 문서는 이를 분명히 밝힙니다. "각 텍스트 생성 요청은 독립적이며 상태가 없습니다(stateless)"라고 하며, 멀티턴 대화의 경우 이전 메시지와 모델의 이전 답변을 다음 요청에 포함시킵니다. Anthropic의 Messages API도 같은 패턴을 설명합니다. 상태가 없는 멀티턴 대화이며, 이전 턴들은 messages 파라미터로 전달됩니다.
따라서 앱에서 보이는 채팅 창은 앱이 만들어낸 환상입니다. 그 뒤에서는 모든 새 메시지가 지금까지의 전체 대화를 담은 새로운 요청입니다. 매 요청마다 입력 토큰을 지불하며, 대화 기록이 그 입력의 일부입니다. 용어가 낯설다면 먼저 토큰이란 무엇인가와 입력 토큰과 출력 토큰을 읽어 보세요.
OpenAI는 응답 체인에 대한 과금 방식을 명시합니다. 체인 내의 모든 이전 입력 토큰은 입력 토큰으로 과금됩니다. 기록을 직접 보내는 모든 API에도 같은 원칙이 적용됩니다. 보낸 것이 곧 계산되는 것입니다.
가상의 숫자로 본 예시#
아래 숫자는 측정값이 아니라 설명을 위한 예시입니다. 각 메시지가 약 200 토큰이고 각 답변이 약 300 토큰이라고 가정합니다. 한 번의 주고받기가 끝나면 기록에 500 토큰이 추가됩니다.
표를 오른쪽으로 스크롤하세요 →
| 턴 | 다시 보내는 이전 기록 | 새 메시지 | 이 요청의 입력 | 출력 |
|---|---|---|---|---|
| 1 | 0 | 200 | 200 | 300 |
| 5 | 500 × 4 = 2,000 | 200 | 2,200 | 300 |
| 10 | 500 × 9 = 4,500 | 200 | 4,700 | 300 |
| 20 | 500 × 19 = 9,500 | 200 | 9,700 | 300 |
답변 길이는 그대로지만 20번째 턴의 입력은 1번째 턴 입력의 거의 50배입니다. 출력은 늘지 않고 입력이 늘어납니다.
이제 20턴 채팅의 총합을 봅시다. 기록은 주고받은 횟수만큼 0, 1, 2 ... 19번 다시 전송되며, 이는 단순한 합입니다.
- 다시 보내는 이전 주고받기: 500 × 190 = 95,000 토큰 (190은 0 + 1 + 2 + ... + 19).
- 새 메시지: 200 × 20 = 4,000 토큰.
- 채팅의 총 입력: 95,000 + 4,000 = 99,000 토큰.
- 총 출력: 300 × 20 = 6,000 토큰.
모델이 모든 것을 무료로 기억한다면 입력은 200 × 20 = 4,000 토큰에 불과할 것입니다. 나머지는 기록을 다시 보내는 것입니다. 턴 수를 두 배로 늘리면 기록 비용이 두 배가 되는 것이 아니라 대략 네 배가 됩니다. 합이 턴 수의 제곱에 비례해 커지기 때문입니다.
실제 가격으로 본 비용#
다음은 현재 가격 기준의 동일한 20턴 채팅(입력 99,000, 출력 6,000)입니다. 표는 실시간이며 요금이 바뀌면 갱신됩니다. 마지막 열은 비교를 위한 OpenRouter의 참고 가격입니다.
| 모델 | 입력 $/1M | 출력 $/1M | 비용 | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.0022 | $0.0045 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.0021 | $0.0056 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.0059 | $0.0369 |
총 입력 99,000개 및 출력 6,000개 토큰입니다. 100만 토큰당 가격은 현재 기준이며 당사 요금제에 따라 함께 변경됩니다. OpenRouter 열은 동일한 작업량에 대한 참고 가격을 보여줍니다.
텍스트로 빠르게 확인해 보면, MiniMax-M2.7에서 이 전체 대화의 비용은 $0.0059입니다. 이처럼 입력이 지배적인 채팅에서는 입력 가격이 가장 중요합니다. MiniMax-M2.7에서는 OpenRouter의 참고 가격보다 저렴합니다. 1M 토큰당 MiniMax-M2.7은 입력 $0.05, 출력 $0.15입니다.
비용을 낮추는 세 가지 방법#
1. 주제가 바뀌면 새 채팅을 시작하세요#
가장 저렴한 기록은 빈 기록입니다. 함수 디버깅을 마치고 이제 레시피를 원한다면, 새 채팅은 9,700 토큰 대신 200 토큰을 보냅니다. 앱에서는 버튼 하나이고, 코드에서는 history = []입니다. 이전 맥락이 다음 질문에 더 이상 도움이 되지 않을 때마다 이렇게 하세요.
2. 기록을 잘라내세요#
마지막 몇 개의 메시지만 유지하고 나머지는 버리세요. 마지막 세 번의 주고받기를 유지한다고 가정하면 기록은 500 × 3 = 1,500 토큰을 넘지 않습니다.
- 1-3턴은 정상적으로 증가합니다: 기록 0 + 500 + 1,000 = 1,500 토큰.
- 4-20턴은 각각 상한인 1,500을 담습니다: 1,500 × 17 = 25,500 토큰.
- 기록 총합: 1,500 + 25,500 = 27,000 토큰, 여기에 새 메시지 4,000을 더하면 입력 31,000 토큰입니다.
같은 20턴에 99,000 대신 31,000이며, MiniMax-M2.7에서는 $0.0025입니다. 잘라내기의 대가는 모델이 채팅의 초반부를 잊는다는 것이므로, 시스템 프롬프트와 잃어서는 안 되는 사실은 잘라낸 부분 밖에 두세요.
3. 오래된 턴을 요약으로 대체하세요#
기록이 길어지면 모델에게 한 번 요약을 요청한 뒤, 전체 텍스트 대신 요약으로 이어가세요. 위 예시에서 아홉 번의 주고받기는 4,500 토큰입니다. 약 300 토큰의 요약이 핵심을 앞으로 전달합니다. 요약을 작성하기 위한 요청 하나를 추가로 지불하고, 이후의 모든 요청은 가벼워집니다. 약간의 세부 사항을 잃는 대신 단순한 잘라내기보다 더 많은 의미를 유지합니다.
컨텍스트 윈도우는 별개의 한계입니다. 답변을 포함해 한 요청이 담을 수 있는 토큰 수를 제한합니다. 기록은 결국 이 상한에 도달합니다. AI 답변이 문장 중간에 멈추는 이유는?에서 설명합니다.
직접 코드에서 확인하기#
응답에는 usage 객체가 포함되므로 증가세를 직접 확인할 수 있습니다. 다음은 예시입니다. 제공자마다 id가 다르므로 키를 교체하고 CheapTokens 문서에서 모델 id를 가져오세요.
from openai import OpenAI
client = OpenAI(base_url='https://api.cheaptokens.dev/v1', api_key='YOUR_KEY')
system = {'role': 'system', 'content': 'You are a helpful assistant.'}
history = []
KEEP = 7 # new message + last 3 exchanges (6 messages); None keeps everything
def ask(text):
history.append({'role': 'user', 'content': text})
r = client.chat.completions.create(
model='MODEL_ID_FROM_DOCS',
messages=[system] + (history[-KEEP:] if KEEP else history),
)
answer = r.choices[0].message.content
history.append({'role': 'assistant', 'content': answer})
print(r.usage.prompt_tokens, r.usage.completion_tokens)
return answerask()를 연속으로 여러 번 호출하고 prompt_tokens를 출력하세요. KEEP = None에서는 매 턴 증가하고, KEEP = 7에서는 평평해집니다. 여러 단계를 반복하는 에이전트의 경우 각 단계마다 같은 효과가 적용됩니다. AI 에이전트의 비용을 추정하는 방법에서 예산을 세우는 방법을 보여줍니다.
긴 채팅을 어디에서 실행할까#
긴 대화와 에이전트 루프는 입력량이 지배적인 바로 그 워크로드이므로, 큰 컨텍스트 윈도우와 긴 답변을 위한 여유가 모두 중요합니다.
- MiniMax-M2.7: 180K 컨텍스트, 답변당 최대 8,192 토큰, 입력과 출력 모두 OpenRouter의 참고 가격보다 저렴합니다.
- DeepSeek-V4-Flash: 380K 컨텍스트, 답변당 최대 32,768 토큰, 출력이 OpenRouter의 참고 가격보다 저렴합니다.
CheapTokens는 모든 모델에 하나의 잔액을 사용하고, 피크 시간 없는 모델별 고정 가격을 제공하며, OpenAI Chat Completions 및 Anthropic Messages와 호환되는 API를 제공하므로 위 코드는 base URL만 바꾸면 동작합니다. 잔액을 충전하고 CheapTokens로 첫 API 요청 보내기를 따라 첫 요청을 보내세요.



