Responses API
curl --request POST \
--url https://api.senseaudio.cn/v1/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "senseaudio-s2",
"input": [
{
"type": "message",
"role": "user",
"content": "请解释一下什么是闭包。"
}
],
"stream": false
}
'import requests
url = "https://api.senseaudio.cn/v1/responses"
payload = {
"model": "senseaudio-s2",
"input": [
{
"type": "message",
"role": "user",
"content": "请解释一下什么是闭包。"
}
],
"stream": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'senseaudio-s2',
input: [{type: 'message', role: 'user', content: '请解释一下什么是闭包。'}],
stream: false
})
};
fetch('https://api.senseaudio.cn/v1/responses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.senseaudio.cn/v1/responses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'senseaudio-s2',
'input' => [
[
'type' => 'message',
'role' => 'user',
'content' => '请解释一下什么是闭包。'
]
],
'stream' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.senseaudio.cn/v1/responses"
payload := strings.NewReader("{\n \"model\": \"senseaudio-s2\",\n \"input\": [\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": \"请解释一下什么是闭包。\"\n }\n ],\n \"stream\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.senseaudio.cn/v1/responses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"senseaudio-s2\",\n \"input\": [\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": \"请解释一下什么是闭包。\"\n }\n ],\n \"stream\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.senseaudio.cn/v1/responses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"senseaudio-s2\",\n \"input\": [\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": \"请解释一下什么是闭包。\"\n }\n ],\n \"stream\": false\n}"
response = http.request(request)
puts response.read_body{
"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
}
}文本生成
模型响应 (Responses) API
通用模型生成接口,支持结构化输入输出与复杂推理控制
POST
/
v1
/
responses
Responses API
curl --request POST \
--url https://api.senseaudio.cn/v1/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "senseaudio-s2",
"input": [
{
"type": "message",
"role": "user",
"content": "请解释一下什么是闭包。"
}
],
"stream": false
}
'import requests
url = "https://api.senseaudio.cn/v1/responses"
payload = {
"model": "senseaudio-s2",
"input": [
{
"type": "message",
"role": "user",
"content": "请解释一下什么是闭包。"
}
],
"stream": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'senseaudio-s2',
input: [{type: 'message', role: 'user', content: '请解释一下什么是闭包。'}],
stream: false
})
};
fetch('https://api.senseaudio.cn/v1/responses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.senseaudio.cn/v1/responses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'senseaudio-s2',
'input' => [
[
'type' => 'message',
'role' => 'user',
'content' => '请解释一下什么是闭包。'
]
],
'stream' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.senseaudio.cn/v1/responses"
payload := strings.NewReader("{\n \"model\": \"senseaudio-s2\",\n \"input\": [\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": \"请解释一下什么是闭包。\"\n }\n ],\n \"stream\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.senseaudio.cn/v1/responses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"senseaudio-s2\",\n \"input\": [\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": \"请解释一下什么是闭包。\"\n }\n ],\n \"stream\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.senseaudio.cn/v1/responses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"senseaudio-s2\",\n \"input\": [\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": \"请解释一下什么是闭包。\"\n }\n ],\n \"stream\": false\n}"
response = http.request(request)
puts response.read_body{
"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
}
}说明
通用模型生成接口,支持结构化输入输出,适用于更底层、更复杂的逻辑控制与推理场景。- 接口地址:
POST https://api.senseaudio.cn/v1/responses - Content-Type:
application/json - 鉴权方式:Bearer Token,详见 快速接入
- 流式输出:
stream: true以 SSE 协议逐块返回;收到data: [DONE]标识流结束 - 模型列表:见 模型列表
- 计费:按输入 / 输出 token 计费,详见 计费说明
Authorizations
string
必填
Bearer 鉴权头,格式为
Bearer SENSEAUDIO_API_KEY。Body
application/jsonenum<string>
默认值:"senseaudio-s2"
必填
用于补全你提示词的模型。可用选项:
senseaudio-s2,senseaudio-s2-flash,senseaudio-s2-lite,sensenova-6.8-flash-lite,deepseek-v4.1-flash,deepseek-v4-flash-0731,glm-5.3-flash,qwen3.8-27b,qwen3.6-35b-a3b示例:"senseaudio-s2"string | object[]
必填
输入内容。字符串视为一条纯文本用户消息;数组则是包含多个输入元素的列表。
显示 数组元素类型
显示 数组元素类型
string
元素类型:
message / input_text / input_image / function_call / function_call_output。string
仅
message:发送者角色(system / user / assistant)。string | object[]
仅
message:文本或多模态对象数组。string
仅
input_text:文本内容。string
仅
input_image:图片 URL 或 base64 (data URL)。string
仅
input_image:low / high / auto。string
仅
function_call:工具函数名。string
仅
function_call / function_call_output:调用的唯一 ID。string
仅
function_call:JSON 格式的函数参数。string
仅
function_call_output:工具执行后返回的输出结果。object[]
string | object
默认值:"auto"
控制模型调用工具的行为:
none / auto / required,或指定函数对象。boolean
默认值:"false"
是否开启 SSE 流式返回。
number
默认值:"1.0"
采样温度,范围
[0.0, 2.0]。number
默认值:"1.0"
核采样概率阈值,范围
[0.0, 1.0]。integer
限制生成的最大 token 数量。
object
输出格式:
{type: 'json_object'}(强制 JSON)或 {type: 'json_schema', json_schema: {...}}(结构化输出)。Response
200 — application/json
string
本次响应的唯一标识符。
string
对象类型,固定为
"response"。integer
响应创建的 Unix 时间戳(秒)。
string
实际响应的模型名称。
string
请求状态:
completed / in_progress / incomplete。object
模型生成的核心内容对象。
显示 child attributes
显示 child attributes
流式响应示例
开启stream: true 时,SSE 协议逐块返回,数据块前缀 data: :
data: {"object":"response.chunk","output":{"content":"闭包"}}
data: {"object":"response.chunk","output":{"content":"是指那些..."}}
data: [DONE]
output 字段:content(文本片段)/ arguments(工具调用参数片段)。
错误处理
object
相关指南
授权
格式:Bearer <API_KEY>
请求体
application/json
字段推断自素材文档
调用的模型名称,请以模型列表为准。
可用选项:
senseaudio-s2, senseaudio-s2-flash, senseaudio-s2-lite, sensenova-6.8-flash-lite, deepseek-v4.1-flash, deepseek-v4-flash-0731, glm-5.3-flash, qwen3.8-27b, qwen3.6-35b-a3b 示例:
"senseaudio-s2"
字符串或消息数组
示例:
"你是一个严谨的人工智能助手。"
示例:
false
示例:
1024