API 参考
异常
MinT API 抛出的错误类型
基础异常
TinkerError
所有 MinT 错误的根异常。所有 MinT 特定异常都继承自此类。
APIError
API 相关错误的基类。
属性:
body:包含错误详情的响应体
连接错误
APIConnectionError
连接 MinT 服务器失败时抛出。
APITimeoutError
请求超时时抛出。
继承自:APIConnectionError
APIResponseValidationError
服务器响应与预期 schema 不匹配时抛出。
HTTP 状态错误
| 异常 | 状态码 | 描述 |
|---|---|---|
BadRequestError | 400 | 无效的请求格式或参数 |
AuthenticationError | 401 | 缺少或无效的凭据 |
PermissionDeniedError | 403 | 权限不足 |
NotFoundError | 404 | 资源不存在 |
ConflictError | 409 | 资源状态冲突 |
UnprocessableEntityError | 422 | 请求语义无效 |
RateLimitError | 429 | 请求过多(超出速率限制) |
InternalServerError | 500+ | 服务器端错误 |
异步错误
RequestFailedError
异步请求未能成功完成时抛出。可能原因:
- 服务器瞬时故障
- 资源竞争
- 会话超时(参见 限制与配额)
属性:
request_id- 用于调试的唯一标识符(联系支持时请提供)
重试策略:
import asyncio
from mint import RequestFailedError
async def sample_with_retry(sampling_client, prompt, params, max_retries=3):
for attempt in range(max_retries):
try:
return await sampling_client.sample_async(prompt=prompt, sampling_params=params)
except RequestFailedError as e:
if attempt == max_retries - 1:
raise
wait_time = 2 ** attempt # 1s, 2s, 4s
print(f"请求失败 (id={e.request_id}),{wait_time}s 后重试...")
await asyncio.sleep(wait_time)如果重试后仍然失败,创建新的 sampling client:
sampling_client = training_client.save_weights_and_get_sampling_client()使用示例
import mint
from mint.exceptions import (
AuthenticationError,
NotFoundError,
RateLimitError
)
try:
service_client = mint.ServiceClient()
training_client = service_client.create_lora_training_client(
base_model="Qwen/Qwen3-4B-Instruct-2507"
)
except AuthenticationError:
print("无效的 API key")
except NotFoundError:
print("模型未找到")
except RateLimitError:
print("超出速率限制,请稍候")
except mint.TinkerError as e:
print(f"MinT 错误:{e}")