モデル比較

Claude Fable 5.1 vs Claude Sonnet 4.6

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

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

スペックと料金

anthropic logoClaude Fable 5.1anthropic logoClaude Sonnet 4.6
提供元AnthropicAnthropic
入力(100万トークンあたり)¥1,787¥554.4
出力(100万トークンあたり)¥8,935¥2,772
想定コスト(入力1,000・出力500トークン × 1,000回)¥6,255¥1,940
コンテキスト長1,000,000 トークン1,000,000 トークン
リリース日2026/9/12026/2/17
入力モダリティtext, image, filetext, image
アリーナ 総合#3 · ELO 1,504#35 · ELO 1,472
アリーナ 日本語圏外#42 · ELO 1,439
アリーナ コーディング#34 · ELO 1,517#15 · ELO 1,528

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

どちらを選ぶべきか

  • 料金重視ならClaude Sonnet 4.6。出力100万トークンあたり¥2,772で、Claude Fable 5.1より69%安くなります。
  • 総合の評価はアリーナ順位でClaude Fable 5.1が上です(3位。Claude Sonnet 4.6は35位)。
  • コーディングの評価はアリーナ順位でClaude Sonnet 4.6が上です(15位。Claude Fable 5.1は34位)。
  • 迷ったら両方を同じキーで試せます。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 Fable 5.1

## 原因 エラーメッセージ `unsupported operand type(s) for *: 'str' and 'int'` は、`order["price"]` が **文字列(str)** として返ってきていることを示しています。`quantity` は int なので、`"1200" * 3` のような演算になり失敗しています。 `price` が文字列になる典型的な原因は次のいずれかです。 1. **DBのカラム型が `VARCHAR`/`TEXT` になっている**(本来は `DECIMAL` や `INTEGER` にすべき) 2. **DBドライバやラッパー(`db.query`)が値を文字列で返している**(例:SQLite で型宣言が曖昧、あるいは独自ラッパーが全部文字列化している) 3. データ投入時に文字列として `INSERT` された行が混在している ## 修正方法 ### 根本対策(推奨):DBスキーマを直す 金額を文字列で保存しているのが問題なら、カラム型を数値型に変更します。 ```sql -- MySQL / PostgreSQL の例 ALTER TABLE orders MODIFY price DECIMAL(10, 2) NOT NULL; -- MySQL ALTER TABLE orders ALTER COLUMN price TYPE DECIMAL(10, 2) USING price::DECIMAL; -- PostgreSQL ``` 金額計算には浮動小数点誤差を避けるため `DEC…
応答時間 21.8秒出力 1362 トークン

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 トークン

コードレビュー

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

Claude Fable 5.1

以下、観点ごとに指摘と改善案をまとめます。 ## 1. 型安全性(最優先) `any[]` だと戻り値の構造がまったく保証されず、呼び出し側でも補完・型チェックが働きません。API のレスポンス型と返却する型を分けて定義しましょう。 ```ts interface ApiUser { id: string; first_name: string; last_name: string; email: string; status: "active" | "inactive" | "deleted"; } interface ApiUsersResponse { users: ApiUser[]; // total や has_more が返るならここに追加 } export interface User { id: string; name: string; email: string; } ``` ## 2. エラーハンドリングの欠如 - `response.ok` を確認していないため、404/500 でも `.json()` を試みてしまい、意図しない例外や `data.users` が `undefined` で `TypeError` になります。 - ネットワークエラー時の挙動が未定義です。 - API 側の不具合でずっと 100 件返し続けると無限ループになります(安全弁がない)。 ## 3. 可読性 - インデックス付き `for` + `data.users[i]` の繰り返しは冗長。`filter` /…
応答時間 42.1秒出力 2619 トークン

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 トークン

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 Fable 5.1

## 問題点の整理 このクエリは「遅い」だけでなく**結果も正しくない**可能性が高いです。まずそこから整理します。 ### 1. 【最重要】JOIN のファンアウトで集計値が壊れている `order_details` と `reviews` を同じ商品に対して同時に JOIN しているため、行数が「注文明細数 × レビュー数」に膨張します。 - 注文10件・レビュー5件の商品 → 50行になり、`COUNT`/`SUM` は **5倍**に、`AVG(rating)` は注文数で重み付けされた値になる - パフォーマンス悪化の主因でもあり(中間結果が数億行になり得る)、正しさの面でも致命的です ### 2. LEFT JOIN が実質 INNER JOIN になっている `WHERE o.created_at >= '2024-04-01'` があるため、注文のない商品は NULL 判定で落ちます。`LEFT JOIN` にする意味がなく、オプティマイザの選択肢を狭めるだけです。`NULLS LAST` も意味を持ちません。 ### 3. インデックス不足 - `order_details(product_id)` / `order_details(order_id)` がない → 500万行の全件スキャン+Hash Join - `orders(status, created_at)` がない → 絞り込みに使えない - `reviews(product_id)` がない ### 4. GROUP BY が文字列カラム `product_name`, `cate…
応答時間 48.9秒出力 3436 トークン

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 トークン

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

よくある質問

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

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

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

Claude Fable 5.1の他の比較

Claude Sonnet 4.6の他の比較