Mind Lab Toolkit (MinT)
API 参考

异常

MinT API 抛出的错误类型

基础异常

TinkerError

所有 MinT 错误的根异常。所有 MinT 特定异常都继承自此类。

APIError

API 相关错误的基类。

属性

  • body:包含错误详情的响应体

连接错误

APIConnectionError

连接 MinT 服务器失败时抛出。

APITimeoutError

请求超时时抛出。

继承自APIConnectionError

APIResponseValidationError

服务器响应与预期 schema 不匹配时抛出。

HTTP 状态错误

异常状态码描述
BadRequestError400无效的请求格式或参数
AuthenticationError401缺少或无效的凭据
PermissionDeniedError403权限不足
NotFoundError404资源不存在
ConflictError409资源状态冲突
UnprocessableEntityError422请求语义无效
RateLimitError429请求过多(超出速率限制)
InternalServerError500+服务器端错误

异步错误

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}")

本页目录