使用私有逻辑缓存绑定执行原 TWP 请求
const url = 'https://api.tansr.com/t1/cache/v1/exchange';const options = { method: 'POST', headers: { 'x-tansr-app-token': '<x-tansr-app-token>', 'Content-Type': 'application/vnd.tansr.cache-exchange.v1' }, body: 'binary'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.tansr.com/t1/cache/v1/exchange \ --header 'Content-Type: application/vnd.tansr.cache-exchange.v1' \ --header 'x-tansr-app-token: <x-tansr-app-token>' \ --data binary仅接受 app_user 短期令牌。Content-Type 必须逐字为 application/vnd.tansr.cache-exchange.v1,不允许查询串、Content-Encoding 或附加 MIME 参数。metadata 使用严格控制 JSON;原 TWP 字节保持原协议。受理与原资金预留同事务,确认提交后才调用供应商。相同完整帧身份只读重放原结果;已受理或事务未知不会再次执行,返回 result_unknown 或现有 TWP 冲突响应。已完成但原结果不可用也不会重新执行。SSE 沿用原 t.* 事件和流内终局错误语义;禁止自动回退旧 exchange。默认关闭时返回旧 not_found。
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”原始字节帧:4 字节无符号大端整数指定 metadata 的 UTF-8 字节数,后接严格 JSON metadata,再接未经改写的原 TWP JSON 字节。metadata 最多 65536 字节;TWP 为 1..33554432 字节。长度、SHA-256 和 runtimeSessionId 必须与实际 TWP 相符。
Responses
Section titled “Responses”原 TWP JSON 结果,或原 t.* SSE 流;stream 由原 TWP 请求决定。
object
服务端签发(= x-tansr-request-id)
账套内 handle(回显)
object
非缓存输入段(不含缓存读/写命中;差价计费的全价段)
输出 token
缓存读命中段(上游未报恒 0;按价目 cacheRPerM 差价计费,未配缓存价回落全价)
缓存写段(anthropic 系 cache_creation;上游未报恒 0)
DECIMAL 字符串(实结)
DECIMAL 字符串(台账终审余额)
本次计量为服务端保守估算(上游缺报/断链补账);实报行键缺席
长尾计量维度桶(token/次数等整数量);仅非零桶携带;键词表见维度注册表;obs_ 前缀 = 观测位(不参与计费)
object
本次请求缓存净省费(DECIMAL 串,= readSaved − writePremium;销售四列快照直算)
Example
{ "blocks": [ { "t": "text", "cacheable": true } ], "usage": { "estimatedReason": "upstream_usage_missing" }, "stop": "end"}原 TWP t.* 事件流;沿用 src/contract/twp.ts 的事件合同。
Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
原 TWP 请求仍在处理中。
object
客户端幂等键回显(twp = meta.requestId;compat = idempotency-key 头)
建议重试间隔(毫秒;末端可自定退避)
Example
{ "status": "in_progress"}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
Invalid_request 或 protocol_version_mismatch
object
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "protocol": "sdk2-cache-v1", "code": "invalid_request", "retryAction": "none", "fallback": "none"}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
Unauthorized
object
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "protocol": "sdk2-cache-v1", "code": "invalid_request", "retryAction": "none", "fallback": "none"}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
原 TWP 资金或供应商错误,保持原错误合同。
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
Forbidden
object
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "protocol": "sdk2-cache-v1", "code": "invalid_request", "retryAction": "none", "fallback": "none"}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
未启用缓存 exchange。
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
Stale_revision、stale_generation、request_id_conflict 或 projection_stale
object
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "protocol": "sdk2-cache-v1", "code": "invalid_request", "retryAction": "none", "fallback": "none"}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
Ticket_expired、mapping_expired 或 receipt_expired
object
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "protocol": "sdk2-cache-v1", "code": "invalid_request", "retryAction": "none", "fallback": "none"}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
Payload_too_large
object
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "protocol": "sdk2-cache-v1", "code": "invalid_request", "retryAction": "none", "fallback": "none"}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
Unsupported_capability
object
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "protocol": "sdk2-cache-v1", "code": "invalid_request", "retryAction": "none", "fallback": "none"}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
Capacity_exceeded
object
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "protocol": "sdk2-cache-v1", "code": "invalid_request", "retryAction": "none", "fallback": "none"}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
原 TWP 资金或供应商错误,保持原错误合同。
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
原 TWP 资金或供应商错误,保持原错误合同。
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
Epoch_unavailable、mapping_unavailable 或 result_unknown;未知结果不得自动重新执行或回退旧接口。
object
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "protocol": "sdk2-cache-v1", "code": "invalid_request", "retryAction": "none", "fallback": "none"}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
原 TWP 资金或供应商错误,保持原错误合同。
object
object
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}Headers
Section titled “Headers”禁止缓存绑定、票据、状态及模型响应。
本文是否有帮助?
感谢反馈,我们会持续改进这篇文章。