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 変換タスクを切り出すところから試してみてほしい。
参考リンク
- OpenRouter — Models
- OpenRouter API Docs
- Qwen3 GitHub — Apache 2.0
- DeepSeek V3 / R1 GitHub — MIT
- Meta Llama 4 Release Blog
- Mistral 7B Instruct v0.3 — Apache 2.0
✍️ 本記事の著者: 合同会社ジモラボ
ジモラボは、八王子を拠点に AI を活用した SaaS を多数開発しています。本記事の技術検証もそうした開発過程の副産物です。
- 🌐 公式サイト: https://locallab.jp
- 🔍 AI SEO 最適化 SaaS: lookupai.jp
- 📺 YouTube: @locallab_llc
- ✉️ お問い合わせ: info@locallab.jp
興味を持っていただけたら、ぜひ各 SNS のフォローもお願いします!