---
title: AI Models
description: 透過專屬閘道銷售AI模型存取服務：新增相容OpenAI或相容Anthropic的提供商、同步模型、設定價格，讓客戶使用自己的金鑰與錢包呼叫單一端點。
url: https://nexcmp.com/zh-tw/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百萬個token的費用。NexCMP會檢查金鑰、限制與錢包，將請求傳送給您新增的提供商，計量token並從客戶的預付錢包扣款。

**您需自備模型來源。**NexCMP預設不隨附任何提供商、模型、預設位址或價格，亦不提供模型、API金鑰、token或提供商帳號。

::: warning 請先確認來源服務條款
許多模型來源限制轉售或將存取權轉讓給第三方。請僅使用您獲授權使用並可轉售的來源，並遵守其條款與適用的法律。本頁面不構成法律建議。
:::

AI Models是與**AI Chat and AI Agent**（模組**AI**，請參閱[AI提供商](https://nexcmp.com/zh-tw/docs/ai/ai-providers/)）各自獨立的產品。這兩個模組彼此互不依賴。

## 需求 {#requirements}

| 項目 | 需求 |
|---|---|
| 模組 | 已在License & updates的Modules下開啟**AI Models**。預設為關閉。 |
| 提供商 | 您獲得授權轉售的一或多個模型來源，各自具備OpenAI相容API（`/chat/completions`）、Anthropic相容API（`/messages`）或兩者兼具。每個來源皆需要base URL與API key。 |
| 網路 | 控制台必須能透過公網網域名稱以**連接埠443上的HTTPS**連線至各提供商。若提供商位於內部主機、使用其他連接埠或一般HTTP，則必須列於**Allowed internal hosts**（設定`ai_endpoint_allow`）中。 |
| 客戶 | 擁有已驗證電子郵件地址且錢包有餘額的客戶帳號。 |
| 硬體 | 無。NexCMP僅轉發請求：無需GPU，亦無需模型檔案。 |

## 準備基礎設施 {#prepare-the-infrastructure}

1. 從您將使用的各個模型來源取得API金鑰，並記下其base 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/zh-tw/docs/images/infrastructure/ai-models-01-modules.webp)

### 2. 新增提供商 {#_2-add-a-provider}

1. 開啟**AI Models › Providers**並選擇**Add provider**。
2. 輸入簡短的**slug**、**名稱**（僅您可見）、**類型**（OpenAI-compatible、Anthropic-compatible或Both）、**base URL**與**API key**，以及**優先級**（數字較小者優先嘗試）。
3. 儲存。金鑰將加密儲存，且後續僅顯示最後4個字元。金鑰僅能由已登入的管理員工作階段輸入。

僅在閘道確實同時支援兩種格式時才使用**Both**。NexCMP**不會**在兩種格式之間進行轉換：由相容OpenAI的提供商提供的模型需透過`/ai/v1/chat/completions`存取，而由相容Anthropic的提供商提供的模型則透過`/ai/v1/messages`存取。

![顯示三個範例提供商及其類型、優先順序和狀態的 Providers 頁面](https://nexcmp.com/zh-tw/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**。測試頻率限制為每分鐘 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. 針對您要銷售的每個模型，設定以美元計價、每1百萬個token的**銷售價格**：**input**、**cached input** 與 **output**。
3. 可選擇輸入您該模型的**成本**。接著 **Profit** 會依日期和模型顯示營收與成本的對比，且除非您確認刻意承受虧損，否則低於成本加上最低利潤（設定項目 `ai_min_margin_pct`，預設為 10）的銷售價格將會被拒絕。**Set price from cost** 會使用您自訂的加成比例；沒有預設加成。
4. 啟用該模型。未設定銷售價格的模型無法啟用。cached input 價格若保留為零，則會按 input 價格計費。

![包含 input、cached input 與 output 銷售價格及啟閉開關的 Models 頁面](https://nexcmp.com/zh-tw/docs/images/infrastructure/ai-models-03-models.webp)

### 6. 路由與容錯移轉 {#_6-routes-and-failover}

在模型上，**Routes** 會依序列出支援該模型的提供商。可新增第二個提供商做為備援、設定優先順序，並可選擇為每個提供商指定不同的模型名稱（傳送給提供商的名稱可以不同於您公開顯示的名稱）。當提供商傳回伺服器錯誤、授權或帳單錯誤、缺少模型或速率限制時，NexCMP 會嘗試下一個路由。若要求發送後發生讀取逾時，**不會**轉發給其他提供商，避免重複扣款。

每個提供商的呼叫頻率限制為每分鐘 `ai_provider_rpm` 次請求（預設為 50）。若提供商持續回傳授權或帳單錯誤，且已設定 Telegram，NexCMP 會在 Telegram 上通知管理員。

### 7. 開啟銷售開關 {#_7-open-the-sale-switch}

在 AI Models 頁面頂部，**銷售開關**（設定項目 `feature_ai_models`）預設為關閉。關閉時，客戶會看到服務尚未開放，公開價目表亦會顯示不可用。請確認至少有一個模型已開啟、已設定銷售價格，且具備包含有效金鑰的路由，然後開啟此開關。

### 客戶可以執行的操作 {#what-customers-can-do}

在客戶入口網站中，前往**AI › API**：

- **Models** 顯示您的模型與價格、基礎 URL 以及現成的範例指令。
- **API Keys**：建立、重新命名、輪換、停用和刪除金鑰。密鑰僅顯示一次；系統只儲存雜湊值。可按金鑰設定：允許的模型、到期日、軟性預算上限（發出警告）與硬性預算上限（以 `402` 阻擋）、每分鐘請求數以及每分鐘 tokens 數。
- **Usage**：依模型、金鑰和日期顯示用量，並支援匯出。
- **Logs**：可篩選的請求記錄（時間、金鑰、模型、tokens、成本、狀態、延遲）。**不會記錄 prompt 和回應內容。**記錄預設保留 90 天（`ai_log_retention_days`）。
- **Settings**：帳戶預算以及預算警報的電子郵件地址。
- **Playground**：與模型交談、並排比較多個模型，並複製相應的程式碼。

![顯示兩種 API 格式基礎 URL 的客戶 API Keys 頁面](https://nexcmp.com/zh-tw/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後，新模型將列出，處於關閉狀態且沒有價格。
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}

- 此模組未內建任何供應商、模型或價格，且絕不會從供應商讀取價目表。
- 在供應商端執行且按次計費的工具（例如網路搜尋）會被拒絕，因為它們無法進行計量。只有少數請求參數會被傳遞。
- Token使用量取自供應商的回覆；若回覆中未包含，NexCMP會進行估算並將該記錄標記為預估。
- 來自供應商的錯誤在傳送給客戶之前會先經過清理（移除名稱、主機、位址與供應商的模型名稱）。客戶絕不會看到是哪家供應商處理了請求。
- 客戶透過您控制台的網域連線至閘道，因此該網域的TLS必須能正常運作。
- NexCMP不為此模組提供服務等級協定、微調或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` | 錢包餘額低於最低限制或不足以支付該請求。請要求客戶儲值。 |
