# 产品使用说明

# 目录

# 1.1 API接入

欢迎使用星辰 MaaS 平台模型服务。为便于您快速调用,以下为您提供接口调用地址与参考示例。

接口地址

认证信息

下面以 Chat Completions 为例完成一次最小调用,便于快速验证接入是否成功;如需流式输出,将 stream 设置为 true

CURL

curl https://maas-api.cn-huabei-1.xf-yun.com/v2/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $SPARK_API_PASSWORD" \
  -d '{
    "model": "spark-x2.5",
    "messages": [
      {"role": "user", "content": "你好。"}
    ],
    "stream": false
  }'

Python

from openai import OpenAI

client = OpenAI(
    api_key="<你的 APIPassword>",
    base_url="https://maas-api.cn-huabei-1.xf-yun.com/v2",
)

response = client.chat.completions.create(
    model="spark-x2.5",
    messages=[{"role": "user", "content": "你好。"}],
    stream=False,
)

print(response.choices[0].message.content)

Go

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    body := map[string]any{
        "model": "spark-x2.5",
        "messages": []map[string]string{
            {"role": "user", "content": "你好。"},
        },
        "stream": false,
    }

    data, err := json.Marshal(body)
    if err != nil {
        panic(err)
    }

    req, err := http.NewRequest(
        http.MethodPost,
        "https://maas-api.cn-huabei-1.xf-yun.com/v2/chat/completions",
        bytes.NewReader(data),
    )
    if err != nil {
        panic(err)
    }

    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Authorization", "Bearer <你的 APIPassword>")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    result, err := io.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    fmt.Println(string(result))
}

Node.js

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.SPARK_API_PASSWORD,
  baseURL: "https://maas-api.cn-huabei-1.xf-yun.com/v2",
});

const response = await client.chat.completions.create({
  model: "spark-x2.5",
  messages: [{ role: "user", content: "你好。" }],
  stream: false,
});

console.log(response.choices[0].message.content)

# 1.2 错误码速查

接口调用失败时,可结合 HTTP Code、Error Code、原因和解决办法定位问题。

HTTP Code Error Code 原因 解决办法
400 10005 输入格式不正确 根据提示修改请求,若问题仍存在,请联系技术支持
400 10013 输入内容包含敏感内容 请规整输入
400 10014 输出内容包含敏感内容 请规整输入
400 10163 部分参数不支持 根据提示修改请求,若问题仍存在,请联系技术支持
400 10224 序列过长 调整输入大小
400 10404 未使用正确的 model_id 请查阅文档说明或者联系技术支持
400 10305 输入格式不正确 根据提示修改请求,若问题仍存在,请联系技术支持
400 10313 输入内容包含敏感内容 请规整输入
400 10314 输出内容包含敏感内容 请规整输入
400 10042 服务器内部错误 请稍后重试
401 - 未使用正确的 APIKEY 请检查 APIKEY 是否正确;若无 APIKEY,则先创建
403 11200 AppID 没有对应授权 参考API接入文档,开通授权
403 11221 使用套餐不允许的模型 请使用套餐内的模型;若已购买,请稍后 2-3 分钟再请求
429 11201 当日使用量达到上限 请控制请求速率
429 11202 QPS 超限 请控制请求速率
429 11203 并发路数或者 TPM 超限 请控制请求速率
429 11210 TPM 超限 请控制请求速率
500 10020 内部工具报错 请联系技术支持
500 10041 服务内部错误 请联系技术支持
500 10011 服务内部错误 请联系技术支持
500 10012 引擎服务内部错误 请联系技术支持
500 10912 引擎服务内部错误 请联系技术支持
500 10222 服务内部错误 请联系技术支持
500 10223 服务内部错误 请联系技术支持
500 10051 与后端引擎连接超时 请减少路数请求或者等待后重试
503 10110 引擎并发路数不足 请减少路数请求或者等待后重试
503 10010 引擎排队较多 请等待后重试
503 10310 引擎并发路数不足 请减少路数请求或者等待后重试

# 1.3 速率限制

# 1 限制维度

为保障平台稳定性和公平性,星辰 MaaS 对 API 调用实行速率限制。本文说明限制规则、错误码、响应头以及触发限流后的处理建议。

星辰 MaaS 采用 双重限流 机制,按维度独立计算、互不抵扣:

维度 含义 计算口径
并发请求数(Concurrency) 同一时刻正在处理中(已发送未返回)的请求数量上限 按API Key+ 模型分组计算,流式请求在流结束前持续占用并发槽
TPM(Tokens Per Minute) 每分钟内请求消耗的 Token 总量上限 按API Key+ 模型分组计算,统计口径为 输入 token + 输出 token

两个维度任一触顶即触发限流。流式输出按最终实际产出的 token 计入 TPM,请求结束后补扣。

# 2 模型默认额度与额度升降

每个API Key开通模型时,默认并发20、TPM 100w,apikey+模型独立限流,不挤占

申请提升额度:登录控制台 → 【在线咨询】 → 说明模型、期望并发/TPM、业务场景说明 → 平台技术支持人员会与您联系。

# 3 如何合理应对速率限制

我们建议开发者在系统设计中提前考虑以下策略

  1. 控制并发与请求频率
  • 使用请求队列或并发池

  • 避免瞬时“洪峰式”请求

  • 避免固定间隔的高频重试

  1. 异步请求或批处理 API
  • 非实时场景可通过批处理方式或异步请求降低并发压力(见批量推理部分)

# 4 常见问题

Q:429 等限流报错是否计费?

触发 429 限流报错的请求平台未实际处理,不计费;但 503 过载场景下若已部分处理,按实际消耗 token 计费。

Q:TPM 是按账户还是按 API Key 统计?

默认按 API Key + 模型分档统计。企业级客户可申请按 API Key / 项目维度拆分额度,见控制台「子账号配额」。

Q:流式请求的 token 如何计入 TPM?

按请求最终实际产出的总 token(输入 + 输出)在请求结束时一次性补扣,过程中不占用 TPM 槽位,但持续占用并发槽位直至流结束。

Q:不同模型是否共享额度?

不共享。各模型分档独立计算并发与 TPM,跨模型调用互不影响。

在线咨询
体验中心