---
title: AI Models
description: 独自のゲートウェイでAIモデルを販売。OpenAI/Anthropic互換プロバイダー追加、モデル同期、価格設定により、顧客は独自キーとウォレットで1つのエンドポイントを呼び出せます。
url: https://nexcmp.com/ja/docs/infrastructure/ai-models/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# AI Models {#ai-models}

> **管理画面の場所:** モジュールを有効にするにはSystem › Admin › License & updates（`/license`）へ移動します。次にServices › AI ModelsのProviders（`/ai/providers`）、Models（`/ai/models`）、Profit（`/ai/profit`）、Audit（`/ai/audit`）を設定します。顧客はカスタマーポータルのAI › APIを使用します。

## 動作内容 {#what-it-does}

AI Modelsは、自社パネル上のゲートウェイおよび請求レイヤーです。顧客はAPIキーを取得し、OpenAI互換またはAnthropic互換フォーマットで**自社ドメイン上の1つのエンドポイント**を呼び出します。提供するモデルと100万トークンあたりの料金（1 million tokens）は自由に設定可能です。NexCMPがキー、制限、ウォレットを確認し、追加済みのプロバイダーへリクエストを転送してトークン数を計測し、顧客のプリペイドウォレットから引き落とします。

**モデルソースはお客様自身で用意します。** NexCMPには、プロバイダー、モデル、デフォルトアドレス、価格は一切含まれていません。モデル、APIキー、トークン、プロバイダーアカウントの提供は行いません。

::: warning モデルソースの利用規約を事前に確認してください
多くのモデルソースでは、再販や第三者へのアクセス提供を制限しています。利用および再販が許可されているソースのみを使用し、各提供元の規約および適用される法令を遵守してください。本ページの内容は法的助言を構成するものではありません。
:::

AI Modelsは**AI Chat and AI Agent**（モジュール**AI**、[AI providers](https://nexcmp.com/ja/docs/ai/ai-providers/)を参照）とは別の機能です。これら2つのモジュールは相互に依存しません。

## 要件 {#requirements}

| 項目 | 要件 |
|---|---|
| モジュール | License & updatesのModulesで**AI Models**が有効になっていること。デフォルトは無効です。 |
| プロバイダー | 再販権限を持つ1つ以上のモデルソース。それぞれOpenAI互換API (`/chat/completions`)、Anthropic互換API (`/messages`)、またはその両方を備えている必要があります。それぞれにベースURLとAPIキーが必要です。 |
| ネットワーク | パネルは各プロバイダーに公開ドメイン名の**ポート443経由のHTTPS**で到達できる必要があります。内部ホスト、別ポート、またはプレーンHTTP上のプロバイダーは、**Allowed internal hosts**（設定`ai_endpoint_allow`）に登録されている必要があります。 |
| 顧客 | 確認済みのメールアドレスとウォレット残高を持つ顧客アカウント。 |
| ハードウェア | 不要。NexCMPはリクエストを転送するだけなので、GPUやモデルファイルは必要ありません。 |

## インフラストラクチャの準備 {#prepare-the-infrastructure}

1. 使用する各モデルソースからAPIキーを取得し、そのベースURL（例: `https://api.example.com/v1`）を控えておきます。
2. 再販に関するモデルソースの利用規約を確認します。
3. ソースがネットワーク内で稼働している場合は、そのアドレス（例: `http://10.0.0.5:8000/v1`）を決定します。`10.0.0.5:8000`を**Allowed internal hosts**に登録します。

## NexCMP での接続 {#connect-in-nexcmp}

### 1. モジュールを有効にする {#_1-turn-the-module-on}

**System › Admin › License & updates**を開き、カード**Module**を見つけて**AI Models**を有効にします。メニューが再読み込みされ、**Services › AI Models**が表示されます。モジュールが無効の間は、カスタマーページ、管理ページ、ゲートウェイはいずれも`404 module_disabled`を返し、プロバイダーへの接続は行われません。

![AI ModelsスイッチがオンになっているModuleカード](https://nexcmp.com/ja/docs/images/infrastructure/ai-models-01-modules.webp)

### 2. プロバイダーの追加 {#_2-add-a-provider}

1. **AI Models › Providers**を開き、**Add provider**を選択します。
2. 短い**slug**、**name**（管理者のみに表示）、**type**（OpenAI-compatible、Anthropic-compatible、またはBoth）、**base URL**、**API key**、および**priority**（小さい数値ほど優先的に試行）を入力します。
3. 保存します。キーは暗号化されて保存され、保存後は末尾4文字のみが表示されます。キーの入力はサインインした管理者セッションからのみ可能です。

**Both**は、両方のフォーマットを実際に提供するゲートウェイでのみ使用してください。NexCMPは2つのフォーマット間の変換を**行いません**。OpenAI互換プロバイダーが提供するモデルには`/ai/v1/chat/completions`で、Anthropic互換プロバイダーが提供するモデルには`/ai/v1/messages`でアクセスします。

![type、priority、statusが表示された3つのサンプルプロバイダーが一覧表示されているProvidersページ](https://nexcmp.com/ja/docs/images/infrastructure/ai-models-02-providers.webp)

### 3. 接続テスト {#_3-test-the-connection}

プロバイダーで**Test connection**を選択します。NexCMPはキーを使用して`GET <base URL>/models`を読み取り、**ok**、または失敗の原因（**auth**（無効なキー）、**blocked**、**billing**、**unreachable**）を報告します。テストは1分間に6回までに制限されています。

### 4. モデルの同期 {#_4-sync-the-models}

**Sync models**を選択します。NexCMPはプロバイダーのモデル一覧を読み取り、新しい各モデルを**オフかつ価格未設定**の状態で追加します。プロバイダーの一覧から削除されたモデルにはフラグが付けられます。モジュールがオンの間、一覧は6時間ごとに自動同期も行われます（設定`ai_models_sync_hours`）。

### 5. 価格設定とモデルの有効化 {#_5-set-prices-and-switch-models-on}

1. **AI Models › Models**を開きます。
2. 販売するモデルごとに、100万トークン（1 million tokens）あたりの米ドルでの**販売価格**を設定します: **input**、**cached input**、**output**。
3. 任意でモデルの**コスト**を入力できます。入力すると、**Profit**に日別およびモデル別のコストに対する収益が表示され、コストに最小マージン（設定`ai_min_margin_pct`、デフォルトは10）を加えた額を下回る販売価格は、意図的な損失を承認しない限り拒否されます。**Set price from cost**では指定したマークアップが使用されます。デフォルトのマークアップはありません。
4. モデルをオンにします。販売価格が設定されていないモデルはオンにできません。cached input価格を0のままにした場合は、input価格で課金されます。

![input、cached input、outputの販売価格およびオン/オフスイッチが表示されたModelsページ](https://nexcmp.com/ja/docs/images/infrastructure/ai-models-03-models.webp)

### 6. ルートとフェイルオーバー {#_6-routes-and-failover}

モデルの**Routes**には、それを提供するプロバイダーが順序どおりに一覧表示されます。フォールバックとして2つ目のプロバイダーを追加し、優先順序を設定し、必要に応じてプロバイダーごとに異なるモデル名を指定できます（プロバイダーに送信される名前は公開する名前と異なっていてもかまいません）。プロバイダーがサーバーエラー、認証または請求エラー、モデル不在、またはレート制限を返した場合、NexCMPは次のルートを試行します。リクエスト送信後に読み取りがタイムアウトした場合は、二重支払いを防ぐため他のプロバイダーには**送信されません**。

各プロバイダーは1分あたり`ai_provider_rpm`リクエストにペース配分されます（デフォルトは50）。プロバイダーが認証エラーや請求エラーを返し続ける場合、Telegramが設定されていれば、NexCMPはTelegram経由で管理者にアラートを送信します。

### 7. 販売スイッチの有効化 {#_7-open-the-sale-switch}

AI Modelsページの上部にある**販売スイッチ**（設定`feature_ai_models`）は、デフォルトでオフになっています。オフの間、お客様にはサービスがまだ開始されていない旨が表示され、公開料金表には利用不可と表示されます。少なくとも1つのモデルがオンになっており、販売価格とキー付きのルートが設定されていることを確認してから、オンに切り替えてください。

### お客様が利用できる機能 {#what-customers-can-do}

カスタマーポータルの **AI › API**:

- **Models**には、提供モデルと価格、ベースURL、すぐに使えるサンプルコマンドが表示されます。
- **API Keys**：キーの作成、名前変更、ローテーション、無効化、削除が可能です。シークレットは一度だけ表示され、ハッシュのみが保存されます。キーごとの設定：許可モデル、有効期限、ソフトバジェット（警告）、ハードバジェット（`402`でブロック）、1分あたりのリクエスト数、1分あたりのトークン数。
- モデル別、キー別、日別の**Usage**（エクスポート対応）。
- **Logs**: 絞り込み可能なリクエスト履歴（時刻、キー、モデル、トークン数、コスト、ステータス、レイテンシ）。**プロンプトと応答は記録されません。** ログはデフォルトで90日間保持されます（`ai_log_retention_days`）。
- **Settings**: アカウント予算と予算アラート送信用メールアドレスの設定。
- **Playground**: モデルとのチャット、モデル間の並行比較、対応するコードのコピー。

![両方のAPI形式のベースURLが表示された顧客のAPI Keysページ](https://nexcmp.com/ja/docs/images/infrastructure/ai-models-04-keys.webp)

お客様のドメイン上のゲートウェイエンドポイント:

```text
POST /ai/v1/chat/completions      OpenAI-compatible
POST /ai/v1/messages              Anthropic-compatible (also /ai/v1/messages/count_tokens)
GET  /ai/v1/models                model list
GET  /ai/v1/models/pricing        public price list, no key needed
```

### ウォレットと請求 {#wallet-and-billing}

AIの利用料金は、他のすべてのサービスと同様に同一の前払いウォレットに請求されます。リクエストがプロバイダーへ送信される前に、NexCMPはそのリクエストで発生しうる最大コスト分の金額を確保します。残高が最低額（`ai_min_balance_cents`、デフォルトで20セント）を下回っているか不足している場合、リクエストは`402 insufficient_balance`で拒絶され、**プロバイダーは呼び出されません**。利用実績はアカウントごとに集計され、毎時ウォレットの元帳エントリーに決済されます（5分ごとのスイープ処理あり）。未決済の利用分は、ゲートウェイが参照する残高からすでに差し引かれています。

リセラーは自社ドメインでAI Modelsを販売できます。リセラー独自のマージンや割引がお客様の販売価格に適用され、リセラーの卸売用ウォレットからは卸売価格が引き落とされます。デフォルトで有効になっているリセラーごとのAIスイッチにより、販売の可否を制御できます。

## 確認 {#verify}

1. ステップ3の後、**Test connection**に**ok**とモデル数が表示されます。
2. ステップ4の後、新しいモデルが無効（off）かつ価格未設定の状態で一覧表示されます。
3. 残高のあるウォレットを持つ顧客として、キーを作成してゲートウェイを呼び出します:

   ```bash
   curl https://your-domain/ai/v1/chat/completions \
     -H "Authorization: Bearer sk-ai-…" -H "Content-Type: application/json" \
     -d '{"model":"model-one","messages":[{"role":"user","content":"hello"}]}'
   ```

   `200`応答にモデルの回答が含まれます。**Usage**にリクエストが表示され、原価を入力している場合は**Profit**にも表示されます。
4. ウォレット残高がゼロの場合、同じ呼び出しは`402 insufficient_balance`を返します。

## 制限と注意点 {#limits-and-notes}

- 本モジュールにはプロバイダー、モデル、価格は組み込まれておらず、プロバイダーから価格表が読み取られることもありません。
- Web検索などプロバイダー側で実行され呼び出しごとに課金されるツールは、従量測定ができないため拒否されます。リクエストパラメーターのうち転送されるのは一部の項目のみです。
- トークン使用量はプロバイダーの応答から取得されます。応答に使用量が含まれていない場合、NexCMPが見積もりを行い、レコードに見積もり済みとしてフラグを付けます。
- プロバイダーからのエラーは、顧客に届く前にサニタイズされます（名前、ホスト、アドレス、プロバイダー側のモデル名が削除されます）。顧客にどのプロバイダーがリクエストを処理したかが表示されることはありません。
- 顧客はパネルのドメイン経由でゲートウェイにアクセスするため、そのドメインのTLSが正常に動作している必要があります。
- NexCMPは本モジュールに関するSLA（サービス水準合意）、ファインチューニング、GPUホスティングを提供しません。

## トラブルシューティング {#troubleshooting}

| 症状 | 原因と対処法 |
|---|---|
| すべてのAI Modelsページおよびゲートウェイが`404 module_disabled`を返す | モジュールが無効になっています。License & updatesのModulesで**AI Models**を有効にしてください。 |
| プロバイダーの追加が`endpoint_host_not_allowed`、`endpoint_must_be_https`、または`invalid_endpoint_port`で失敗する | ベースURLはパブリックドメイン名、ポート443のHTTPSである必要があります。内部ホスト、別のポート、またはプレーンHTTPの場合は、`host:port`を**Allowed internal hosts**に追加してください。 |
| `blocked_endpoint` | アドレスがIPアドレスであるか、名前がプライベートアドレスに解決されています。意図した設定である場合は、**Allowed internal hosts**に登録してください。 |
| **Test connection**に`auth`と表示される | キーが正しくないか、アクセス権がありません。キーを再入力してください。 |
| モデルを有効化できない（`no_price`） | 先に販売価格を設定してください。 |
| 顧客側で`503 ai_unavailable`が発生する | 販売スイッチが無効になっているか、リセラーのAIスイッチが無効になっています。 |
| 顧客側で`503 upstream_unavailable`が発生する | 要求された形式でそのモデルを提供する、キー付きの有効なルートがありません。モデルのルートとプロバイダータイプを確認してください。 |
| 顧客側で`402 insufficient_balance`が発生する | ウォレットの残高が最小額を下回っているか、リクエストに対して不足しています。お客様にチャージを依頼してください。 |
