开发者文档
从申请密钥到跑通第一次训练,最快 5 分钟。以下是完整接入路径与 API 参考。
快速开始
ArithCloud 的接入流程分为三步:获取密钥、安装工具、创建资源。整个过程不需要提交工单,也不需要人工审批。
- 登录控制台,在「访问控制 → API 密钥」中创建一对 Access Key / Secret Key;
- 安装 CLI 或 SDK,配置密钥;
- 调用创建接口,拿到实例 IP 与连接方式。
# 1. 安装 CLI
curl -fsSL https://get.arithcloud.com/cli | sh
# 2. 配置密钥(也可写入 ~/.arith/config)
arith config set access_key AKIA****EXAMPLE
arith config set secret_key ********************************
# 3. 验证连通性
arith whoami
# → {"account": "acme-ai", "region": "cn-hangzhou-1", "quota": 128}
密钥安全:Secret Key 仅在创建时完整显示一次,请立即妥善保存。生产环境建议使用临时凭证(STS Token),避免将长期密钥写入代码仓库。
身份认证
所有 API 请求通过 Authorization 请求头进行签名认证。签名算法为 HMAC-SHA256,签名内容为「方法 + 路径 + 时间戳 + 请求体摘要」。
| 请求头 | 是否必填 | 说明 |
|---|---|---|
| Authorization | 是 | 格式为 AC-SHA256 Credential=<AK>, Signature=<签名> |
| X-Ac-Timestamp | 是 | Unix 时间戳(秒),与服务端偏差不得超过 300 秒 |
| X-Ac-Region | 否 | 目标可用区,缺省为账户默认区域 |
| Content-Type | 是 | 固定为 application/json |
from arithcloud import Client
# SDK 会自动处理时间戳与 HMAC-SHA256 签名
client = Client(
access_key="AKIA****EXAMPLE",
secret_key="********************************",
region="cn-hangzhou-1",
)
me = client.whoami()
print(me["account"], me["quota"])
实例管理
实例是算力资源的最小交付单元。创建实例时需指定机型、镜像与网络配置;实例创建后可按需升降配,或挂载额外云盘。
cluster = client.clusters.create(
name="cluster-train-01",
instance_type="HC-H100-8", # 8 × H100 SXM 80GB
image="pytorch-2.4-cu124", # 预置框架镜像
replicas=1,
network={
"interconnect": "infiniband-3.2t",
"vpc_id": "vpc-8f2a91",
},
storage=[
{"type": "afs", "size_gb": 2048, "mount": "/mnt/data"},
],
tags={"team": "llm", "env": "prod"},
)
# 阻塞等待集群就绪(约 27 秒)
cluster.wait_until_ready(timeout=300)
print(cluster.ssh_command)
# → arith ssh cluster-train-01
集群就绪后即可通过 SSH 或作业调度器提交训练任务。若使用 K8s,可直接获取 kubeconfig 接入现有工作流:
# 导出集群 kubeconfig,接入已有 CI/CD
arith cluster kubeconfig cluster-train-01 > ~/.kube/arith.yaml
export KUBECONFIG=~/.kube/arith.yaml
kubectl get nodes
# NAME STATUS GPU
# ac-hc-h100-001 Ready nvidia.com/gpu: 8
推理端点
托管推理把模型权重变成一个 HTTP 端点。部署时只需指定模型来源与引擎参数,平台会自动完成显存规划、批处理调优与健康检查。
endpoint = client.inference.deploy(
name="qwen-chat",
model="aos://models/qwen2.5-72b-instruct", # 对象存储中的权重
engine="vllm",
gpu_type="H100",
replicas={"min": 1, "max": 8},
scaling={"metric": "qps", "target": 50},
quantization="fp8",
)
endpoint.wait_until_ready()
print(endpoint.url)
# → https://qwen-chat.infer.arithcloud.com/v1
端点兼容 OpenAI Chat Completions 协议,可直接替换现有 SDK 的 base_url 使用:
from openai import OpenAI
client_llm = OpenAI(
base_url="https://qwen-chat.infer.arithcloud.com/v1",
api_key="sk-ac-********************************",
)
resp = client_llm.chat.completions.create(
model="qwen-chat",
messages=[{"role": "user", "content": "用一句话解释什么是张量并行。"}],
stream=True,
)
for chunk in resp:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
API 参考
REST 接口根地址为 https://api.arithcloud.com/v1。所有接口遵循统一的响应结构,失败时返回结构化错误对象。
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /v1/instances | 列出当前账户下的全部实例 |
| POST | /v1/instances | 创建一个实例或集群 |
| GET | /v1/instances/{id} | 查询实例详情与实时资源用量 |
| POST | /v1/instances/{id}/resize | 在线升降配实例规格 |
| DELETE | /v1/instances/{id} | 销毁实例,销毁后立即停止计费 |
| POST | /v1/inference/deployments | 部署一个托管推理端点 |
| GET | /v1/billing/usage | 查询指定时间区间的用量与费用明细 |
统一响应结构
{
"request_id": "req_8f2a91c4e7",
"data": {
"id": "inst-3d9b71",
"status": "running",
"instance_type": "HC-H100-8",
"region": "cn-hangzhou-1",
"created_at": "2026-09-11T10:24:03Z",
"gpu": { "type": "H100", "count": 8 },
"usage": { "gpu_hours": 216.5, "estimated_cost": 2706.25 }
}
}
SDK 与 CLI
官方 SDK 覆盖 Python、Go 与 Node.js,均支持自动签名、请求重试与分页遍历。SDK 源码与示例托管在公开仓库中。
| 语言 / 工具 | 安装方式 | 最低版本 |
|---|---|---|
| Python SDK | pip install arithcloud | Python 3.9+ |
| Go SDK | go get github.com/arithcloud/sdk-go | Go 1.21+ |
| Node.js SDK | npm i @arithcloud/sdk | Node 18+ |
| CLI | curl -fsSL get.arithcloud.com/cli | sh | macOS / Linux / WSL |
| Terraform Provider | terraform { required_providers { arithcloud = ... } } | Terraform 1.5+ |
错误码
所有错误响应遵循 HTTP 状态码 + 业务错误码 双层语义。建议在客户端按业务错误码做分支处理,而非依赖 HTTP 状态码文本。
| 错误码 | HTTP | 含义 | 处理建议 |
|---|---|---|---|
| InvalidSignature | 401 | 签名校验失败 | 检查时间戳偏差与 Secret Key 是否正确 |
| QuotaExceeded | 403 | 账户配额不足 | 提交提额申请或先销毁闲置实例 |
| ResourceUnavailable | 409 | 目标可用区暂无库存 | 切换可用区,或改用抢占实例 |
| RateLimited | 429 | 请求频率超限 | 指数退避重试,或申请提高 QPS 上限 |
| InternalError | 500 | 服务端异常 | 携带 request_id 提交工单,我们会优先排查 |
{
"request_id": "req_91d3ac7f02",
"error": {
"code": "ResourceUnavailable",
"message": "cn-beijing-1 暂无可用的 H100 裸金属库存",
"retryable": true,
"suggested_region": "cn-hangzhou-1"
}
}
服务状态
我们通过独立的公开状态页实时发布各可用区与各服务的可用性、历史事件与维护公告。如需订阅故障通知,可在状态页绑定邮件或 Webhook。
| 服务 | 当前状态 | 30 天可用性 |
|---|---|---|
| 控制台与 OpenAPI | 正常运行 | 99.998% |
| 弹性实例 | 正常运行 | 99.994% |
| 托管推理 | 正常运行 | 99.991% |
| 并行文件存储 AFS | 正常运行 | 99.997% |
技术支持:企业版客户可通过专属技术群或驻场工程师获得支持;其他客户可通过控制台提交工单,标准响应时间为 15 分钟(工作日)与 60 分钟(非工作日)。