跳转到内容

对话接口

向支持对话接口的模型发送消息并获取回复。模型支持的参数可能不同,建议从最小请求开始,再添加可选参数。

http
POST https://hyperapi.cc/v1/chat/completions

最小请求

先按 快速开始 设置 HYPERAPI_API_KEYHYPERAPI_MODEL 环境变量。以下示例用 Python 标准库生成 JSON,不需要安装第三方包。

bash
python3 -c 'import json, os; print(json.dumps({
    "model": os.environ["HYPERAPI_MODEL"],
    "messages": [{"role": "user", "content": "用一句话解释什么是 API。"}]
}))' | curl --fail-with-body 'https://hyperapi.cc/v1/chat/completions' \
  -H "Authorization: Bearer $HYPERAPI_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-binary @-

常用参数

参数类型说明
modelstring必填,使用当前令牌可访问且支持此接口的模型 ID
messagesarray必填,对话消息列表
messages[].rolestring消息角色,最小示例使用 user
messages[].contentstring本文示例使用纯文本内容
streamboolean设为 true 请求流式输出,默认非流式

温度、输出长度、工具调用、图片输入及其他扩展参数的支持情况取决于具体模型;不要假设所有模型接受相同参数。

非流式响应

以下为结构示意,字段值与用量仅供说明:

json
{
  "id": "chatcmpl-example",
  "object": "chat.completion",
  "model": "MODEL_ID",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "API 是让不同程序交换数据和调用功能的接口。"
      },
      "finish_reason": "stop"
    }
  ]
}

普通文本回复一般读取 choices[0].message.content。工具调用等场景下 content 可能为空,需要处理对应字段;响应也可能包含 usage 等额外数据。

流式输出

添加 "stream": true,并在 cURL 中使用 --no-buffer 及时显示数据:

bash
python3 -c 'import json, os; print(json.dumps({
    "model": os.environ["HYPERAPI_MODEL"],
    "messages": [{"role": "user", "content": "写一段简短的问候。"}],
    "stream": True
}))' | curl --no-buffer --fail-with-body 'https://hyperapi.cc/v1/chat/completions' \
  -H "Authorization: Bearer $HYPERAPI_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-binary @-

响应通常采用 SSE 格式,以 data: 开头;文本片段通常位于 choices[0].delta.content,并以 data: [DONE] 结束。

应用应增量拼接数据、按 SSE 事件边界解析,而不是假设一次网络读取就是一条完整事件。部分事件仅包含角色、结束原因或用量,文本字段可能不存在。

超时与重试

为应用设置适合模型响应时间的超时。遇到限流或短暂服务异常时,可采用带随机延迟的指数退避,并限制重试次数;如果有 Retry-After 响应头,应参考它。

收到部分流式内容或请求超时后,原请求可能已在上游执行。自动重试可能产生额外费用,请结合应用需求决定是否重试。

连接模型,从这里开始。