1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Jupyterノートブックを丸ごとLLMに渡すのをやめたら、トークンが95%以上減った話(Claude Code / Codex CLI / PowerShell)

1
Posted at

はじめに

Kaggleの作業でJupyterノートブックを書きながら、Claude CodeやCodex CLIにレビューや相談をしています。ところが、ノートブックを丸ごとLLMに渡すと1本で約3万トークンになり、何度も相談しているとすぐにコストがかさみました。

この記事では、トークンを節約するためにやった工夫と、Windows PowerShellからCLIを呼ぶときにハマったポイントをまとめます。

1. ノートブックは「コードセルの差分」だけを渡す

.ipynbファイルの中身はJSONで、セルの出力(ログや画像)やメタデータがたくさん入っています。LLMに見てほしいのはほとんどの場合コードだけなので、次のような処理をするスクリプトを作りました。

  • 出力とメタデータを捨てて、コードセルだけを取り出す
  • 前の版との差分だけを出す
  • 300字を超える長い行は「長さ」と「ハッシュ」に置き換える(中身が変わったかどうかだけ分かればいいので)

これで、版の比較が**約1〜1.6kトークン(95%以上減)**に収まりました。

また、ノートブックの中に長いプロンプト文字列があると読みにくいので、それを別の.txtに切り出した「読む用ビュー」を作っています。実行用のノートブックは1つのファイルのまま保ち、LLMやレビューには読む用ビューを渡す、という使い分けです。

2. Claude Code / Codex CLIを別のプログラムからコマンドで呼ぶ

Claude Code

claude -p を使うと、対話画面を開かずに1回だけ質問して答えを受け取れます。

claude -p --max-turns 1 --disallowedTools "Bash,Read,..."

ポイントは、ファイルを読む道具などを禁止して、こちらで用意した要約だけを渡すことです。勝手にリポジトリ中のファイルを読みに行かないので、トークンが安く済みます。

Codex CLI

インストールはnpmで入れました。

npm i -g @openai/codex

ブラウザでのログインが失敗したときは、URLとコードで認証する方法で通りました。

codex login --device-auth

質問は標準入力で渡します。

echo "質問内容" | codex exec --skip-git-repo-check -

3. Windows PowerShellで日本語が文字化けする

PowerShellから日本語のプロンプトをCLIにパイプで渡すと、文字化けしました。次の3つをUTF-8にすると直ります。

[Console]::InputEncoding  = [System.Text.Encoding]::UTF8
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding           = [System.Text.Encoding]::UTF8

また、PowerShellではcmdのような & によるコマンドの連結が使えず、AmpersandNotAllowed というエラーになります。cmdの感覚で書くとハマるので注意です。

まとめ

  • ノートブックを丸ごと渡さず、コードセルの差分だけにすると、トークンが95%以上減った
  • claude -p では道具を禁止して要約だけ渡すと安く済む
  • Codex CLIのログインに失敗したら codex login --device-auth
  • PowerShellで日本語を渡すときは3つのエンコーディングをUTF-8に

同じようにLLMとノートブックを行き来している人の参考になればうれしいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?