モデル比較

Claude Sonnet 4.6 vs GLM 5.3 Flash

料金・コンテキスト長・実際の回答で比較(2026年8月時点)

Claude Sonnet 4.6(Anthropic)とGLM 5.3 Flash(Z.ai)を、FastMetalのゲートウェイで実際に呼び出せる条件で比較します。どちらも同じOpenAI互換エンドポイントとAPIキーから利用でき、切り替えは model の文字列を変えるだけです。

スペックと料金

anthropic logoClaude Sonnet 4.6z-ai logoGLM 5.3 Flash
提供元AnthropicZ.ai
入力(100万トークンあたり)¥554.4¥13.19
出力(100万トークンあたり)¥2,772¥43.98
想定コスト(入力1,000・出力500トークン × 1,000回)¥1,940¥35
コンテキスト長1,000,000 トークン1,310,720 トークン
リリース日2026/2/172026/8/26
入力モダリティtext, imagetext, image, video
アリーナ 総合#32 · ELO 1,472#38 · ELO 1,469
アリーナ 日本語#41 · ELO 1,438圏外
アリーナ コーディング#14 · ELO 1,528#11 · ELO 1,531

料金はFastMetalの円建て単価(税別)。アリーナ順位は公開リーダーボードの最新取得時点の値です。

どちらを選ぶべきか

  • 料金重視ならGLM 5.3 Flash。出力100万トークンあたり¥43.98で、Claude Sonnet 4.6より98%安くなります。
  • 総合の評価はアリーナ順位でClaude Sonnet 4.6が上です(32位。GLM 5.3 Flashは38位)。
  • コーディングの評価はアリーナ順位でGLM 5.3 Flashが上です(11位。Claude Sonnet 4.6は14位)。
  • 長い文書を扱うならGLM 5.3 Flash。コンテキスト長は1,310,720トークンで、Claude Sonnet 4.6の1,000,000トークンより広くとれます。
  • 迷ったら両方を同じキーで試せます。model の文字列を変えるだけで切り替わり、料金はそれぞれの単価で従量課金されます。

同じプロンプトへの実際の回答

FastMetalのゲートウェイが返した回答をそのまま並べています。ベンチマークの数字ではなく、実際の出力です。

このエラーをデバッグして

以下のエラーがPythonアプリケーションで発生しています。原因を特定して修正してください。 Traceback (most recent call last): File "app.py", line 23, in get_user_orders total = sum(order["price"] * order["quantity"] for order in orders) TypeError: unsupport…

Claude Sonnet 4.6

## エラーの原因 `order["price"]` が **数値型ではなく文字列型(`str`)** として取得されているため、`*` 演算子で整数との掛け算ができずエラーが発生しています。 ### なぜ文字列になるのか? ``` # DBから取得した値のイメージ order["price"] = "1500" # str型 ← 本来は float/int であるべき order["quantity"] = 2 # int型 "1500" * 2 → TypeError! # 文字列 * 整数 = 文字列の繰り返しではなく、エラー ``` **主な原因パターン:** - DBのカラム型が `VARCHAR` や `TEXT` になっている - DBドライバーの設定・バージョンによる型変換の問題 - データ投入時に文字列として保存されてしまっている --- ## 修正方法 ### ✅ 推奨:明示的な型変換で防御的に対処 ```python def get_user_orders(user_id): orders = db.query( "SELECT price, quantity FROM orders WHERE user_id = %s", user_id ) # price を float、quantity を int に明示的に変換 total = sum( float(order["price"]) * int(order["quantity"])…
応答時間 15.8秒出力 992 トークン

GLM 5.3 Flash

## 原因 エラーメッセージ `unsupported operand type(s) for *: 'str' and 'int'` の左側が `order["price"]` なので、**`price` が文字列(str)として取得されている**のが原因です。`quantity` は int なので、数値カラムは正常に取得できています。 考えられる原因は次のとおりです(可能性が高い順): 1. **DBの `price` カラムが VARCHAR / TEXT 型で定義されている**(最も可能性が高い) 2. 使用しているDBドライバやラッパーの設定により、文字列として返されている 3. JSONなど経由でデータを取得していて、priceだけ文字列化されている ### 確認方法 ```python orders = db.query("SELECT price, quantity FROM orders WHERE user_id = %s", user_id) print(type(orders[0]["price"])) # <class 'str'> が出れば確定 print(type(orders[0]["quantity"])) ``` MySQLなら `DESCRIBE orders;` で、PostgreSQLなら `\d orders` でカラム型を確認してください。 ## 修正方法 ### 根本対策: DBスキーマを修正する(推奨) 金額は数値型で持つべきです。既存データに変換できない値(空文字、カンマ付きなど)がないか先に確認してく…
応答時間 45.3秒出力 2329 トークン

コードレビュー

以下のTypeScript関数をレビューして、可読性・パフォーマンス・ベストプラクティスの観点から改善点を提案してください。 async function fetchAllUsers(page: number = 1): Promise<any[]> { let allUsers: any[] = []; let hasMore = true; let currentPage = page; while (hasMo…

Claude Sonnet 4.6

## コードレビュー ### 問題点の概要 | カテゴリ | 問題点 | |---------|--------| | 型安全性 | `any`型の多用 | | エラー処理 | HTTPエラーやネットワーク障害への対応なし | | 可読性 | 冗長なループと変数操作 | | パフォーマンス | ページネーション判定ロジックの脆弱性 | | 保守性 | マジックナンバーのハードコード | --- ### 改善後のコード ```typescript // 型定義を明確に分離 interface ApiUser { id: string; first_name: string; last_name: string; email: string; status: "active" | "inactive" | "deleted"; } interface ApiResponse { users: ApiUser[]; total: number; // APIが返す総件数(利用可能な場合) hasNextPage: boolean; // APIが返す次ページフラグ(利用可能な場合) } interface User { id: string; name: string; email: string; } // 設定値を定数として切り出し(マジックナンバーの排除) const FETCH_CONFIG = { PAGE_SIZE: 100, BASE_URL: "/api/users", } as cons…
応答時間 21.3秒出力 1609 トークン

GLM 5.3 Flash

# コードレビュー 全体的な構造は分かりやすいですが、**型安全性・エラーハンドリング・可読性**に改善の余地がかなりあります。重要度順に挙げます。 --- ## 1. 重大な問題(ベストプラクティス) ### `any[]` による型情報の喪失 戻り値が `any[]` だと、呼び出し側でタイプミスやプロパティ変更がコンパイル時に検出できません。インターフェースを定義すべきです。 ### HTTPエラーの未チェック `fetch` は 404 や 500 でも例外を投げません。`response.ok` を確認しないと、エラーレスポンスの JSON をパースしようとして謎のエラーになります。 ### `data.users` の防御チェックなし APIの仕様変更やエラー時に `data.users` が `undefined` だと、`.length` で即座にクラッシュします。 ### 無限ループのリスク API 側のバグで常に100件返る場合、ループが終わりません。最大ページ数やタイムアウト(AbortSignal)の考慮があると安全です。 --- ## 2. 可読性 | 現状 | 改善案 | |---|---| | `data.users[i].xxx` の繰り返し | `for...of` でオブジェクトを直接受け取る | | `first_name + " " + last_name` | テンプレートリテラル `` `${a} ${b}` `` | | `currentPage = currentPage + 1` | `currentPage…
応答時間 85.2秒出力 3638 トークン

SQLクエリの最適化

以下のSQLクエリは500万行のテーブルに対して実行すると30秒以上かかります。最適化してください。 SELECT p.product_name, c.category_name, COUNT(o.order_id) as order_count, SUM(o.amount) as total_sales, AVG(r.rating) as avg_rating FROM products p LEFT JOIN…

Claude Sonnet 4.6

## 問題点の分析 ### 現状のボトルネック ``` 1. インデックス不足 → フルスキャンが多発 2. LEFT JOINの誤用 → WHERE句で実質INNER JOINになっている 3. サブクエリなしの集計 → 全結合後に集計している 4. GROUP BYの列指定 → 非効率な重複排除 ``` --- ## 最適化ステップ1: インデックスの追加 ```sql -- フィルタ・結合・ソートに使用するインデックス CREATE INDEX idx_products_active_category ON products(is_active, category_id, id); -- WHERE + JOIN CREATE INDEX idx_order_details_product ON order_details(product_id, order_id); -- JOIN CREATE INDEX idx_orders_status_date ON orders(status, created_at, order_id, amount); -- WHERE + 集計(カバリングインデックス) CREATE INDEX idx_reviews_product ON reviews(product_id, rating); -- JOIN + 集計(カバリングインデックス) CREATE INDEX idx_categorie…
応答時間 28.2秒出力 1828 トークン

GLM 5.3 Flash

# ボトルネックの分析 ## 1. 最重要:ファンアウトで集計値が壊れている(性能以前のバグ) `order_details`(注文経由)と `reviews` を**同レベルで** products に LEFT JOIN すると、両者の組み合わせで行が直積的に増殖します。 例:商品Aに注文明細10件・レビュー3件 → 結合後30行 - `SUM(o.amount)` → 注文1件あたりレビュー数(3倍)に水増し - `AVG(r.rating)` → 注文数で重み付けが変わり不正確 - `COUNT(o.order_id)` → 明細行数を数えている **インデックスを追加して速くしても、数値は誤ったまま**なので、まず構造を変える必要があります。 ## 2. WHERE 句が LEFT JOIN を無効化している `o.created_at >= '2024-04-01'` が WHERE 句にあるため、NULL 行が除去され、LEFT JOIN が実質 INNER JOIN になります。「売上0の商品も表示したい」意図ならバグです。 ## 3. インデックス不足 `order_details(product_id)`、`reviews(product_id)` などの結合キーにインデックスがないため、5M行のテーブルに毎回シーケンシャルスキャン+ハッシュ結合が発生します。 --- # 修正版クエリ(先に集計してから結合) ```sql WITH sales AS ( SELECT od.product_id, COUNT(DI…
応答時間 116.2秒出力 5554 トークン

他のプロンプトでも比較する →

よくある質問

Claude Sonnet 4.6とGLM 5.3 Flash、料金はどちらが安いですか?
出力100万トークンあたりClaude Sonnet 4.6は¥2,772、GLM 5.3 Flashは¥43.98で、GLM 5.3 Flashの方が安くなります(FastMetalの円建て単価・税別)。
Claude Sonnet 4.6とGLM 5.3 Flashのコンテキスト長の違いは?
Claude Sonnet 4.6は1,000,000トークン、GLM 5.3 Flashは1,310,720トークンです。
Claude Sonnet 4.6とGLM 5.3 Flash、評価が高いのはどちらですか?
公開アリーナの順位ではGLM 5.3 Flashが上です(Claude Sonnet 4.6 41位、GLM 5.3 Flash 38位)。順位はリーダーボードの更新で変わります。
Claude Sonnet 4.6とGLM 5.3 Flashを同じAPIキーで使えますか?
はい。FastMetalのOpenAI互換エンドポイントで、model に "anthropic-claude-sonnet-4-6" または "glm-5.3-flash" を指定するだけで切り替えられます。料金はそれぞれの単価で、同じ前払い残高から従量課金されます。

どちらも同じAPIキーで試せます

アカウントを作成してクレジットをチャージすれば、Claude Sonnet 4.6とGLM 5.3 FlashをブラウザのチャットとAPIの両方から呼び出せます。月額料金はありません。

Claude Sonnet 4.6の他の比較

GLM 5.3 Flashの他の比較