推荐使用新一代命令行工具 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 获取余额,余额为 quota /500000
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 管理
创建新 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
获取 Key 列表
curl -X GET "https://aihubmix.com/api/token/?num=20" \ #修改num参数可以调整输出的数据数量。
-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
搜索 Key
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"
更新 Key
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
删除 Key
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"
获取用户 Key
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