> ## Documentation Index
> Fetch the complete documentation index at: https://docs.senseaudio.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 模型响应 (Responses) API

> 通用模型生成接口，支持结构化输入输出与复杂推理控制

## 说明

通用模型生成接口，支持结构化输入输出，适用于更底层、更复杂的逻辑控制与推理场景。

* **接口地址**：`POST https://api.senseaudio.cn/v1/responses`
* **Content-Type**：`application/json`
* **鉴权方式**：Bearer Token，详见 [快速接入](/guides/account/quick-access)
* **流式输出**：`stream: true` 以 SSE 协议逐块返回；收到 `data: [DONE]` 标识流结束
* **模型列表**：见 [模型列表](/guides/account/model-list)
* **计费**：按输入 / 输出 token 计费，详见 [计费说明](/guides/account/billing)

## Authorizations

<ParamField header="Authorization" type="string" required>
  Bearer 鉴权头，格式为 `Bearer SENSEAUDIO_API_KEY`。
</ParamField>

## Body

<Note>`application/json`</Note>

<ParamField body="model" type="enum<string>" default="senseaudio-s2" required>
  用于补全你提示词的模型。

  可用选项：`deepseek-v4-flash`，`deepseek-v4-pro`，`doubao-seed-2-0-pro-260215`，`glm-5.1`，`glm-5.2`，`kimi-k2.6`，`minimax-m2.7`，`qwen3.6-27b`，`qwen3.6-35b-a3b`，`senseaudio-s2`，`senseaudio-s1`，`senseaudio-s2-flash`，`senseaudio-s2-lite`，`senseaudio-vl-1.0-260319`，`senseaudio-vl-lite-1.0-260319`，`sensenova-6.7-flash-lite`

  示例：`"senseaudio-s2"`
</ParamField>

<ParamField body="input" type="string | object[]" required>
  输入内容。字符串视为一条纯文本用户消息；数组则是包含多个输入元素的列表。

  <Expandable title="数组元素类型">
    <ParamField body="input[].type" type="string">
      元素类型：`message` / `input_text` / `input_image` / `function_call` / `function_call_output`。
    </ParamField>

    <ParamField body="input[].role" type="string">
      仅 `message`：发送者角色（`system` / `user` / `assistant`）。
    </ParamField>

    <ParamField body="input[].content" type="string | object[]">
      仅 `message`：文本或多模态对象数组。
    </ParamField>

    <ParamField body="input[].text" type="string">
      仅 `input_text`：文本内容。
    </ParamField>

    <ParamField body="input[].image_url" type="string">
      仅 `input_image`：图片 URL 或 base64 (data URL)。
    </ParamField>

    <ParamField body="input[].detail" type="string">
      仅 `input_image`：`low` / `high` / `auto`。
    </ParamField>

    <ParamField body="input[].name" type="string">
      仅 `function_call`：工具函数名。
    </ParamField>

    <ParamField body="input[].call_id" type="string">
      仅 `function_call` / `function_call_output`：调用的唯一 ID。
    </ParamField>

    <ParamField body="input[].arguments" type="string">
      仅 `function_call`：JSON 格式的函数参数。
    </ParamField>

    <ParamField body="input[].output" type="string">
      仅 `function_call_output`：工具执行后返回的输出结果。
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="tools" type="object[]">
  模型可调用的工具列表。

  <Expandable title="child attributes">
    <ParamField body="tools.type" type="string" required>
      工具类型。当前为 `"function"`。
    </ParamField>

    <ParamField body="tools.function" type="object" required>
      函数工具定义对象，包含 `name`、`description`、`parameters`（JSON Schema）。
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="tool_choice" type="string | object" default="auto">
  控制模型调用工具的行为：`none` / `auto` / `required`，或指定函数对象。
</ParamField>

<ParamField body="stream" type="boolean" default="false">
  是否开启 SSE 流式返回。
</ParamField>

<ParamField body="temperature" type="number" default="1.0">
  采样温度，范围 `[0.0, 2.0]`。
</ParamField>

<ParamField body="top_p" type="number" default="1.0">
  核采样概率阈值，范围 `[0.0, 1.0]`。
</ParamField>

<ParamField body="max_tokens" type="integer">
  限制生成的最大 token 数量。
</ParamField>

<ParamField body="response_format" type="object">
  输出格式：`{type: 'json_object'}`（强制 JSON）或 `{type: 'json_schema', json_schema: {...}}`（结构化输出）。
</ParamField>

## Response

`200` — `application/json`

<ResponseField name="id" type="string">
  本次响应的唯一标识符。
</ResponseField>

<ResponseField name="object" type="string">
  对象类型，固定为 `"response"`。
</ResponseField>

<ResponseField name="created" type="integer">
  响应创建的 Unix 时间戳（秒）。
</ResponseField>

<ResponseField name="model" type="string">
  实际响应的模型名称。
</ResponseField>

<ResponseField name="status" type="string">
  请求状态：`completed` / `in_progress` / `incomplete`。
</ResponseField>

<ResponseField name="output" type="object">
  模型生成的核心内容对象。

  <Expandable title="child attributes">
    <ResponseField name="output.type" type="string">
      输出类别：`message` / `function_call` / `reasoning`。
    </ResponseField>

    <ResponseField name="output.role" type="string">
      仅 `message` 时存在，始终为 `"assistant"`。
    </ResponseField>

    <ResponseField name="output.content" type="string | object[]">
      仅 `message` 时存在，生成的回复内容。
    </ResponseField>

    <ResponseField name="output.name" type="string">
      仅 `function_call` 时存在，模型决定调用的目标函数名。
    </ResponseField>

    <ResponseField name="output.arguments" type="string">
      仅 `function_call` 时存在，生成的函数参数（JSON 字符串）。
    </ResponseField>

    <ResponseField name="output.call_id" type="string">
      仅 `function_call` 时存在，生成的唯一调用标识符。
    </ResponseField>

    <ResponseField name="output.summary" type="string[]">
      仅 `reasoning` 时存在，内部思维链推进过程的文本数组。
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="usage" type="object">
  Token 消耗统计。

  <Expandable title="child attributes">
    <ResponseField name="usage.input_tokens" type="integer">
      提示内容消耗。
    </ResponseField>

    <ResponseField name="usage.output_tokens" type="integer">
      生成结果消耗。
    </ResponseField>

    <ResponseField name="usage.total_tokens" type="integer">
      总消耗统计。
    </ResponseField>
  </Expandable>
</ResponseField>

## 流式响应示例

开启 `stream: true` 时，SSE 协议逐块返回，数据块前缀 `data: `：

```text theme={null}
data: {"object":"response.chunk","output":{"content":"闭包"}}

data: {"object":"response.chunk","output":{"content":"是指那些..."}}

data: [DONE]
```

流式 `output` 字段：`content`（文本片段）/ `arguments`（工具调用参数片段）。

## 错误处理

<ResponseField name="error" type="object">
  错误对象。

  <Expandable title="child attributes">
    <ResponseField name="error.message" type="string">错误详细描述。</ResponseField>
    <ResponseField name="error.type" type="string">错误类型（如 `invalid_request_error`）。</ResponseField>
    <ResponseField name="error.code" type="string">内部错误代码。</ResponseField>
    <ResponseField name="error.param" type="string">导致错误的对应参数名。</ResponseField>
  </Expandable>
</ResponseField>

## 相关指南

* [文本生成介绍](/guides/llm/overview)
* [对话 (Chat) API](/api-reference/endpoint/llm/chat)
* [消息 (Messages)](/api-reference/endpoint/llm/messages)
* [计费说明](/guides/account/billing)


## OpenAPI

````yaml api-reference/endpoint/llm/responses.openapi.json POST /v1/responses
openapi: 3.1.0
info:
  title: SenseAudio - Responses API
  version: 1.0.0
servers:
  - url: https://api.senseaudio.cn
    description: 生产环境
security:
  - bearerAuth: []
paths:
  /v1/responses:
    post:
      tags:
        - LLM
      summary: Responses API
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResponsesRequest'
            example:
              model: senseaudio-s2
              input:
                - type: message
                  role: user
                  content: 请解释一下什么是闭包。
              stream: false
      responses:
        '200':
          description: 成功
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsesResponse'
              example:
                id: resp_abc123
                object: response
                created: 1700000000
                model: senseaudio-s2
                status: completed
                output:
                  type: message
                  role: assistant
                  content: 闭包是指那些能够访问自由变量的函数...
                usage:
                  input_tokens: 51
                  output_tokens: 149
                  total_tokens: 200
components:
  schemas:
    ResponsesRequest:
      type: object
      description: 字段推断自素材文档
      required:
        - model
        - input
      properties:
        model:
          type: string
          description: 调用的模型名称，请以模型列表为准。
          enum:
            - deepseek-v4-flash
            - deepseek-v4-pro
            - doubao-seed-2-0-pro-260215
            - glm-5.1
            - glm-5.2
            - kimi-k2.6
            - minimax-m2.7
            - qwen3.6-27b
            - qwen3.6-35b-a3b
            - senseaudio-s2
            - senseaudio-s1
            - senseaudio-s2-flash
            - senseaudio-s2-lite
            - senseaudio-vl-1.0-260319
            - senseaudio-vl-lite-1.0-260319
            - sensenova-6.7-flash-lite
          default: senseaudio-s2
          example: senseaudio-s2
        input:
          description: 字符串或消息数组
        instructions:
          type: string
          example: 你是一个严谨的人工智能助手。
        stream:
          type: boolean
          example: false
        max_output_tokens:
          type: integer
          example: 1024
    ResponsesResponse:
      type: object
      description: 字段推断自素材文档
      properties:
        id:
          type: string
        object:
          type: string
        output:
          type: array
          items:
            type: object
        usage:
          type: object
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API_KEY
      description: 格式：`Bearer <API_KEY>`

````