推薦使用新一代命令列工具 AIHubMix CLI(命令列工具):單一二進位、零執行時依賴(無需 Python),提供
aihubmix keys list 等資源化命令,並對 jq 與 AI Agent 友好。本頁保留舊版 Python 腳本用法供參考。準備工作
在開始使用 AiHubMix CLI 前,你需要:- 一個 AiHubMix 帳號
- 從 AiHubMix 設定頁面 點擊「生成系統訪問令牌」生成訪問令牌 (Access Token);
- 安裝必要的 Python 依賴項:
pip install -U requests openai
aihubmix_cli.py 腳本可以在此獲取
功能列表
AiHubMix CLI 提供以下主要功能:API 端點一覽表
| 端點 | HTTP 方法 | 描述 |
|---|---|---|
/api/user/self | GET | 獲取當前用戶信息和帳戶餘額 |
/api/token/ | GET | 獲取所有 KEY 列表 |
/api/token/ | POST | 創建新的 API KEY |
/api/token/ | PUT | 更新現有 API KEY |
/api/token/{token_id} | GET | 獲取特定 KEY 的詳細信息 |
/api/token/{token_id} | DELETE | 刪除特定 KEY |
/api/token/search | GET | 搜索 KEY (使用 ?keyword=search keyword) |
/api/user/token | GET | 獲取用戶 KEY |
/api/user/available_models | GET | 獲取當前用戶可用的模型列表 |
帳戶管理
curl -X GET "https://aihubmix.com/api/user/self" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
import requests
import json
# API 配置
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# 獲取帳戶餘額
response = requests.get(f"{api_url}/api/user/self", headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
user_data = data.get("data", {})
quota = user_data.get('quota', 0)
usd_balance = quota / 500000 # $1 兑换 500,000 额度
print(f"用戶名: {user_data.get('username', '未知')}")
print(f"顯示名稱: {user_data.get('display_name', '未知')}")
print(f"當前額度: {quota}")
print(f"可用美元: ${usd_balance:.2f}")
else:
print(f"請求失敗: {data.get('message', '未知錯誤')}")
else:
print(f"請求失敗,狀態碼: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_balance
curl 'https://aihubmix.com/dashboard/billing/remain' \
-H 'authorization: Bearer sk-***' \
KEY 管理
curl -X POST "https://aihubmix.com/api/token/" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "新KEY名稱",
"expired_time": -1,
"remain_quota": 500000,
"unlimited_quota": false,
"subnet": ""
}'
import requests
import json
# API 配置
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# 創建新 KEY
payload = {
"name": "新KEY名稱",
"expired_time": -1, # 永不過期
"remain_quota": 500000,
"unlimited_quota": False,
"subnet": ""
}
response = requests.post(f"{api_url}/api/token/", headers=headers, json=payload)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
token_data = data.get("data", {})
print(f"新KEY: {token_data.get('key', '未知')}")
print(f"KEY ID: {token_data.get('id', '未知')}")
else:
print(f"創建KEY失敗: {data.get('message', '未知錯誤')}")
else:
print(f"請求失敗,狀態碼: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action create_token --name "新KEY名稱" --expires -1 --quota 500000
curl -X GET "https://aihubmix.com/api/token/" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
import requests
import json
# API 配置
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# 獲取 KEY 列表
response = requests.get(f"{api_url}/api/token/", headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
tokens_data = data.get("data", [])
print(f"KEY列表 (共 {len(tokens_data)} 個):")
for token in tokens_data:
print(f"KEY ID: {token.get('id', '未知')}")
print(f"KEY 名稱: {token.get('name', '未知')}")
print(f"KEY: {token.get('key', '未知')}")
print("---")
else:
print(f"獲取KEY列表失敗: {data.get('message', '未知錯誤')}")
else:
print(f"請求失敗,狀態碼: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_tokens
curl -X GET "https://aihubmix.com/api/token/search?keyword=search keyword" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
import requests
import json
# API 配置
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# 搜索關鍵詞
query = "search keyword"
# 搜索 KEY
response = requests.get(f"{api_url}/api/token/search?keyword={query}", headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
tokens_data = data.get("data", [])
print(f"搜索結果 (共 {len(tokens_data)} 個):")
for token in tokens_data:
print(f"KEY ID: {token.get('id', '未知')}")
print(f"KEY 名稱: {token.get('name', '未知')}")
print(f"KEY: {token.get('key', '未知')}")
print("---")
else:
print(f"搜索KEY失敗: {data.get('message', '未知錯誤')}")
else:
print(f"請求失敗,狀態碼: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action search_tokens --query "search keyword"
curl -X PUT "https://aihubmix.com/api/token/" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": "KEY_ID",
"name": "新名稱",
"expired_time": 86400,
"remain_quota": 100000,
"status": 1
}'
import requests
import json
# API 配置
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# 更新 KEY
key_id = "KEY_ID" # 替換為實際的KEY ID
payload = {
"id": key_id,
"name": "新名稱",
"expired_time": 86400, # 24小時後過期
"remain_quota": 100000,
"status": 1 # 1-啟用,0-禁用
}
response = requests.put(f"{api_url}/api/token/", headers=headers, json=payload)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
print(f"KEY更新成功")
if "data" in data:
token_data = data.get("data", {})
print(f"名稱: {token_data.get('name', '未知')}")
print(f"過期時間: {token_data.get('expired_time', '未知')}")
else:
print(f"更新KEY失敗: {data.get('message', '未知錯誤')}")
else:
print(f"請求失敗,狀態碼: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action update_token --id "KEY_ID" --name "新名稱" --expires 86400 --quota 100000 --status 1
curl -X DELETE "https://aihubmix.com/api/token/KEY_ID" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
import requests
import json
# API 配置
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# 刪除 KEY
key_id = "KEY_ID" # 替換為實際的KEY ID
response = requests.delete(f"{api_url}/api/token/{key_id}", headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
print(f"KEY刪除成功")
else:
print(f"刪除KEY失敗: {data.get('message', '未知錯誤')}")
else:
print(f"請求失敗,狀態碼: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action delete_token --id "KEY_ID"
curl -X GET "https://aihubmix.com/api/user/token" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
import requests
import json
# API 配置
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# 獲取用戶 KEY
response = requests.get(f"{api_url}/api/user/token", headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
user_token = data.get("data", {}).get("token")
print(f"用戶KEY: {user_token}")
else:
print(f"獲取用戶KEY失敗: {data.get('message', '未知錯誤')}")
else:
print(f"請求失敗,狀態碼: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_user_token
模型管理
curl -X GET "https://aihubmix.com/api/user/available_models" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
import requests
import json
# API 配置
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# 獲取用戶可用模型
response = requests.get(f"{api_url}/api/user/available_models", headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
models_data = data.get("data", [])
print(f"用戶可用模型列表 (共 {len(models_data)} 個):")
for i, model in enumerate(models_data, 1):
print(f" {i}. {model}")
else:
print(f"獲取用戶可用模型失敗: {data.get('message', '未知錯誤')}")
else:
print(f"請求失敗,狀態碼: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_available_models
使用 JSON 格式輸出
所有 CLI 命令都支持以 JSON 格式輸出結果,方便進行程序化處理:python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_balance --json
故障排除
如果遇到問題,可以嘗試以下解決方案:-
連接問題:如果主域名連接失敗,嘗試使用備用域名:
python aihubmix_cli.py --url "https://api.aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_balance -
訪問令牌無效:確保提供的訪問令牌是從 AiHubMix 網站獲取的有效密鑰。訪問令牌格式通常是
fd***這樣的形式。 - 權限不足:某些操作可能需要特定的權限,請確保您的帳戶有足够的權限。
- 請求失敗:檢查網路連接,或嘗試稍后再試。
注意事項
- 訪問令牌與用於訪問 AI 模型的普通 API KEY 不同
- 每個用戶擁有自己的系統訪問令牌,其訪問級別由用戶角色決定(普通用戶、管理員或根用戶)
最後更新:2026-06-01