client-config bundle(ETag/If-None-Match;304 走缓存;owner PAT 径恒全量——按客户端声明分档只施于 app_user 令牌径,本径 platformModels 恒四键、x-tansr-client-features 为 no-op、单一 ETag)
const url = 'https://api.tansr.com/v1/client-config';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.tansr.com/v1/client-config \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”客户端可理解的可选扩展词表(逗号分隔,大小写不敏感,未知词忽略;与服务端 features 反向同形)。词表:platform-audio = 可理解 bundle 音频两面加法键(capabilities.platform.speechToText/textToSpeech、platformModels.speechToText/textToSpeech 与 media.asr/tts)。分档只施于 app_user 令牌径(十王修案 FX-A-05,分册 A S3:分档只保护已发布 .strict() 的旧 SDK,而 SDK 恒走令牌径):令牌径仅对声明者下发五键 / 四键 / 音频两面,缺头恒三键 / 两键,正文与 ETag 按档重算(响应 Vary 本头),同一客户端须在 /t1/config、/t1/handshake、/t1/heartbeat 同携同值,否则 configEtag/bundleEtag 与 bundle 异档、configStale 恒真;owner 径(AK/SK 双头 / 装置键 / PAT)恒全量、单一 ETag,本头为 no-op
Responses
Section titled “Responses”Bundle
object
配置内容指纹(T-A29 配置失效订阅;恒随内容变化翻转)
应用系统提示词;按 systemPromptPolicy 与 SDK 显式 system 选用或拼接。旧客户端忽略。
object
object
object
object
CLI 侧模型引用名(tansr/
网关路由用上游模型 ID
object
模型形态(结构化列;三级过滤:类别)
模型族(三级过滤:厂商)
Profile 标签(三级过滤:标签)
object
object
object
object
M-04 每会话裁决咨询预算(次)= 档 budgets.callBudget ?? org governance.adjudicatorCallBudget;缺席 = sdk 缺省 200
应用协议评估证据指纹(= 档 evaluation.byProtocol.app.fingerprint;AP-7 起恒指应用协议,不再是任一协议的最近指纹);SDK 与编译内应用协议指纹比对,不等仅发 adjudicator_evidence_drifted 通报,tier 仍按任命生效恒不降档(RFC-U3 任命即授照、证据不是权力);无应用协议证据恒缺键(哪怕有编码协议报告)
object
档名(呈现位;owner 径恒发,令牌径不下发——FX-A-13 消费方表 adjudicators[].name)
派生裁决链预算(maxUsd / maxCny / maxRounds / callBudget);owner 径恒发;令牌径按消费方表(R-18 首版不下发)
object
升级模式 {mode};owner 径恒发;令牌径按消费方表(R-18 首版不下发)
object
M-04 每会话裁决咨询预算(次)= 档 budgets.callBudget ?? org governance.adjudicatorCallBudget;缺席 = sdk 缺省 200
应用协议评估证据指纹(= 档 evaluation.byProtocol.app.fingerprint;AP-7 起恒指应用协议,不再是任一协议的最近指纹);SDK 与编译内应用协议指纹比对,不等仅发 adjudicator_evidence_drifted 通报,tier 仍按任命生效恒不降档(RFC-U3 任命即授照、证据不是权力);无应用协议证据恒缺键(哪怕有编码协议报告)
object
每 key 每日 in+out token 上限(UTC+8 日界);触顶 429 quota_exceeded
object
Owner 径恒在;令牌径部分父投影缺席(R4)
object
License_mode=required 且无 active license 时 true(CLI 只读化+横幅);服务端检查先于限流,平台径无离线宽限(doc/32 §5);owner 径恒在,令牌径部分父投影缺席(R4)
Org 会话保留天数(M-05):serve 治理扫描 maxAgeDays 缺省 + api /t1/sessions 活跃窗;缺席 = 30 d(SESSION_LEASE_WINDOW_DAYS);R4 起 owner / app_user 两档下发(令牌径 governance 只含本键)
object
授权图像模型集(收敛稳定序;首行 = model 缺省生效模型;空 = 平台未配置)
object
模型引用名(canonical handle;/t1/imagegen model 位可直用)
object
是否受理 size 位(false = 在场即拒,模型定档分辨率)
单请求张数帽(n 超帽由网关钳)
False = 动词行(引用既有任务),prompt 在场即拒
动词行必携 action{taskId,actionId}
授权视频模型集(收敛稳定序;首行 = model 缺省生效模型;空 = 平台未配置)
object
模型引用名(canonical handle;/t1/videogen model 位可直用)
object
是否受理 audioUrl 位
授权语音转文字模型集(收敛稳定序;首行 = model 缺省生效模型;空 = 平台未配置)
object
模型引用名(canonical handle;/t1/asr model 位可直用)
object
受理音频容器(小写扩展名词表;wav/mp3/m4a/mp4/…)
单请求音频时长帽(秒;平台缺省 600)
语种提示词表(缺席 = 上游自动检测)
是否受理 diarize:true 说话人分离(false 行在场即 400 可解释)
授权文字转语音模型集(收敛稳定序;首行 = model 缺省生效模型;空 = 平台未配置)
object
模型引用名(canonical handle;/t1/tts model 位可直用)
object
可选音色表(voice 位受理域;非表内音色 400 携本表)
object
Voice 缺席时的生效音色
产物格式受理域(‘wav’|‘mp3’;家族不受理的请求格式按首项回落)
单请求输入字符帽(计费字符口径:1 汉字计 2,其余计 1;平台缺省 2000)
用户层媒体治理段(装置键平台径开面依据):键 = 面名,面在场 ⇔ 该面对本 owner 开;全缺席整段缺席
object
object
四级(platform→org→team→user)深合并合成产物(对象逐键、数组/标量整体覆盖;X2-2 §1.2)
object
Enforce 态锁定键路径集(键级锁,上限 64/层;端側对这些 keyPath 拒下层覆盖 + 一次性示警)
逐 keyPath 生效层归因(doctor dump 归因数据源;keyPath 字典序)
object
Shadow 灰度键路径集(下发但端側只示警不生效;enforce 后移出本集)。子树闭包语义(CW5-7 端云对齐):被 shadow 胜出键等值/祖先命中的胜出键全数在集——端側按等值或祖先命中扣住即与本集恒同判
逐锁定键的锁源层归因(keyPath → 声明该锁的层;同键多层锁定取治理序最高层;keyPath 字典序)
object
object
object
诊断码(词表:effective_models_empty)
人读说明(中文;运维/末端提示用)
Example
{ "app": { "platform": "desktop" }, "systemPromptPolicy": "fallback", "models": [ { "protocol": "openai_chat" } ], "aliasOrigins": { "main": "explicit", "fast": "explicit" }, "adjudicator": { "tier": "low" }, "adjudicators": [ { "tier": "low" } ], "contextScheme": { "stage": "production" }, "governance": { "licenseStatus": "none" }, "platformModels": { "videoGen": [ { "constraints": { "durations": { "kind": "set" } } } ], "textToSpeech": [ { "outputHosting": "domestic" } ] }, "media": { "imagegen": { "enabled": true }, "videogen": { "enabled": true }, "asr": { "enabled": true }, "tts": { "enabled": true } }, "orgMemory": { "mode": "allow" }, "plan": { "tier": "test", "status": "active", "lapsedFrom": "test" }}未变
本文是否有帮助?
感谢反馈,我们会持续改进这篇文章。