| |

APIYI 호출 로그로 Codex의 턴별 토큰 사용량 확인하기: 5단계로 긴 대화의 비용 정확히 계산하기

APIYI 호출 로그로 Codex의 턴별 토큰 사용량 확인하기: 5단계로 긴 대화의 비용 정확히 계산하기

작성자 주: Codex 입력창에서 컨텍스트 사용량이 보이지 않나요? /status에서 확인할 수 있어요. 이 글에서는 APIYI 호출 로그로 Codex의 매 턴 토큰 소비량과 비용을 5단계로 계산하고, 압축할지 새 대화를 시작할지 판단하는 표도 살펴봐요.

Codex에 APIYI를 연결하고 하나의 대화에서 몇 시간 동안 작업했다고 해볼게요. 입력창 아래에는 권한 모드와 모델만 표시되고 컨텍스트 사용량은 보이지 않아서, 새 창을 열어야 할지 판단하기 어려울 수 있어요.

먼저 결론부터 말하면, Codex에서 컨텍스트 사용량을 볼 수 없는 게 아니라 확인 경로가 /status로 옮겨진 거예요. 비용 계산에 필요한 데이터는 APIYI / apiyi.com의 호출 로그에 있어요. 이 글에서는 APIYI 호출 로그로 Codex의 매 턴 토큰 소비량을 확인하는 방법을 다섯 단계로 나눠 설명해요. 무엇을 확인하고 어떻게 합산하는지, 언제 압축하거나 새 대화를 시작해야 하는지 알아볼게요.

단순히 개념만 설명하는 글이 아니에요. 각 단계에서 화면에 무엇이 보이는지, 어디를 클릭해야 하는지 알려드리고 확인 기준도 한 줄씩 덧붙였어요.

codex-token-usage-per-turn-apiyi-logs-ko-image-0


Codex에서 매 턴의 토큰 사용량이 보이지 않는 이유

Codex에서 컨텍스트 표시가 사라졌다고 생각하는 분들이 많아요. 실제로는 관련 정보가 세 곳에 나뉘어 있고, 각 화면에서 볼 수 있는 내용도 달라요.

  1. 데스크톱 클라이언트 / IDE 플러그인: 입력창에는 권한 모드와 모델만 표시돼요. /status를 입력하면 채팅 ID, 컨텍스트 사용 비율, 남은 속도 제한을 확인할 수 있어요.
  2. CLI: /status에서 현재 모델, 승인 정책, 쓰기 가능한 디렉터리, 현재 토큰 사용량을 확인할 수 있어요. CLI 하단에는 원래 컨텍스트 정보가 표시돼요. /statusline으로 컨텍스트 통계와 토큰 카운터를 하단에 추가할 수 있으며, 선택 결과는 config.toml의 tui.status_line에 저장돼요.
  3. codex exec --json: 비대화형 실행 시 Codex는 상태가 바뀔 때마다 JSON 이벤트를 한 줄씩 출력해요. 이 중 turn.completed 이벤트의 usage에는 input_tokens, cached_input_tokens, cache_write_input_tokens, output_tokens, reasoning_output_tokens 다섯 개 필드가 포함돼요.

또한 /usage는 공식 계정으로 로그인한 경우에만 계정 단위의 토큰 사용 현황을 보여줘요. 서드파티 키를 사용한다면 이 명령을 쓸 수 없어요.

Codex 토큰 사용량 확인 방법 세 가지 비교

확인 방법 적용 환경 볼 수 있는 정보 볼 수 없는 정보
APIYI 호출 로그 데스크톱, IDE, CLI 모두 요청별 입력, 출력, 캐시 읽기·쓰기, 금액 대화 내용. 한 줄은 한 번의 요청이므로 한 턴의 사용량은 직접 합산해야 해요
Codex /status 데스크톱 및 CLI 대화형 인터페이스 컨텍스트 사용량, 남은 속도 제한, 현재 토큰 사용량 금액
codex exec --json 비대화형 실행만 턴별 입력, 캐시 읽기, 캐시 쓰기, 출력, 추론 토큰 대화형 TUI와 데스크톱의 데이터

세 가지 방법 중 금액을 확인할 수 있는 건 로그뿐이에요. 단, 사용하는 채널에서 로그와 사용량 세부 내역을 제공해야 해요. 공식 구독에서는 개별 요청의 세부 내역을 확인할 수 없어요.


1단계: Codex 토큰 사용량의 집계 기준 정하기

집계하기 전에 한 가지만 기억하세요. 요청 한 번이 대화 한 턴과 같지는 않아요.

요청은 Codex가 모델을 한 번 호출하는 것을 말해요. 턴은 여러분이 메시지를 보내고 Codex가 작업을 마친 뒤 답변하기까지의 전체 과정이에요. 한 턴에서 Codex는 파일을 읽고, 명령어를 실행하고, 코드를 수정해요. 도구 호출이 끝날 때마다 그 결과와 전체 대화 기록을 모델에 다시 보내죠. 그래서 로그에서 한 턴은 보통 여러 줄에 해당하며, 복잡한 작업은 수십 줄이 될 수도 있어요.

또한 모델 자체는 이전에 무슨 말을 했는지 기억하지 못해요. N번째 턴의 입력은 대략 이전 N-1개 턴의 전체 내용과 이번 턴에 추가된 내용을 합친 것이에요. 대화가 길어질수록 비용이 높아지는 근본적인 이유죠.

codex-token-usage-per-turn-apiyi-logs-ko-image-1

확인: 로그에 여러 줄의 요청이 보일 때 같은 턴에 속하는지 판단할 수 있고, 한 줄을 한 턴으로 계산하지 않아요.


두 번째 단계: Codex 전용 토큰 만들기

통계가 정확하려면 로그에서 Codex 요청만 구분할 수 있어야 해요. Codex가 스크립트나 다른 도구와 키를 공유하면 나중에 토큰별로 필터링할 수 없어요.

  1. APIYI 콘솔의 토큰 페이지에서 「토큰 추가」를 클릭하고, “codex”처럼 알아보기 쉬운 이름을 붙여요.
  2. Codex의 config.toml을 열고 model_providers 아래에 provider를 추가해요. base_url = "https://api.apiyi.com/v1"로 설정하고, env_key로 이 토큰을 읽어올 환경 변수를 지정해요.
  3. model_provider가 이 provider를 가리키도록 설정해요. 데스크톱, IDE, CLI는 같은 설정 파일을 읽으므로 한 번만 변경하면 돼요.
  4. 다른 도구에는 반드시 별도의 키를 사용하고, 이 토큰을 공유하지 마세요.

🎯 기술 팁: 전용 토큰, 토큰별 로그 필터링, 내보내기는 APIYI / apiyi.com 콘솔에서 제공하는 통계 기능이에요. 공식 구독에서는 개별 요청의 상세 내역을 볼 수 없지만, 전용 토큰을 사용하면 Codex 비용을 따로 계산할 수 있어요.

확인: 로그 페이지에서 「펼치기」를 클릭한 후 고급 필터의 「토큰」에서 이 키를 선택했을 때, 목록에 Codex가 보낸 요청만 남으면 돼요.


세 번째 단계: 호출 로그에서 개별 요청 이해하기

api.apiyi.com/log, 즉 왼쪽 메뉴의 「로그」를 열어요. 목록의 각 행은 API 요청 한 건을 나타내요.

상단에서는 기본적으로 시간 범위, 유형, 모델, 캐시 상태를 필터링할 수 있어요. 캐시 상태 안내에는 “히트=캐시 읽기, 미스=캐시 생성”이라고 표시돼요. 「펼치기」를 클릭하면 토큰, 스트리밍 여부, 프롬프트/완성 범위, 첫 바이트까지 걸린 시간 등으로 더 세부적으로 필터링할 수 있어요.

로그 열의 의미

열 이름 표시되는 내용 이해하는 방법
시간 요청 완료 시간 기본값은 UTC+0으로, 베이징 시간보다 8시간 느려요
모델 예: gpt-5.6-terra 모델을 바꾸면 캐시가 공유되지 않아요
정보 스트리밍/비스트리밍, 첫 바이트까지 걸린 시간, 프롬프트/완성 토큰, 금액 한 칸에서 해당 요청의 개요를 확인할 수 있어요
프롬프트 / 완성 숫자 두 개 프롬프트는 입력 토큰, 완성은 출력 토큰이에요. 사고 토큰은 보통 완성에 포함돼요
사용 비용 달러 금액 할인 전 금액이며, 그룹 배율이 이미 적용돼 있어요
설명 각종 배율, 캐시 쓰기 토큰, 캐시 읽기 토큰 캐시 히트와 쓰기가 별도로 표시되므로 추측할 필요가 없어요

캐시가 적용된 요청은 「정보」 열에 히트와 쓰기 수치가 함께 표시돼요. 캐시 상세 내역이 없는 행에는 “비스트리밍 첫 바이트: N초 프롬프트/완성 금액”과 같은 조합만 표시돼요. 건당 과금되는 이미지·동영상 모델에도 프롬프트와 완성이 표시되지만, 금액은 토큰 기준으로 계산되지 않으므로 이 글의 계산법을 적용하면 안 돼요.

codex-token-usage-per-turn-apiyi-logs-ko-image-2

확인: 아무 행이나 골라 해당 요청의 입력과 출력, 캐시 히트량, 비용을 설명할 수 있으면 돼요.


4단계: 여러 줄의 로그를 합산해 한 턴의 Codex 토큰 사용량 확인하기

로그 한 줄은 요청 한 번만 보여줘요. 대화 한 턴의 사용량을 확인하려면 여러 요청을 합산해야 해요.

합산 규칙은 같은 토큰, 같은 모델을 기준으로 명령을 내린 후 약 5분 이내에 발생한 요청을 모두 더하는 것이에요. 시간 범위는 실제 사용 상황에 맞게 조정하세요.

  1. 페이지에서 직접 확인: 토큰, 모델, 시간 범위를 필터링한 뒤 각 행의 프롬프트와 완성 항목을 확인해요. 가끔 확인할 때 적합해요.
  2. 내보내서 다시 계산: 목록 오른쪽 위의 「내보내기」를 클릭해 Excel이나 CSV로 내려받은 뒤, 표에서 시간별로 묶어 합산해요.
  3. 로그 조회 API: GET /api/log/self를 호출해요. 인증에는 개인 액세스 토큰을 사용해야 해요. 개인 액세스 토큰은 nap_으로 시작하며, sk_로 시작하는 API 키를 쓰면 401이 반환돼요. 파라미터로 type=2(사용 내역만 조회), token_name, start_timestamp, end_timestamp를 전달하세요. 타임스탬프는 Unix 초 단위예요. 페이지 크기 파라미터는 카멜 케이스인 pageSize로 써야 해요. page_size로 쓰면 오류 없이 무시돼요.
  4. 금액으로 환산: API가 반환한 quota ÷ 500,000 = 달러예요. other 필드는 JSON 문자열이므로 한 번 더 파싱해야 usage 등의 상세 정보를 확인할 수 있어요.

조회 API를 사용할 때는 반드시 시간 범위를 지정하고, 범위는 1일 이내로 설정하는 것이 좋아요. 시간 범위를 지정하지 않으면 전체 이력을 조회하므로, 데이터가 많은 계정에서는 타임아웃 오류가 발생하기 쉬워요. 로그 조회 자체에는 할당량이 소모되지 않아요.

가격으로 Codex 한 턴의 비용 계산하기

모델 입력 캐시 읽기 출력 컨텍스트 계산 예시: 한 턴 합계
gpt-5.6-sol $4 $0.4 $20 1,000,000 약 $0.214
gpt-5.6-terra $2 $0.2 $12 1,000,000 약 $0.107
gpt-5.6-luna $0.2 $0.02 $1.2 1,000,000 약 $0.011

단가는 모두 100만 토큰 기준이며, 2026-10-28에 확인한 가격이에요. 단일 요청의 입력이 272,000토큰을 초과하면 입력 단가가 두 배로 올라가요.

💰 가격 안내: 모델과 가격은 APIYI / apiyi.com 플랫폼의 모델 목록을 기준으로 해요. 표의 계산 예시는 한 턴의 누적 입력 120,000토큰 중 96,000토큰이 캐시에 적중하고, 출력은 4,000토큰인 경우예요. sol을 예로 들면 캐시 미적중 24,000 × $4 + 캐시 적중 96,000 × $0.4 + 출력 4,000 × $20을 100만으로 나눈 합계가 약 $0.214예요.

이 수치에서 두 가지를 알 수 있어요. 첫째, 캐시에 적중한 96,000토큰의 비용은 약 $0.038에 불과해요. 긴 대화에서는 캐시가 비용 절감의 핵심이에요. 둘째, 같은 턴의 작업을 luna로 바꾸면 비용이 sol의 약 20분의 1이에요. 다만 luna 공식 페이지에는 256K를 넘는 초장문 컨텍스트에서 성능이 다소 떨어진다고 명시되어 있어요.

codex-token-usage-per-turn-apiyi-logs-ko-image-3

확인: “이번 턴의 입력 토큰이 이전 턴보다 얼마나 늘었는지”와 늘어난 토큰 중 캐시에 적중한 양이 얼마인지 계산할 수 있어야 해요.


다섯 번째 단계: Codex 토큰 데이터로 압축과 새 창 중 결정하기

매 턴의 데이터가 있으면 숫자를 기준으로 판단할 수 있어요. 다음 세 가지 신호를 살펴보세요.

  • 입력 증가 속도: 매 턴 추가되는 입력이 점점 많아진다면 도구 출력과 대화 기록이 빠르게 쌓이고 있다는 뜻이에요.
  • 캐시 읽기 비율: 설명 열에서 전체 입력 대비 캐시 읽기 비율이 눈에 띄게 떨어진다면 접두부가 바뀌어 새 입력 대부분에 정상 요금이 적용된다는 뜻이에요.
  • 단일 요청 입력량: 272,000에 가까워지면 다음 요청에서 요금 구간을 넘어가게 돼요.

압축과 새 창 판단표

로그에서 확인한 내용 권장 조치 이유
단일 요청 입력량이 272,000에 가깝고 작업이 아직 끝나지 않음 먼저 수동으로 /compact 실행 요금 구간을 넘어 입력 가격이 두 배가 되는 상황 방지
단일 요청 입력량이 272,000에 가깝고 작업이 일단락됨 새 창 열기 압축보다 새로 시작하는 편이 더 깔끔함
캐시 읽기 비율이 여러 턴 연속 하락 새 창을 열고 새 주제로 시작 캐시가 더 이상 유효하지 않아 대화를 이어가면 대부분 정상 요금이 적용됨
매 턴 입력 증가량이 갑자기 커짐 도구 출력을 확인하고 필요하면 tool_output_token_limit 낮추기 긴 명령어 출력이 대화 기록에 쌓임
입력량이 안정적이고 캐시 읽기 비율이 높음 현재 대화 계속하기 이때 긴 대화의 비용 효율이 가장 좋음
방금 한 번 압축했는데 다시 한도에 가까워짐 새 창 열기 여러 번 압축하면 요약이 점점 부정확해짐

codex-token-usage-per-turn-apiyi-logs-ko-image-4


Codex 컨텍스트 압축 설정 방법

압축은 이전 대화 내용을 간결한 요약으로 대체해 컨텍스트 공간을 확보하는 기능이에요. Codex에서는 수동 압축과 자동 압축을 모두 지원해요.

  1. 수동 압축: 데스크톱과 CLI에서 모두 /compact를 입력하면 돼요.
  2. 자동 압축: model_auto_compact_token_limit으로 압축이 시작되는 임계값을 설정해요. 설정하지 않으면 모델 기본값을 사용해요.
  3. 임계값 계산 범위: model_auto_compact_token_limit_scope에서 total(활성 컨텍스트 전체) 또는 body_after_prefix(기존 접두사 이후에 추가된 부분만)를 선택할 수 있어요.
  4. 서드파티 base_url을 사용할 때: 모델 이름이 Codex 내장 목록에 없다면 model_context_window와 자동 압축 임계값을 직접 설정하는 것이 좋아요. 요금 구간이 바뀌기 전에 압축하려면 임계값을 272,000 미만으로 설정할 수 있어요.
  5. remote_compaction은 신중하게 활성화하세요: v2로 설정하려면 업스트림 서비스가 Responses 측 압축 프로토콜을 지원해야 해요. unsupported를 유지하고 로컬 압축을 사용하는 편이 더 안정적이에요.

압축에 드는 비용

압축에도 비용이 들어요. 기존 대화의 접두사를 다시 작성하므로 캐시가 무효화되고, 압축 후 첫 요청의 입력에는 거의 정상 요금이 적용돼요. 따라서 압축을 마친 뒤에는 이전 작업을 반복하기보다 새 주제를 시작하는 것이 좋아요. 압축 과정에서 세부 정보가 사라질 수도 있으며, 요약에 모든 정보가 보존된다는 보장은 없어요.


자주 묻는 질문 FAQ

Q1: 로그에서 특정 요청이 보이지 않는데, 기록이 누락된 건가요?

로그에는 요금이 청구된 호출만 기록돼요. 네트워크, 인증, 파라미터 검증 등의 단계에서 실패한 요청은 업스트림에 도달하지 않으므로 요금이 청구되지 않고 로그에도 나타나지 않아요. 반대로 로그에 기록이 있다면 실제로 사용량이 발생한 거예요. 토큰 필터와 시간 범위를 올바르게 선택했는지도 확인해 보세요.

Q2: 토큰 수로 예상한 금액보다 실제 금액이 낮은 이유는 무엇인가요?

가장 흔한 이유는 캐시예요. OpenAI 채널은 자동 프리픽스 캐시를 사용해요. 프리픽스가 1,024토큰 이상이고 내용이 일정하게 유지되면 캐시가 적중하며, 해당 부분은 입력 요금의 10%로 청구돼요. APIYI / apiyi.com 로그의 설명 열에서 캐시에서 읽은 토큰 수를 확인할 수 있어요. 또한 로그에는 할인 전 금액이 표시되므로 실제 비용은 대략 로그 금액 ÷ (1 + 추가 지급 비율)로 계산해요.

Q3: 로그 시간이 실제 작업 시간과 맞지 않아요.

로그는 기본적으로 UTC+0 기준으로 표시돼요. 베이징 시간은 UTC+8이므로 8시간 차이가 나요. 베이징 시간 기준으로 ‘오후 3시에 실행한 작업’을 검색하면 일부 데이터가 빠진 것처럼 보일 수 있어요. 검색하기 전에 시간을 변환하면 돼요.

Q4: 로그는 얼마나 오래 보관되나요?

‘최근 약 30일 동안 조회 가능’을 기준으로 계획하는 것이 좋아요. 실제 보관 기간은 더 길 수 있지만 플랫폼에서 이를 보장하지 않으며, 삭제 정책도 바뀔 수 있어요. 장기 정산이 필요하다면 「내보내기」 또는 로그 조회 API를 이용해 정기적으로 직접 보관하세요.

Q5: 로그에서 Codex가 읽은 파일이나 전송한 내용을 확인할 수 있나요?

확인할 수 없어요. 로그에는 토큰 수, 금액, 배율 등 요금 청구에 필요한 기본 정보만 보관되며, 입력과 출력 내용은 기록되지 않아요. 특정 작업에서 무엇을 했는지 알아보려면 Codex 대화 내용을 직접 확인해야 해요.

Q6: 각 작업의 사용량을 자동으로 기록하는 더 간편한 방법이 있나요?

스크립트로 실행한다면 `codex exec –json`을 사용해 `turn.completed` 이벤트의 usage를 읽을 수 있어요. 대화형으로 사용할 때는 로그 조회 API를 통해 전용 토큰과 시간 범위를 기준으로 데이터를 정기적으로 가져와 집계할 수 있어요. 신규 사용자는 APIYI / apiyi.com에서 무료 테스트 크레딧을 받아 전체 과정을 먼저 확인해 볼 수 있어요.


Codex 대화 턴당 토큰 사용량 핵심 요약

  • 확인 기능은 그대로 있어요: 컨텍스트 사용량은 /status에서 확인할 수 있어요. CLI에서는 /statusline으로 하단에 표시할 수도 있어요.
  • 요청 ≠ 대화 턴: 한 턴에는 여러 도구 호출이 포함되고, 로그에는 여러 행으로 기록돼요. 시간 범위를 기준으로 합산해야 해요.
  • 전용 API 키 사용: Codex 전용 키를 만들어야 로그를 깔끔하게 필터링할 수 있어요.
  • 설명 열 확인: 캐시 읽기와 쓰기는 별도로 표시되며, 캐시가 적중한 부분에는 10% 요금이 적용돼요.
  • 272K 요금 구간: 단일 요청의 입력이 272,000토큰을 넘으면 입력 요금이 두 배가 돼요.
  • 압축에도 비용이 들어요: 압축 후에는 캐시가 무효화되어 해당 요청의 입력에 거의 정가가 적용돼요. 압축 후에는 새 주제로 넘어가는 것이 좋아요.

정리

Codex에서 컨텍스트 사용량이 보이지 않는 건 기능이 삭제돼서가 아니라 확인하는 위치가 바뀌었기 때문이에요. /status에서는 남은 컨텍스트를, 호출 로그에서는 턴당 비용을 확인할 수 있어요. 둘을 함께 보면 새 창을 열지 숫자를 기준으로 판단할 수 있어요.

지금 바로 확인해 보세요. Codex 전용 API 키를 만든 다음, APIYI / apiyi.com의 로그 페이지에서 최근 대화 턴을 골라 관련 요청 몇 줄의 비용을 합산해 보세요.


📚 참고 자료

  1. OpenAI Codex 공식 저장소: CLI 소스 코드와 이벤트 정의
  2. 링크: github.com/openai/codex
  3. 설명: codex-rs/exec/src/exec_events.rs에 turn.completed의 usage 필드가 정의되어 있어요.

  4. Codex 공식 문서: 슬래시 명령어와 설정 참고 자료

  5. 링크: developers.openai.com/codex
  6. 설명: /status, /compact, /statusline 및 압축 관련 설정 항목을 확인할 수 있어요.

  7. APIYI 도움말 문서: 호출 로그, 캐시 요금, 로그 조회 API

  8. 링크: docs.apiyi.com
  9. 설명: 로그 필드 기준, 캐시 요금 90% 할인 규칙, quota 환산 방법을 확인할 수 있어요.

작성자: APIYI 기술팀
기술 문의: APIYI 공식 홈페이지에서 문의해 주세요. 자세한 설정 방법은 문서 센터에서 확인할 수 있어요.

관련 글

Similar Posts