groq.NotFoundError の修正方法:404 Model Not Found エラーの解決策

beginner🧠 AI Tools2026-05-17| Python 3.8以上, Groq Python SDK, 各種OS (Linux, macOS, Windows)

Error Message

groq.NotFoundError: Error code: 404 - {'error': {'message': "The model '...' does not exist", 'type': 'invalid_request_error', 'code': 'model_not_found'}}
#groq#llm#api-error#python#llama3

TL;DR: クイック修正

このエラーは、Groq APIがmodelパラメータに渡された文字列を認識できない場合に発生します。通常は単なるタイポ(入力ミス)か、llama-3.1-8b-instantのような完全なIDではなくllama3のような短縮名を使用していることが原因です。

すぐに修正するには、コード内のモデルIDをレジストリにある有効なものに更新してください:

# これを:
completion = client.chat.completions.create(model="llama3", ...)

# こちらに変更(現在の Llama 3.1 ID):
completion = client.chat.completions.create(model="llama-3.1-8b-instant", ...)

なぜこのエラーが発生するのか?

コンソールに404エラーが表示されていますか?これは、APIがリクエストされた特定のリソースを見つけられないことを意味します。一部のプロバイダーとは異なり、Groqはモデルの正確な文字列を要求します。よくある問題ですが、主な原因は以下の3点です:

  • サフィックス(接尾辞)の欠落: バージョンやコンテキストウィンドウの指定を忘れている(例:mixtral-8x7b-32768ではなくmixtral-8x7bを使用している)。
  • 非推奨モデルの使用: llama-3.13.2シリーズに置き換えられたllama3-8b-8192などの古いモデルを使用しようとしている。
  • 隠れた文字: .envファイル内の余計なスペースや改行文字がリクエストを破損させている。

ステップバイステップの修正手順

1. SDK経由でアクティブなモデル一覧を取得する

モデル名を推測するのはやめましょう。Groqから直接アクティブなモデルの最新リストを取得できます。これが、お使いのリージョンで現在サポートされているものを確認する最も確実な方法です。

from groq import Groq
import os

client = Groq(api_key=os.environ.get("GROQ_API_KEY"))

# 利用可能なすべてのモデルを取得
models = client.models.list()

print("現在の有効なモデルID一覧:")
for model in models.data:
    print(f"- {model.id}")

このスクリプトを実行し、正確な文字列をコピーしてください。リストにllama-3.2-3b-previewがあれば、そのテキストをそのまま使用します。

2. 更新されたモデルIDを使用する

Groqがインフラを更新するにつれて、モデル名も変更されます。2024年後半に使用されている以下の一般的なパターンと設定が一致しているか確認してください:

  • Llama 3.1 8B: llama-3.1-8b-instant
  • Llama 3.1 70B: llama-3.1-70b-versatile
  • Llama 3.2 1B (Preview): llama-3.2-1b-preview
  • Mixtral 8x7b: mixtral-8x7b-32768

3. 環境変数をクリーニングする

もし.envファイルからモデル名を読み込んでいる場合、末尾にスペースが1つあるだけで404エラーが発生します。クライアントに渡す前に.strip()を使用して入力をサニタイズしましょう。

import os
from groq import Groq

# フォールバック付きで環境変数から取得
RAW_MODEL_NAME = os.getenv("GROQ_MODEL_NAME", "llama-3.1-8b-instant")

# 誤入力を防ぐため空白を削除
CLEAN_MODEL_NAME = RAW_MODEL_NAME.strip()

client = Groq()
# APIコールで CLEAN_MODEL_NAME を使用する

修正の確認

すべてが正常に動作しているか確認するために、以下の最小限のスクリプトを実行してください。レスポンスが表示されれば、モデルの設定は完璧です。

from groq import Groq

client = Groq()

try:
    chat_completion = client.chat.completions.create(
        messages=[{"role": "user", "content": "Test"}],
        model="llama-3.1-8b-instant",
    )
    print("成功!モデルが見つかりました。")
except Exception as e:
    print(f"エラーが継続中: {e}")

本番環境向けのプロのアドバイス

モデルの非推奨化によってアプリが停止しないようにしましょう。モデルIDは複数のファイルにハードコードせず、中央のconfig.pyなどで定義してください。ミッションクリティカルなアプリでは、呼び出しをtry-exceptブロックで囲みます。特にgroq.NotFoundErrorをキャッチすることで、チームに対して明確なアラートをログに記録し、すぐにモデルIDを更新できるようになります。

参考資料

Related Error Notes