「とりあえずリポジトリ全体をAIに貼り付けよう!」と思ったことはありませんか?🤔
実はこれ、かなり危険な操作なんですよね。コンテキストウィンドウの上限を超えると、AIは先頭のファイルを黙って切り捨てて回答します。エラーが出るならまだしも、「一部しか見ていない状態で答えが返ってくる」というのが一番怖いパターンです。
今回は「貼り付ける前にトークン数を計測して、必要なら削ぎ落とす」という実践的なアプローチをご紹介します 💡
そもそもコンテキストウィンドウって何?
イメージとしては「AIが一度に読める原稿用紙の枚数」です。GPT-4oなら128,000トークン、Claude 3.5 Sonnetなら200,000トークンといった上限があります。1トークンはざっくり英語で4文字、日本語だと1〜2文字が目安です。
ソースコードはコメントや変数名など英数字が多いので、日本語テキストよりはトークン消費が少なめです。ただ大規模なリポジトリになると、すぐに数十万トークンを超えることも珍しくありません。
Step 1: APIを使わずにトークン数を推定する
実はネットワーク通信なしでもかなり正確に推定できます。Pythonの tiktoken ライブラリを使えば、OpenAI系モデルのトークン数をローカルで計算可能です 🛠️
# pip install tiktoken
import tiktoken
import os
def estimate_tokens(directory: str, model: str =





