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?

Claude Code × OpenRouter 無料モデル7選:LLMコスト0円でAIコーディングを回す2026年版

0
Posted at

TL;DR

  • OpenRouter の :free モデルは 2026 年時点で 7 本以上が本番運用可能レベルに達している
  • Claude Code のサブエージェント・バックグラウンド処理を :free モデルに振ることで 月の LLM 費用を大幅圧縮できる
  • 各モデルの得意領域(コード補完 / 要約 / 翻訳 / JSON 変換)を分けてルーティングするのがポイント
  • レート制限と遅延の実際を理解した上で使えば、プロダクション用途にも十分耐えうる

背景:なぜ無料モデルを真剣に使うのか

「無料モデルなんて品質が低くて使えない」——2024 年まではその認識が正しかった。しかし 2025 年後半から 2026 年にかけ、Qwen・DeepSeek・Meta・Google・Mistral が次々と 高品質モデルを OpenRouter 経由で無料公開するようになった。

Claude Code や Cursor のような AI コーディングアシスタントを毎日フル回転させると、GPT-4o や Claude Sonnet の API 費用は 月 3 万〜10 万円規模になりうる。このコストのうち「実は高精度モデルを必要としないタスク」が 40〜60% を占めていることに気づくと、無料モデルへのルーティングは真っ当なエンジニアリングコスト最適化になる。


OpenRouter :free モデルとは

OpenRouter は複数の LLM プロバイダーを統一 API で呼び出せるプロキシサービス。モデル ID の末尾に :free を付けると 無料枠(レート制限あり) でアクセスできるモデル群が存在する。

https://openrouter.ai/api/v1/chat/completions
Authorization: Bearer $OPENROUTER_API_KEY

リクエスト本体は OpenAI 互換の messages 形式なので、既存の OpenAI SDK がそのまま使える。

from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="your-openrouter-key",
)

response = client.chat.completions.create(
    model="qwen/qwen3-235b-a22b:free",  # ← :free サフィックス
    messages=[{"role": "user", "content": "Hello"}],
)

2026年版 実用 :free モデル 7 選

1. qwen/qwen3-235b-a22b:free

項目
コンテキスト 32,768 tokens
強み コード生成・日英中の多言語
弱点 レートリミットが比較的厳しい (約 20 req/min)

Qwen3 シリーズの最大モデル。235B MoE(実効 22B アクティブ)で、GPT-4o mini に迫るコード品質。日本語 + コード混在タスクに特に強い。

# Qwen3 向けの典型ユースケース:コードレビューコメントの日本語化
model = "qwen/qwen3-235b-a22b:free"
prompt = f"""
以下のコードレビューコメント(英語)を、日本語の PR コメントとして自然な形に変換してください。
コメント: {english_comment}
"""

2. deepseek/deepseek-chat-v3-0324:free

項目
コンテキスト 64,000 tokens
強み 数学・アルゴリズム・推論
弱点 レスポンス速度がやや遅い(〜8 秒)

DeepSeek V3 の 2024-03-24 リリース版。長いコンテキストウィンドウが強みで、巨大なコードベースの要約・リファクタリング提案に向く。ベンチマーク(HumanEval: 82.6%)は GPT-4o に肉薄する水準。

3. deepseek/deepseek-r1:free

項目
コンテキスト 64,000 tokens
強み 推論・CoT・バグ原因分析
弱点 <think> トークンが出力に混入する場合あり

R1 は「考えてから答える」設計のモデル。内部推論プロセスが <think>...</think> タグで出力される場合があるので、パースロジックで除去する必要がある。

import re

def strip_think_tags(text: str) -> str:
    """DeepSeek R1 の <think> ブロックを除去"""
    return re.sub(r"<think>.*?</think>", "", text, flags=re.DOTALL).strip()

raw = response.choices[0].message.content
clean = strip_think_tags(raw)

バグのスタックトレースを投げて根本原因を推論させる用途に最適。

4. meta-llama/llama-4-maverick:free

項目
コンテキスト 128,000 tokens
強み 長文要約・英語ドキュメント生成
弱点 日本語精度は Qwen3 より劣る

Meta の Llama 4 Maverick。128K コンテキストは :free 勢の中でトップクラス。英語の技術ドキュメント自動生成・CHANGELOG 要約・README ドラフトに向く。

5. google/gemini-2.0-flash-exp:free

項目
コンテキスト 1,048,576 tokens (1M!)
強み 超長文・マルチモーダル
弱点 Experimental 版のため API 安定性は保証外

1M トークンという破格のコンテキスト。巨大なログファイルや全ソースコードを丸ごと渡すような extreme なユースケースに。Experimental タグが付いているため本番の critical パスに置くのは避け、バッチ解析用途が無難。

6. mistralai/mistral-7b-instruct:free

項目
コンテキスト 32,768 tokens
強み 軽量・高速(〜1.5 秒)・JSON 整形
弱点 複雑な推論は苦手

軽量さが最大の強み。JSON スキーマ変換・フォーマット整形・テンプレート穴埋めのような単純・高頻度タスクに最適。レスポンスが速いのでインタラクティブな用途にも向く。

# 典型ユースケース:ログ行を構造化 JSON に変換
prompt = """
以下のログ行を {"level": ..., "timestamp": ..., "message": ...} の JSON に変換してください。
ログ: [2026-05-28 09:12:33] ERROR Database connection timeout after 30s
JSON のみ出力してください。
"""

7. nousresearch/hermes-3-llama-3.1-405b:free

項目
コンテキスト 131,072 tokens
強み Function calling・ツール呼び出し精度
弱点 日本語レスポンスが英語より不安定な場合あり

Nous Research が Llama 3.1 405B をベースにファインチューニングした版。OpenAI 互換の function_tools(ツール定義)精度が高く、エージェント的な使い方に向いている。


モデル選定マトリクス

タスクの種類に応じて以下を参考にルーティングを組む。

タスク種別                 推奨モデル
────────────────────────────────────────────────────────
コードレビュー日本語化      qwen/qwen3-235b-a22b:free
バグ根本原因分析           deepseek/deepseek-r1:free
長文コード要約 (英語)       meta-llama/llama-4-maverick:free
JSON / フォーマット変換     mistralai/mistral-7b-instruct:free
全ログ解析 (>100K tokens)  google/gemini-2.0-flash-exp:free
アルゴリズム設計相談        deepseek/deepseek-chat-v3-0324:free
Function calling エージェント nousresearch/hermes-3-llama-3.1-405b:free

Claude Code と組み合わせる実装パターン

Claude Code はデフォルトで Claude Sonnet / Haiku を使うが、サブプロセス・バックグラウンドタスクとして OpenRouter へ投げる Python スクリプトを差し込むことでコストを下げられる。

パターン A: コストの低いタスクを :free にリダイレクト

# task_router.py
EXPENSIVE_TASKS = {"code_generation", "architecture_review"}
FREE_TASKS = {"log_summary", "i18n_translation", "json_format", "changelog_draft"}

def get_model(task_type: str) -> str:
    if task_type in FREE_TASKS:
        # コストゼロ
        return _pick_free_model(task_type)
    else:
        # 高精度が必要なタスクは有料モデルへ
        return "anthropic/claude-3-5-sonnet"

def _pick_free_model(task_type: str) -> str:
    routing = {
        "log_summary": "meta-llama/llama-4-maverick:free",
        "i18n_translation": "qwen/qwen3-235b-a22b:free",
        "json_format": "mistralai/mistral-7b-instruct:free",
        "changelog_draft": "deepseek/deepseek-chat-v3-0324:free",
    }
    return routing.get(task_type, "qwen/qwen3-235b-a22b:free")

パターン B: Fallback チェーン(レートリミット対策)

:free モデルはレートリミットに引っかかることがある。429 が返ったら次のモデルへフォールバックする仕組みを入れておくと信頼性が上がる。

import time
from openai import RateLimitError

FREE_MODEL_CHAIN = [
    "qwen/qwen3-235b-a22b:free",
    "deepseek/deepseek-chat-v3-0324:free",
    "meta-llama/llama-4-maverick:free",
]

def call_with_fallback(messages: list, task_type: str) -> str:
    for model in FREE_MODEL_CHAIN:
        try:
            resp = client.chat.completions.create(
                model=model,
                messages=messages,
                timeout=30,
            )
            return resp.choices[0].message.content
        except RateLimitError:
            print(f"[WARN] {model} rate limited, trying next...")
            time.sleep(1)
    # 全モデルがレートリミットに達した場合のみ有料モデルへ
    resp = client.chat.completions.create(
        model="anthropic/claude-3-5-haiku",  # haiku は比較的安価
        messages=messages,
    )
    return resp.choices[0].message.content

パターン C: 非同期バッチ処理で throughput を稼ぐ

:free モデルはリクエスト単体の速度より 並列度で稼ぐのが定石。asyncio で並列投げすることでウォール時間を圧縮できる。

import asyncio
from openai import AsyncOpenAI

async_client = AsyncOpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="your-key",
)

async def process_batch(prompts: list[str], model: str) -> list[str]:
    tasks = [
        async_client.chat.completions.create(
            model=model,
            messages=[{"role": "user", "content": p}],
        )
        for p in prompts
    ]
    results = await asyncio.gather(*tasks, return_exceptions=True)
    outputs = []
    for r in results:
        if isinstance(r, Exception):
            outputs.append("")  # エラー分は空文字でスキップ
        else:
            outputs.append(r.choices[0].message.content)
    return outputs

# 使い方
prompts = ["ログ要約: ...", "ログ要約: ...", ...]  # 例: 50件
results = asyncio.run(
    process_batch(prompts, "meta-llama/llama-4-maverick:free")
)

レートリミット・遅延の現実値(2026年5月時点の体感)

モデル 体感レスポンス req/min 目安 安定性
qwen3-235b-a22b:free 4〜10 秒 ~20 ★★★★☆
deepseek-chat-v3:free 5〜12 秒 ~15 ★★★★☆
deepseek-r1:free 8〜20 秒 ~10 ★★★☆☆
llama-4-maverick:free 3〜8 秒 ~25 ★★★★☆
gemini-2.0-flash-exp:free 2〜6 秒 ~30 ★★★☆☆ (Exp)
mistral-7b-instruct:free 1〜3 秒 ~40 ★★★★★
hermes-3-405b:free 6〜15 秒 ~10 ★★★☆☆

※ 体感値であり、時間帯・負荷状況により大きく変動します。プロダクション使用時は必ず自前でベンチマークを取ること。


コスト試算:月 10,000 回の LLM 呼び出しを最適化すると

仮定:

  • 月 10,000 リクエスト
  • タスク内訳: 40% が JSON 整形・要約・翻訳(→ :free で代替可能)、60% がコード生成・設計相談(→ 有料モデル必須)
シナリオ 月コスト試算
全て Claude Sonnet ($3/M tokens, 平均 1K tokens/req) 約 ¥4,500
:free に 40% を移行 約 ¥2,700 (▲40%)
:free に 60% を移行(低精度タスクを拡大) 約 ¥1,800 (▲60%)

小規模開発でも月数千円〜数万円のインパクトがあり得る。スケールすれば効果は線形で大きくなる。


注意点・落とし穴

1. :free は SLA なし

OpenRouter の :free エンドポイントにはアップタイム保証がない。本番のユーザー向けクリティカルパスには絶対に置かない。バックグラウンド処理・バッチ・CI 補助用途限定にすること。

2. プロンプトインジェクション対策は自前

無料モデルはガードレールが有料版より緩い場合がある。外部入力をプロンプトに混ぜるときは必ずサニタイズを挟むこと。

def sanitize_input(user_input: str) -> str:
    # 最低限:改行+角括弧を潰してインジェクションを抑制
    return user_input.replace("\n", " ").replace("[", "").replace("]", "")[:2000]

3. ライセンスを確認する

OpenRouter で配信されているモデルにはそれぞれ上流のライセンスがある。商用利用可否を確認すること。

モデル ライセンス
Llama 4 Meta Llama 4 Community License(商用可・規模制限あり)
Qwen3 Apache 2.0(商用可)
DeepSeek V3 / R1 MIT(商用可)
Mistral 7B Instruct Apache 2.0(商用可)
Gemini Flash Exp Google Terms of Service(要確認)

まとめ

  • OpenRouter :free モデルは 2026 年時点で 実用に耐える品質に達している
  • タスクの性質(高精度必須 / 低精度で十分)でルーティングを分けるのが最重要設計決定
  • Fallback チェーン + 非同期バッチで信頼性とスループットを確保
  • SLA なし・ライセンス確認・インジェクション対策の 3 点を守れば本番周辺で活用可能
  • 月の LLM コストを 40〜60% 削減できるポテンシャルがある

AI 開発の費用対効果を上げる最初の一手として、まず mistral-7b-instruct:free で JSON 変換タスクを切り出すところから試してみてほしい。


参考リンク


✍️ 本記事の著者: 合同会社ジモラボ

ジモラボは、八王子を拠点に AI を活用した SaaS を多数開発しています。本記事の技術検証もそうした開発過程の副産物です。

興味を持っていただけたら、ぜひ各 SNS のフォローもお願いします!

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?