← Docs/

§ 运维 · 错误

错误码 · 14 个 codes.

HiPMM Engine 错误响应统一格式. 14 个业务错误码 + 重试策略 + ADR-0001 脱敏约束.

01

错误响应格式

所有非 2xx 响应统一这个 shape:

error response

{
  "success": false,
  "request_id": "req_a1b2c3d4...",
  "error": {
    "code": "INVALID_CODE_FORMAT",
    "message": "代号格式不合法: 缺少 IDED 维度",
    "details": {
      "input": "I-A-L-X-AR(PR)-SE-LT"
    }
  }
}

ADR-0001 C-6

error.message 和 details 永远不含 prompt 原文 / API key / 客户敏感数据. 只含错误类型 + 必要的诊断字段. 这是硬约束, 任何泄漏 → P0 修复.
02

14 个错误码

codeHTTP含义客户应对
INVALID_CODE_FORMAT400代号字符串格式不合法校验后重发
INVALID_LLM_CONFIG400llm_config 缺字段或非法修 config 重发
INVALID_SCORE400量化分数超出 0-100修分数重发
INVALID_REQUEST400请求体 schema 校验失败看 details.errors
STREAM_NOT_SUPPORTED400stream=true 暂未支持改 stream=false
UNSUPPORTED_MODEL400model 字段不在 hipmm/* 范围用合法 model
INVALID_API_KEY401key 无效 / 已撤销去控制台重新创建
ENDPOINT_NOT_ALLOWED403当前 plan 不支持该端点升级 plan
BYOM_NOT_ALLOWED403Free / Starter 不支持 BYOM升级 Pro
SYMBOLIC_NOT_SUPPORTED422象征版未覆盖该组合fallback 通俗版
RATE_LIMIT_EXCEEDED429触发分钟级限流看 Retry-After 等待
QUOTA_EXCEEDED429月度配额用尽升级套餐 / 等下月
LLM_PROVIDER_ERROR502BYOM 客户的 LLM 出错看客户自己 LLM
LLM_TIMEOUT504LLM 调用超时 (>300s)重试 (用 brief 档)
ENGINE_UNAVAILABLE503Engine 暂不可用重试 + Retry-After
INTERNAL_ERROR500未预期错误 (脱敏)联系支持 + request_id
03

重试策略

客户 SDK 默认重试逻辑 (Python / TypeScript SDK 都自带):

状态码默认行为原因
5xx指数退避自动重试 2 次Engine 短暂故障
429 + Retry-After ≤ 10s按 Retry-After 重试 1 次瞬时尖峰
429 + Retry-After > 10s不重试, 抛 RateLimitError持续过载, 用户决定
4xx (除 429)不重试, 抛对应异常客户参数错
timeout / network抛 APIConnectionError / APITimeoutError网络层, SDK 不重试

Python · 自定义重试

client = HiPMM(
    api_key="hipmm_sk_...",
    max_retries=3,    # 默认 2
    timeout=120.0,    # 默认 60 秒
)
04

request_id 用法

每次请求 (含错误) 返回 request_id. 联系客服时附上, 我们能在 Sentry / OTel trace / audit log 里精确定位.

Python

try:
    client.codename.create("garbage")
except HiPMMError as e:
    print(e.request_id)  # req_a1b2c3d4...
    # 联系 hello@hipmm.com 附上这个 id
05

速率限制 headers

限流时 HiPMM 返回标准 headers:

response headers (429)

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
Retry-After: 60
X-Request-ID: req_a1b2c3d4...

客户可以按 Retry-After 等指定秒数再重试.