> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CometAPI でモデルフォールバックを追加する

> model ID を順番に試し、再試行可能な失敗ではリトライし、リクエスト形式のエラーでは停止することで、CometAPI でモデルフォールバックを追加します。

アプリ内で model ID の小さな順序付きリストを保持し、失敗が再試行可能またはモデル固有の場合にのみ次のモデルを試すことで、モデルフォールバックを追加できます。不正なリクエストは再試行しないでください。別のモデルを呼び出す前に、`400`、`401`、および無効なリクエストエラーを修正してください。

## 順序付きフォールバックを実装する

次の Python の例では、model ID を順番に試し、再試行不可能なエラーで停止します。

```python theme={null}
import os
import time
from openai import OpenAI, APIError, RateLimitError

client = OpenAI(
    api_key=os.environ["COMETAPI_KEY"],
    base_url="https://api.cometapi.com/v1",
)

models = ["your-primary-model-id", "your-fallback-model-id"]

for model in models:
    try:
        completion = client.chat.completions.create(
            model=model,
            messages=[
                {
                    "role": "user",
                    "content": "Summarize CometAPI in one sentence.",
                }
            ],
        )
        print(completion.choices[0].message.content)
        break
    except RateLimitError:
        time.sleep(2)
        continue
    except APIError as error:
        status_code = getattr(error, "status_code", None)
        if status_code in {500, 503, 504, 524}:
            time.sleep(2)
            continue
        raise
else:
    raise RuntimeError("All configured model fallbacks failed.")
```

成功したレスポンスは、最初に完了したモデルから返されます。

```json theme={null}
{
  "model": "your-fallback-model-id",
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "CometAPI gives developers one API surface for multiple model providers."
      }
    }
  ]
}
```

## フォールバックモデルを選ぶ

次のリクエストは、フォールバック候補として評価できる利用可能な model ID を一覧表示します。

```bash theme={null}
curl https://api.cometapi.com/api/models
```

レスポンスにはモデルレコードが含まれます。

```json theme={null}
{
  "success": true,
  "page": 0,
  "page_size": 0,
  "total": 301,
  "data": [
    {
      "id": "deepseek-v4-pro",
      "provider": "DeepSeek",
      "model_type": "text",
      "features": [
        "text-to-text"
      ],
      "pricing": {
        "currency": "USD / M Tokens",
        "input": 0.416,
        "output": 0.832,
        "per_request": null,
        "per_second": null
      },
      "api_doc_url": "https://apidoc.cometapi.com/api/text/chat"
    }
  ]
}
```

## 一般的なエラー

| エラー                        | 修正方法                                         |
| -------------------------- | -------------------------------------------- |
| フォールバックによって無効なリクエストが隠れてしまう | `400`、`401`、または無効なリクエストエラーではフォールバックしないでください。 |
| モデルごとに出力形式が異なる             | ユーザーに返す前に、アプリ内でレスポンスを正規化してください。              |
| フォールバックによってコストが増加する        | フォールバックリストに追加する前に、各モデルのコストを見積もってください。        |
| 並列フォールバックが多すぎる             | プロダクトで並列レースが必要な場合を除き、フォールバックは順番に試してください。     |

## 関連リンク

* [エラーコードとリトライ戦略](/ja/guides/error-codes-and-retry-strategy)
* [レート制限と同時実行](/ja/guides/rate-limits-and-concurrency)
* [Models ページ](/ja/overview/models)
* [モデルディレクトリ](https://www.cometapi.com/models/)
* [料金](https://www.cometapi.com/pricing/)
* [CometAPI クイックスタート](/ja/overview/quick-start)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "TechArticle",
        "@id": "https://apidoc.cometapi.com/guides/model-fallback-with-cometapi",
        "headline": "CometAPI で model fallback を追加するには？",
        "description": "CometAPI で model ID を順番に試し、リトライ可能な失敗を再試行し、リクエスト形状エラーで停止することで model fallback を追加します。",
        "url": "https://apidoc.cometapi.com/guides/model-fallback-with-cometapi",
        "author": {
          "@type": "Organization",
          "name": "CometAPI"
        },
        "publisher": {
          "@type": "Organization",
          "name": "CometAPI",
          "url": "https://www.cometapi.com"
        }
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "CometAPI ドキュメント",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "ガイド",
            "item": "https://apidoc.cometapi.com/guides/use-cometapi-with-openai-sdk"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "CometAPI で model fallback を追加するには？",
            "item": "https://apidoc.cometapi.com/guides/model-fallback-with-cometapi"
          }
        ]
      }
    ]
    }
    `}
</script>
