0
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?

LLM API を OpenAI SDK で直叩きする:個人開発者の最小構成

0
Posted at

はじめに

ChatGPT PlusやClaude Proを解約し、APIの直叩きに切り替えた個人開発者の体験を共有します。月額固定費を払うよりも、従量課金で月数百円から千円程度に抑えられるケースが多いです。

この記事では、OpenAI SDKとAnthropic SDKの最小構成、業務スクリプトの実例、コスト最適化のコツを紹介します。

なぜ API 直叩きが安いのか

プラン 月額 想定利用量
ChatGPT Plus 20 USD(約 3,000 円) 1 日 3 時間以上
OpenAI API 従量 1 日 30 分以下なら 500〜1,500 円

「ChatGPT は 1 日 30 分しか使わない」という方には、API直叩きの方が圧倒的にお得です。

最小構成:Python + OpenAI SDK

インストール

pip install openai

環境変数

export OPENAI_API_KEY="sk-..."

コード(10 行)

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "user", "content": "Python で VWAP を計算するには?"}
    ],
)

print(response.choices[0].message.content)

これでAPIが動きます。「ChatGPTをPythonから呼ぶ」だけなら10行で済みます。

モデルとコスト

OpenAI

モデル 入力 1M トークン 出力 1M トークン 1 往復目安
gpt-4o 2.5 USD 10 USD 約 4 円
gpt-4o-mini 0.15 USD 0.6 USD 約 0.3 円
o1 15 USD 60 USD 約 27 円

Anthropic

モデル 入力 1M トークン 出力 1M トークン
Claude Opus 4.6 15 USD 75 USD
Claude Sonnet 4.5 3 USD 15 USD
Claude Haiku 4.5 0.8 USD 4 USD

「軽い質問は mini / Haiku、重い思考は 4o / Sonnet、極限の精度は o1 / Opus」という使い分けが基本です。

実例 1:Markdown ファイルの校正バッチ

私が実際に使っているスクリプト:

from openai import OpenAI
from pathlib import Path

client = OpenAI()
SYSTEM = """
あなたは校正者です。以下の Markdown を、AI 感のない自然な日本語に書き換えてください。
- 構成・見出し・リンク・コードブロックは保持
- 「私たち」「皆さん」のような呼びかけは削除
- 同じ語尾を連続させない
- Markdown 全文のみを返す(前置き不要)
"""

def refine(md_path: Path):
    text = md_path.read_text(encoding="utf-8")
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": SYSTEM},
            {"role": "user", "content": text},
        ],
        temperature=0.3,
    )
    revised = response.choices[0].message.content.strip()
    if revised.startswith("```"):
        revised = revised.split("\n", 1)[1].rsplit("```", 1)[0]
    md_path.write_text(revised, encoding="utf-8")

for md in Path("posts").glob("**/*.md"):
    refine(md)

51 記事を 1 回で推敲、コストは約 560 円でした。Plus加入の1ヶ月分より安いです。

実例 2:会話履歴の保存

API直叩きでは「会話の継続」を自前で実装します。

import json
from pathlib import Path
from openai import OpenAI

client = OpenAI()
HISTORY = Path.home() / ".chat_history" / "design.json"
HISTORY.parent.mkdir(parents=True, exist_ok=True)

messages = []
if HISTORY.exists():
    messages = json.loads(HISTORY.read_text(encoding="utf-8"))

prompt = input("> ")
messages.append({"role": "user", "content": prompt})

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
)
reply = response.choices[0].message.content
messages.append({"role": "assistant", "content": reply})
print(reply)

HISTORY.write_text(json.dumps(messages, ensure_ascii=False, indent=2), encoding="utf-8")

これで「複数ラウンドの設計議論」がCLIで可能です。WebのChatGPTを開くより速いです。

実例 3:Anthropic SDK で Claude を呼ぶ

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-5",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "コードレビューの観点を 5 つ"}
    ],
)

print(response.content[0].text)

OpenAI SDKと似たインターフェースで、Claudeが呼べます。OpenAI / Anthropicを切り替えやすいのが利点です。

コスト最適化 7 つのコツ

1. デフォルトを mini に

「軽い質問は gpt-4o-mini」を徹底するだけで、月コストが1/10になります。

2. プロンプトは短く

入力トークンも課金されます。冗長なシステムプロンプトを50%削るだけで、月数百円の節約になります。

3. 結果はキャッシュ

同じ質問を100回投げないように、SQLite / Redisでキャッシュ。

import sqlite3
import hashlib

def cached_call(prompt: str, model: str = "gpt-4o-mini"):
    key = hashlib.sha256(f"{model}:{prompt}".encode()).hexdigest()
    # SQLite から取り出す or 新規呼び出し
    ...

4. ストリーミングで停止可能に

大きなプロンプトは途中で切れるよう、stream=Trueで受け取り、不要になった時点で停止。

5. レートリミットを守る

並列実行で「Too Many Requests」エラーを起こすと、リトライで余計に課金。time.sleeptenacityで制御。

6. ダッシュボードを毎日見る

OpenAI Usage、Anthropic Consoleを毎朝チェック。「予算の80%」アラートを設定。

7. 開発時は Mock を使う

スクリプト開発中はAPIを叩かず、固定文字列を返すMock関数で動かしてから本番で実APIに切り替える。

API 直叩きの落とし穴

1. ChatGPT Plus にしかない機能を失う

  • Web検索(API単体では出来ない、別サービスが必要)
  • 画像生成(DALL-E APIは別料金)
  • Code Interpreter(APIでは再現が難しい)

これらが必要なら、Plus契約も併用が現実的です。

2. UI のない作業はストレス

GUIで素早く対話する作業は、Plus / Claude Pro Webが圧倒的に速いです。スクリプト化できる作業のみ、API直叩きを勧めます。

3. レートリミット

OpenAIはTier 1(月100 USD以下使用)でレートリミットが厳しめ。Tierを上げると上限が緩和されます。

まとめ:API 直叩きが向く人

  • ChatGPTを1日30分以下しか使わない
  • スクリプト化できる定型処理が多い
  • コストを可視化したい
  • Python / Node.jsでコードを書ける

逆に「対話で深掘りしたい」「画像・音声も使う」人は、Plus / Pro契約のほうが結果的に安く済みます。

私が運営しているAI比較メディアでは、API利用の実践記事や、料金比較を公開しています:

参考になれば幸いです。


※ API 料金は 2026-05 時点のものです。OpenAI / Anthropic 公式で最新料金をご確認ください。

0
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
0
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?