モデル比較

gpt-oss-20b vs Kimi K3

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

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

スペックと料金

openai logogpt-oss-20bmoonshotai logoKimi K3
提供元OpenAIMoonshot
入力(100万トークンあたり)¥5.04¥504
出力(100万トークンあたり)¥23.52¥2,520
想定コスト(入力1,000・出力500トークン × 1,000回)¥17¥1,764
コンテキスト長131,072 トークン1,048,576 トークン
リリース日2025/8/52026/7/16
入力モダリティtexttext, image
生成速度 (p50)114 トークン/秒 (n=19)—
アリーナ 総合#270 · ELO 1,317#19 · ELO 1,488
アリーナ 日本語#200 · ELO 1,255#6 · ELO 1,509
アリーナ コーディング#252 · ELO 1,368#13 · ELO 1,540

料金はFastMetalの単価(税別)です。

順位データ: LMArena leaderboard dataset(lmarena-ai/leaderboard-dataset、CC BY 4.0、2026-10-28時点)。カテゴリ名の対応付けとスコアの丸めはFastMetalによる。

どちらを選ぶべきか

  • 料金重視ならgpt-oss-20b。出力100万トークンあたり¥23.52で、Kimi K3より99%安くなります。
  • 総合の評価はアリーナ順位でKimi K3が上です(19位。gpt-oss-20bは270位)。
  • 日本語の評価はアリーナ順位でKimi K3が上です(6位。gpt-oss-20bは200位)。
  • コーディングの評価はアリーナ順位でKimi K3が上です(13位。gpt-oss-20bは252位)。
  • 長い文書を扱うならKimi K3。コンテキスト長は1,048,576トークンで、gpt-oss-20bの131,072トークンより広くとれます。
  • 迷ったら両方を同じキーで試せます。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…

gpt-oss-20b

## 1. エラーの原因 ```python TypeError: unsupported operand type(s) for *: 'str' and 'int' ``` - `order["price"]` が **文字列 (`str`)** である - `order["quantity"]` が **整数 (`int`)** である - `str * int` は演算できないため例外が発生 ### 何で `price` が文字列になるのか? | DB | 典型的な戻り値の型 | 文字列になるケース | |-----|------------------|---------------------| | PostgreSQL(psycopg2) | `Decimal` | なし(数値型は `Decimal`) | | MySQL(mysql‑connector / pymysql) | `Decimal` または `str` | `use_unicode=True` や `cursorclass=` が設定されていると文字列になる | | SQLite(sqlite3) | `int`/`float` | なし | したがって、今回使われている `db.query()` では価格列が **文字列として返されている** ことが原因です。 --- ## 2. 修正方法 ### ① 数値型へキャストして足し算 ```python def get_user_orders(user_id): # ① クエリ実行 orders = db.quer…
応答時間 10.0秒出力 1365 トークン

Kimi K3

## 原因 エラーメッセージが示す通り、`order["price"]` が **文字列(str)** になっているのが原因です。数値同士の演算を期待しているのに、DBから取得した `price` が文字列として返されているため、乗算に失敗しています。 よくある原因は以下のいずれかです: 1. **DBのカラム定義が文字列型** — `price` カラムが `DECIMAL`/`NUMERIC` ではなく `VARCHAR`/`TEXT` で定義されている 2. **DBドライバの仕様** — 一部のドライバや設定では、数値カラムでも文字列として返すことがある 3. **データ投入時の問題** — 数値カラムでも文字列として insert され、暗黙変換されている まず以下で型を確認すると原因を特定しやすいです: ```python print(type(order["price"]), order["price"]) ``` ## 修正方法 ### 応急処置(アプリケーション側で型変換) ```python from decimal import Decimal def get_user_orders(user_id): orders = db.query("SELECT price, quantity FROM orders WHERE user_id = %s", user_id) total = sum(Decimal(order["price"]) * int(order["quantity"]) for order in orde…
応答時間 47.1秒出力 2426 トークン

コードレビュー

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

gpt-oss-20b

## ① ざっくりした実装概要 ```ts async function fetchAllUsers(page: number = 1): Promise<any[]> { /* … */ } ``` - 1ページにつき最大100件取得し、`status !== "deleted"` のレコードだけを `id / name / email` らしき構造体に整形。 - **ページングを手動**で止めるために while‑loop で繰り返し呼び出す → 連続で **1 つずつ直列**に `fetch` している。 - `any` をそのまま返している。 - エラー処理・型定義・可読性・パフォーマンスに関しては改善余地が多々ある。 --- ## ② 可読性(コードの見やすさ・保守性)を向上させる | 現状 | 改善案 | 具体例 | |------|--------|--------| | ① `any` を使っている | 型を定義し、返却型を `User[]` に | ```ts interface User { id: number; name: string; email: string; } ``` | | ② ループの内部でインデックスを使う | `for...of` + デストラクチャリング | ```ts for (const u of data.users) { … } ``` | | ③ `if (data.users.length < 100)` で終了判定 | `data.users.splice` で終端を判断 | –(設計…
応答時間 62.4秒出力 3181 トークン

Kimi K3

# コードレビュー: `fetchAllUsers` 全体的に動作はしますが、型安全性・エラーハンドリング・堅牢性に改善余地があります。指摘事項を整理します。 ## 主な問題点 ### 1. 型安全性の欠如(ベストプラクティス) - 戻り値が `Promise<any[]>` で、型の恩恵が得られていない - `response.json()` の結果が暗黙の `any` になり、プロパティの typo などを検出できない ### 2. エラーハンドリングがない(ベストプラクティス) - `response.ok` のチェックがなく、404 や 500 でも `json()` を呼んでしまう - ネットワークエラーや JSON パースエラーが考慮されていない - `data.users` が `undefined` の場合、`data.users.length` でランタイムエラーになる ### 3. 無限ループのリスク(堅牢性) - API のバグなどで常に 100 件返ってくる場合、ループが終わらない - 最大ページ数などの安全弁がない ### 4. 可読性 - インデックスベースの `for` ループで `data.users[i]` が繰り返され、冗長 - マジックナンバー `100` が URL と終了条件の2箇所に分散(変更時に片方だけ直し忘れるリスク) - `let user` は再代入されないので `const` にすべき - 文字列連結はテンプレートリテラルの方が現代的 ### 5. パフォーマンス・設計 - `deleted` ユーザーのフィル…
応答時間 23.1秒出力 3134 トークン

ビジネスメール作成

取引先の田中部長に、納品予定の製品に不具合が見つかり、納期を1週間延期する必要がある旨を伝えるビジネスメールを作成してください。 条件: - 原因は品質検査で軽微な不具合が発見されたため - 代替案として暫定版を先に納品することも可能 - 改めてお詫びの訪問をしたい - 日本のビジネスマナーに沿った丁寧な文面にすること

gpt-oss-20b

件名:納品予定製品の不具合についてと納期変更のお願い 田中○○部長 様 拝啓 いつも大変お世話になっております。 株式会社〇〇 製造部の△△でございます。 この度、貴社へ納品予定の本製品に関し、**品質検査で軽微な不具合**が発見されたため、**納期を1週間延期**させていただく必要がございます。ご迷惑とご不便をお掛けしてしまい、誠に申し訳ございません。 【遅延予定日】 - 元の予定納期:○月○日 - 延期後納期:○月○日(1週間遅延) ご希望により、**暫定版**を先に納品させていただくことも可能でございます。暫定版ならば本製品の機能を事前にご確認いただけますが、後日正式版を改めてお届けいたします。ご検討いただければ幸いです。 さらに、本件につきましては**改めてお詫びの訪問をさせていただきたく存じます**。ご多用のところ恐縮ですが、訪問日程についてご都合の良い日時をお知らせいただけますでしょうか。 お手数をおかけいたしますが、何卒ご理解とご協力を賜りますようお願い申し上げます。 ご質問やご要望がございましたら、どうぞお気軽にご連絡ください。 敬具 株式会社〇〇 製造部 △△(氏名) TEL:03‑1234‑5678 E‑mail:xxx@xxxx.co.jp
応答時間 4.8秒出力 534 トークン

Kimi K3

# 納期延期のお詫びメール --- **件名:【お詫び】○○製品 納期延期のご連絡** --- 株式会社○○ ○○部 田中 部長 いつも大変お世話になっております。 株式会社△△の○○でございます。 このたびは、○月○日に納品を予定しておりました「○○(製品名)」につきまして、納期の延期をお願いしなければならない事態となり、深くお詫び申し上げます。 経緯をご説明いたしますと、出荷前の品質検査におきまして、製品の一部に軽微な不具合が発見されました。貴社に安心してご使用いただける製品をお届けするため、修正作業を行う必要があると判断いたした次第です。 つきましては、誠に勝手ながら、納期を下記のとおり変更させていただきたく存じます。 **【変更前】○月○日(○曜日)** **【変更後】○月○日(○曜日)※1週間延期** なお、暫定版とはなりますが、現行の製品を当初の予定どおり先行して納品させていただくことも可能でございます。ご希望がございましたら、遠慮なくお申し付けくださいませ。 また、本件につきましては、改めて直接お詫びに伺いたく存じます。田中様のご都合のよろしい日時をご教示いただけますと幸いです。 貴社には多大なご迷惑をおかけいたしますことを、重ねて深くお詫び申し上げます。今後このようなことがないよう、品質管理体制の一層の強化に努めてまいる所存です。 何卒ご理解賜りますよう、よろしくお願い申し上げます。 --- ━━━━━━━━━━━━━━━━━━━━ 株式会社△△ ○○部 ○○ ○○(氏名) TEL:XXX-XXXX-XXXX Email:xxxx@…
応答時間 17.9秒出力 1916 トークン

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

よくある質問

gpt-oss-20bとKimi K3、料金はどちらが安いですか?
出力100万トークンあたりgpt-oss-20bは¥23.52、Kimi K3は¥2,520で、gpt-oss-20bの方が安くなります(FastMetalの円建て単価・税別)。
gpt-oss-20bとKimi K3のコンテキスト長の違いは?
gpt-oss-20bは131,072トークン、Kimi K3は1,048,576トークンです。
gpt-oss-20bとKimi K3、評価が高いのはどちらですか?
公開アリーナの順位ではKimi K3が上です(gpt-oss-20b 200位、Kimi K3 6位)。順位はリーダーボードの更新で変わります。
gpt-oss-20bとKimi K3を同じAPIキーで使えますか?
はい。FastMetalのOpenAI互換エンドポイントで、model に "gpt-oss-20b" または "kimi-k3" を指定するだけで切り替えられます。料金はそれぞれの単価で、同じ前払い残高から従量課金されます。

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

アカウントを作成してクレジットを追加すれば、gpt-oss-20bとKimi K3をブラウザのチャットとAPIの両方から呼び出せます。月額料金はありません。

gpt-oss-20bの他の比較

Kimi K3の他の比較