SubLaneSubLane

用量分配計量與結算

比例預算、固定上限、重置週期與待處理用量。

首次配置請看用量分配。一條規則屬於一個工作空間內的專用資源群組;規則存在期間,池內帳號保持固定。普通成員需要資源群組直授,並建立綁定該規則的個人 Key。普通 Key 不會自動轉換;同一成員綁定該規則的多把 Key 共用帳本。

按總預算比例分配

按比例支援每日/每月總預算,或最多八個時長視窗的各別總預算。成員百分比合計不超過 100%,並套用到每個所選視窗。可選 Token 或內部 USD 作為計量依據:

  • **按 Token 比例:**總量以 M Token 填入。請求回報的輸入加輸出 Token 計入成員份額;快取輸入已包含在輸入中,不重複計算。
  • **依金額比例:**總量為內部 USD。請求的輸入、快取輸入和輸出以規則版本保存的模型價格折算。這些價格不代表供應商對訂閱的實際扣額規則。

成員在每個視窗的上限等於該視窗總預算乘以百分比,向下取整至最小計量單位。例如 100 萬 Token 的 25% 是 25 萬。正份額取整為零時拒絕儲存;未分配比例與取整餘額不會自動借出。准入同時檢查成員與資源群組總預算,包含已離開成員的消費;不按池內訂閱帳號分開重置。

這些都是內部預算:填寫的 Token 總量不是訂閱帳號的真實容量,內部 USD 也不是現金餘額或帳單。 SubLane 仍檢查上游額度;上游可能先於內部預算耗盡。

按時間窗口分配金額限額

按時間視窗是獨立的分配類型。最多八項條件,每項使用整數小時/天數(1 小時至 365 天)及統一內部 USD 上限。每位成員各自記帳,並可覆寫個別條件;此類上限留空表示該條件不限量,仍記錄用量,但不施加額度或風險暫占限制。每條已結算請求按儲存價格計價一次,同時計入所有視窗;任一有限額條件耗盡或暫占到達邊界時,暫緩新請求。

時長視窗從生效時起各自按固定時長更新。五小時視窗重置不會清除七天用量;這不是滾動回看限額,也不跟隨上游訂閱重置。實例時區只影響顯示,不改變視窗時長。

成員調整與排程

「調整目前成員」可即時修改份額或個人上限,保留已用量與已放行請求的暫占。增加額度須符合所有目前共享視窗的預算;移除後重新加入不會清空用量。例如總預算 100、A 已用 40,A/B/C 各 33 需要 106,會被拒絕;40/30/30 可以成立。自然重置後仍須重新校驗全部視窗,不能用普通排程繞過缺口。

預算、視窗預設上限與價格在既有排程,或目前計畫的下一個邊界生效;多視窗使用目前最長視窗的下一邊界。修改保留錨點、視窗邊界及已用量;短視窗可能尚未結束,降低上限可能使其耗盡。新價格不重算舊請求。

普通預算/價格編輯原樣保留已儲存的成員段,即使有人已不在目前有權限的名單中。保留配置不會恢復存取權;新增成員和新的結構替換仍須通過目前權限校驗。

若下一版本存在獨立的成員計畫,即時成員調整會發生衝突,須先明確處理或取消該排程;其他相容的預算/價格排程會保留。背景刷新不會把新版本條件附到舊草稿上,遇到衝突請用「重新整理並核對」。

更改單位、分配類型或重置計畫須確認真正的結構替換。規則、資源群組與 Key 的 ID 保留,新計量錨點等於排程生效時刻。僅改成員或價格不能要求新週期。

「順延至下個邊界」只移到已儲存生效時刻之後嚴格的下一自然邊界;使用目前計畫,首次生效前則使用初始排程的計畫。核對服務端時刻後確認;條件過期或變化會回傳衝突,不會自動再順延。

「取消排程變更」必須已有目前有效版本。僅有初始排程時不可取消,可暫停或改期;初始改期在同一交易內完整替換。暫停不取消或推遲生效,也不刪除可讀配置;初始版本之後生效仍維持禁止存取。

首次生效前,初始成員配置可經完整編輯器(PATCH /api/allocations/{id})修正。須提交已核對的版本對及生效時間,保留原排程和計量錨點,並重新校驗目標成員的資源群組權限。僅限沒有目前版本、也沒有已記錄請求的初始排程。版本、資訊與稽核在同一交易提交;失敗或跨過生效時刻全部回滾,初始排程仍不可取消。

已批准的下一版本相對目前版本確有結構差異時,即使草稿沿用下一版本的結構,仍提供既有的新週期確認入口。再次確認後可修改該排程的目標成員。普通預算/價格編輯不必重新確認,保留原成員與錨點;取消此可選確認會恢復顯示並提交已儲存的成員方案。替換目標仍須相對目前版本存在真正結構差異。

金額類別分配(「按金額」「按金額比例」「按時間窗口」)儲存規則版本時,會讀取專用資源群組支援的模型並自動回填目錄價格。手動提交的價格不能覆蓋此快照。若某模型缺少當前目錄價格,優先沿用規則中已有的價格;新發現且完全無價的模型不會進入快照,其請求在有價格的新版本生效前無法使用此分配。價格覆蓋提示在讀取規則時根據目前狀態計算,不寫入不可變版本:目錄補價後「目錄缺價」提示會自動消失,但尚未進入規則價格快照的模型仍會提示管理員重新儲存規則。帳號模型目錄暫不可用時,會保留已有價格並提示,恢復發現後提示消失。只有完全沒有可用價格時才無法儲存;若既未載入價格目錄、也無已儲存的價格緩存,新建金額類規則無法完成,請先刷新目錄或提供價格後備檔案。

模型尚未進入已儲存價格時,管理員提示會顯示現在儲存預計何時生效。時間視窗規則依目前最長視窗的下一邊界計算,反覆儲存不會立即補價;已有排程則顯示其既定時間,並提示若未以修正版替換,生效後模型仍會被拒絕。

固定上限與待處理用量

「按 Token」直接設定成員 Token 上限;「以金額」直接設定內部 USD 上限。計量方法分別與對應的比例依據相同。

可信最終用量直接結算,不等待上游百分比。缺少最終總量的請求保留待修正,部分計數可見但不扣帳、不占額。進行中請求按准入時捕獲的成員上限,在每個有限視窗暫占 10%(至少一個最小單位);後續編輯不改變它。每個有限視窗內,同一成員最多四條本視窗請求同時進行,共享預算還檢查整組暴露量。結束即釋放暫占。單次已放行請求仍可能超額,未知用量也使暴露量不完整,屬於軟限制。先顯示最新 256 條待處理記錄,修正後更早記錄會再出現。計量使用排隊後成功准入的時刻,診斷耗時仍從到達時計算。

對於 Codex 流,客戶端斷開後 SubLane 最多再讀取上游 3 秒,以取得可信賴的最終用量。若失敗終結事件仍提供完整用量,也可據此扣帳。連續上游失敗會使對應帳號暫時冷卻;正常結束但缺少最終用量的請求僅保留為待處理,不會使帳號冷卻。若記帳寫入暫時失敗,SubLane 會重試該請求的結算;受影響成員的新額度請求須待結算恢復,其他成員可繼續使用。

每日/每月規則使用實例時區的指定時分及日期;缺少的月日取當月最後一天,預設每日 00:00 或每月 1 日 00:00。普通編輯保留計量錨點。暫停或撤銷權限立即阻止後續請求與 WebSocket 回合,但保留歷史。上游刷新、重置卡、重新授權與重新啟動不補充本地預算。

新建時間視窗規則時若選擇「從下個週期開始」,則在最長條件的時長過後生效。

查看餘額與修正

成員在「用量」查看自己的餘額;工作空間管理員在「用量分配 → 查看用量」查看整條規則。所有已配置時間視窗歸在同一成員下,分別顯示上限、已用、剩餘、風險暫佔和重置時刻;成員狀態取限制最嚴格的條件。金額餘額顯示內部 USD 和回報 Token;Token 餘額使用 M,1 M = 100 万 Token。個人報告不揭露訂閱帳號身分。

餘額把已用(已結算用量)與本週期的進行中、待確認用量分開顯示。暫時暫佔量只來自進行中的請求;待確認記錄繼續顯示以便修正,不計入已用額度,也不會佔用放行餘裕。放行餘裕包含自動風險緩衝,不是額外可消費額度。因此,即使實際剩餘為正,當下一次請求所需暫佔量超過放行餘量,或已有四條請求進行中時,也會顯示「新請求暫緩」。狀態與網關使用同一套本週期風險判斷;請求結束後,狀態會隨下一次刷新變化。當前週期以外的待處理記錄仍可修正,也不會暫停本週期放行。

待處理條目無法自動解決時,管理員可依據可信任證據填寫輸入、輸出和快取輸入 Token 總數。修正沿用請求保存的計量規則,並寫入稽核記錄。不要把缺失用量當成零,也不要填寫猜測的數量。

工作空間管理員透過 /api/allocations 管理規則;成員透過 /api/me/allocations 查看個人餘額。 Key 建立時用 scheme_id 綁定規則。另見工作空間和個人 API Key。

API 寫入條件

讀取保留既有回應結構,新增 write_conditions,提供可為 null 的 expected_current_revision_id 與 expected_next_revision_id。修改已有規則必須同時提交兩欄,包含完整 PATCH、成員、取消/改期及結構替換。缺失或過期回傳 HTTP 409,不會修改配置;請重新核對,勿取新 ID 自動重放舊草稿。獨立啟停與按請求修正用量沿用原契約。

未來版本寫入還須確認服務端提供的 UTC 秒時間戳 expected_effective_at;結構替換另需 confirm_replacement=true。POST /api/allocations/{id}/preview 接受 schedule、reschedule 或 replace。成員更新使用 POST /api/allocations/{id}/members,排程操作使用 POST /api/allocations/{id}/cancel、POST /api/allocations/{id}/reschedule;完整儲存不能更改啟停,請用 POST /api/allocations/{id}/enabled。

首次建立不帶時間條件時保留舊的立即/延遲行為;主動攜帶 expected_effective_at 時須使用 start_next=true。日曆開始須符合下一邊界;時長開始須在未來且距服務端目前時間不超過最長時長。明確 null 回傳缺少條件的 409,非法格式回傳 400,過期或變化回傳 409。POST /api/allocations/preview 只提供初始時刻,不建立規則;確認失敗不回退為無條件建立。