コストを意識する:トークン数のカウントと予算
tiktokenでトークン数を数え、送信前にコストを見積もり、リクエスト単位および日単位の予算を適用します。
「コストを意識する:トークン数のカウントと予算」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。
トークン数を数えることが重要な理由
料金はトークン単位で発生します。トークン予算のないエージェントループが暴走すると、数分で数百ドルを費やす可能性があります。
トークン数のカウントは、コストを管理するうえで最も重要な習慣です。
トークンとは何か
トークンとは、モデルが処理するテキストの一部分です。英語についての大まかな目安は次のとおりです。
- 1トークン ≈ 4文字
- 1トークン ≈ 0.75語
- 100トークン ≈ 75語
コード、絵文字、英語以外のテキストでは、1文字あたりのトークン数が多くなります。
tiktoken(OpenAI)でトークン数を数える
OpenAIは正確なトークナイザーを提供しています。
# pip install tiktoken
import tiktoken
enc = tiktoken.encoding_for_model('gpt-4o-mini')
tokens = enc.encode('Hello, world!')
print(len(tokens)) # 4
print(tokens) # [9906, 11, 1917, 0]メッセージのトークン数を数える
完全な数には、メッセージ構造のオーバーヘッドも含まれます。
def count_message_tokens(messages, model='gpt-4o-mini'):
enc = tiktoken.encoding_for_model(model)
total = 0
for m in messages:
total += 4 # role + structural
total += len(enc.encode(m['content']))
return total + 2 # primingAnthropicでトークン数を数える
Anthropicは、サーバー側でカウントするエンドポイントを提供しています。
count = client.messages.count_tokens(
model='claude-sonnet-4-5',
system='You are helpful.',
messages=[{'role': 'user', 'content': 'Hello'}],
)
print(count.input_tokens)送信前にコストを見積もる
トークン数にトークン単価(プロバイダーの料金ページに記載)を掛けます。
INPUT_PRICE = 0.150 / 1_000_000 # gpt-4o-mini: $0.15 / 1M input tokens
OUTPUT_PRICE = 0.600 / 1_000_000
input_tokens = count_message_tokens(messages)
est_input_cost = input_tokens * INPUT_PRICE
print(f'Estimated input cost: ${est_input_cost:.6f}')実際のコストを追跡する
各呼び出しの後に、使用量を合計します。
total_cost = 0
response = client.chat.completions.create(...)
cost = (
response.usage.prompt_tokens * INPUT_PRICE +
response.usage.completion_tokens * OUTPUT_PRICE
)
total_cost += cost実行単位の予算
エージェントの1回の実行に上限を設定します。
MAX_COST_PER_RUN = 0.50 # USD
if total_cost > MAX_COST_PER_RUN:
raise BudgetExceeded(f'Cost {total_cost} exceeds limit')ユーザー単位の日次予算
Redisでユーザーごとのコストを追跡し、毎日リセットします。
key = f'cost:{user_id}:{today_date}'
current = float(redis.get(key) or 0)
if current + cost > 5.0:
raise QuotaExceeded()
redis.incrbyfloat(key, cost)
redis.expireat(key, midnight_tomorrow_ts)呼び出しごとのmax_tokens上限
意図せずコストが膨らむ最大の原因は、50,000トークンの応答を生成してしまうことです。上限を設定してください。
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
max_tokens=2048, # never more than 2k output
)エージェントのステップ上限
トークン上限に加えて、ステップ上限(最大反復回数)も設定します。
MAX_STEPS = 20
for step in range(MAX_STEPS):
response = run_step(...)
if response.is_final():
break
else:
raise StepLimitExceeded()出力トークン上限
max_tokensを明示的に設定するのはなぜでしょうか。
まとめ
トークン数のカウント、呼び出しごとのmax_tokens、実行単位の予算、ユーザー単位のクォータ、ステップ上限です。安全な本番運用のために、この5つをすべて組み合わせてください。
AI チューターと学ぶ AI Agents — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 60
- レッスン
- 239
よくある質問
「コストを意識する:トークン数のカウントと予算」レッスンは無料ですか?
はい。「コストを意識する:トークン数のカウントと予算」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。
「コストを意識する:トークン数のカウントと予算」で何を学びますか?
tiktokenでトークン数を数え、送信前にコストを見積もり、リクエスト単位および日単位の予算を適用します。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Agentsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「コストを意識する:トークン数のカウントと予算」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Agentsレッスンでコードを書いて実行できますか?
はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- OpenAI APIの呼び出し:chat.completions
- Anthropic APIの呼び出し:messages
- レスポンスのストリーミング(SSE)
- コストを意識する:トークン数のカウントと予算