Respan: Span-01
Span-01 是 Respan 的文字行為分類器,適用於對話與 AI 代理執行軌跡。以白話定義行為後,它會為每一項行為回傳三種機率:存在、不存在與無法觀察;當所提供的執行軌跡無法判定問題時,它會保留其中的不確定性。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
Span-01 是 Respan 的行為評分模型,適用於對話與 AI 代理執行軌跡。它讀取一段文字互動以及以白話撰寫的行為定義,並為每項定義回傳機率。輸出會區分某項行為在所提供的執行軌跡中是存在、不存在,還是無法觀察。如此一來,評估工作流程取得的是一個數值訊號,並能明確表示證據不足的情況,而不是一段需要再解析的生成說明。
定義你想觀察的行為
行為由呼叫端提供。提示注入、無根據的主張、機密外洩、重複迴圈、工具誤用與使用者挫折感,都是可行的定義範例,而不是模型內建的固定分類體系。請說明哪些情況算是該行為、哪些不算。範圍明確的定義可以區分使用者要求轉接真人與單純表達失望;另一項定義則可以區分助理承認問題,與承諾執行它其實做不到的動作。
請為各項定義搭配穩定的識別碼,讓結果始終與被評估的行為相對應。讓判斷準則聚焦在執行軌跡能夠呈現的內容上。如果該行為需要來源文件、工具結果或之後的客戶回應,請將這些證據放進文字互動中的適當位置。單憑定義本身,無法證實執行軌跡中不存在的事實。
準備先前的上下文與目標對話輪次
文件所載的輸入格式將 span.input 中的先前訊息與 span.output 中的目標輪次分開。每則訊息的內容都是字串。請提供實際的對話上下文與要評分的輪次,並保留解讀時所需的發言者角色與順序。這是一個文字評分模型設定;事先整理好的文件文字或逐字稿可以作為證據,但取得這些文字所依據的媒體本身並不屬於文件所載的輸入。
若是客服互動,請將客戶的請求與助理擬定的回覆放在一起。若是會使用工具的 AI 代理,請保留相關的工具觀察結果,以及依據該結果所做出的回答。舉例來說,一項有關依據是否充分的定義,可以詢問助理是否斷言了所提供的觀察結果無法支持的結論。有用的結果只涉及該片段中已定義的行為,而不是對整個應用程式的完整診斷。
解讀每項定義的三種機率
每筆結果都包含行為識別碼,以及 p_present、p_absent 與 p_not_observable。三種機率的總和約為 1。存在表示估計該行為已發生;不存在表示估計該行為未發生;無法觀察則表示估計所提供的片段缺乏做出判斷所需的證據。這三者意義各不相同,解讀結果時也應分開看待。
例如,一段以助理表示會解決問題作結的片段,可能顯示出一項承諾;但如果其中沒有客戶的回覆,就還無法顯示客戶接受了最終的解決方案。請將這種缺乏證據的結果視為未知,而不是轉換成不存在。當機率分布中有相當比例屬於無法觀察時,較低的存在機率並不自動構成「不存在」的有力證據。
一次處理即完成所有行為定義的評分
Respan 將 Span-01 描述為一種推理分類器:先以 RLAIF 針對通用分類進行訓練,再專門針對行為偵測加以強化。每項定義都會在同一段執行軌跡上以平行分支的方式執行,模型在一次前向傳遞中回傳各行為的機率。混合注意力機制讓它能處理冗長而複雜的執行軌跡。它不會生成 token、不會撰寫敘述性判斷,也不會為其分類產生自由形式的解釋。
概念指南與評分參考文件中,都沒有規定每次請求的行為數量上限。但每項定義仍然是所提交評估的一部分,因此請讓每項定義都清楚且相關,而不要把沒有數量上限當成輸入容量無限的證據。結果會依請求順序為每項行為提供一筆項目,並以其 id 識別。多項定義代表多個獨立的觀察,而不是在各行為之間總和必須為 1 的互斥類別選擇。
準備實用的評估成果
請在模型之外,將回傳的機率與針對任務設定的門檻值及審查規則結合使用。開發商建議使用已標註的對話來選定這些門檻值,並檢查存在值處於臨界或無法觀察值偏高的結果。客服工作流程可以分別記錄挫折感、提議的升級處理與無根據的承諾。AI 代理品質工作流程則可以追蹤重複的動作,或回應是否運用了可取得的證據。
請將文字片段、行為定義、結果識別碼與完整的三向分布一併保存。當定義改變時,請意識到機率所衡量的內容也隨之改變。對照實際對話來審查看似錯誤的結果,而不是把數值結果當成某個未被觀察到之事件的證明。實用的成果是一份與執行軌跡及判斷準則綁定的行為紀錄,並保留不確定性,以供日後檢查或作為應用程式下一步決策的依據。
Ailoot Ultra · System One POST /v1/systemone respan/span-01
respan/span-01入門
Span-01 是 Respan 的文字行為分類器,適用於對話與 AI 代理執行軌跡。以白話定義行為後,它會為每一項行為回傳三種機率:存在、不存在與無法觀察;當所提供的執行軌跡無法判定問題時,它會保留其中的不確定性。
- 接受的輸入
- 文字
- 結果
- decisions
Ailoot 可用 · 輸入與方法
Ailoot Ultra · System One POST /v1/systemone
- 輸入
text- 輸出
decisions- 輸出格式
- json
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 respan/span-01 | 預設值— |
欄位provider | 類型schema | 要求選填 | 值與限制 | 預設值— |
欄位questions | 類型object | 要求必填 | 值與限制 | 預設值— |
欄位session_id | 類型string | 要求選填 | 值與限制 | 預設值— |
欄位state | 類型schema | 要求必填 | 值與限制 | 預設值— |
欄位trace | 類型schema | 要求選填 | 值與限制 | 預設值— |
欄位user | 類型string | 要求選填 | 值與限制 | 預設值— |
欄位questions.<id>.type | 類型string | 要求必填 | 值與限制 noul, choice, score | 預設值— |
欄位questions.<id>.instructions | 類型string|object|array | 要求必填 | 值與限制 | 預設值— |
欄位questions.<id>.criteria | 類型object|array | 要求選填 | 值與限制 條件: choice/score:必填;noul:選填。choice 的條件為物件;score 為陣列,並要求 minItems1。 | 預設值— |
欄位questions.<id>.criteria.true | 類型string|object|array | 要求必填 | 值與限制 適用條件: 已提供 noul criteria 物件 | 預設值— |
欄位questions.<id>.criteria.false | 類型string|object|array | 要求必填 | 值與限制 適用條件: 已提供 noul criteria 物件 | 預設值— |
輸入素材組合
noul · 必填: state, questions.<id>.type=noul, questions.<id>.instructions
choice · 必填: state, questions.<id>.type=choice, questions.<id>.instructions, criteria object
score · 必填: state, questions.<id>.type=score, questions.<id>.instructions, criteria array with minItems1
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, state, questions |
參數material_types | 規格text |
參數optional_controls | 規格provider, session_id, trace, user |
參數multimodal_input_binding | 規格null |
生命週期: synchronous
請傳送完全相符的模型 ID,並保留完整的原生回應。
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 未指定 選取快速模式時
- flex 模式
- 未指定 選取 flex 模式時
- 最高推理強度
- 未指定 最高推理強度採用 default 調整值時
Ailoot 費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 上下文 Token 數大於 | 上下文 Token 數小於或等於 | 費用 |
|---|---|---|---|---|
| 設定詞元基本費率 | 費率表基本費率 | 上下文 Token 數大於— | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token $0.00004 / 1K Token 輸出 · 輸出 Token $0 / 1K Token 輸入 · 讀取快取 — / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定請求長度級距 1 | 費率表— | 上下文 Token 數大於0 | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token $0.00004 / 1K Token 輸出 · 輸出 Token $0 / 1K Token 輸入 · 讀取快取 — / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · System One
{
"model": "respan/span-01",
"questions": {
"is_bug": {
"criteria": {
"false": "The customer is asking a question or requesting a feature.",
"true": "The customer describes broken or unexpected product behavior."
},
"instructions": "Is the customer reporting a software defect?",
"type": "noul"
},
"team": {
"criteria": {
"account": "Login, permissions, or profile issues.",
"frontend": "Rendering, layout, or browser compatibility issues.",
"payments": "Checkout, billing, or payment processing issues."
},
"instructions": "Which team should own this ticket?",
"type": "choice"
},
"urgency": {
"criteria": [
"Can wait for the next release",
"Should be fixed this week",
"Blocking revenue right now"
],
"instructions": "How urgent is this ticket?",
"type": "score"
}
},
"state": {
"customer_tier": "enterprise",
"ticket": "My checkout page shows a blank screen after I click Pay. I have tried two browsers."
}
}set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_REQUEST_FILE:?Set your actual JSON request file}"
export AILOOT_REQUEST_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads(Path(os.environ['AILOOT_REQUEST_FILE']).read_text(encoding='utf-8'))
if not isinstance(p,dict): raise SystemExit('Request must be a JSON object')
p['model']='respan/span-01'
Path('request.json').write_text(json.dumps(p,ensure_ascii=False),encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path('result.json').read_text()),ensure_ascii=False,indent=2))
PY_RESULT
接收並儲存結果
Ailoot Ultra · System One
json
保留所有已完成的結果
請保留所有完整傳回的回應、檔案與內容區塊。
會保留每個已提供的問題 ID 答案,包括其確切型別、noul/choice/score 值、信心值、機率與圖例。完整的原始 JSON 會先儲存,並僅在結算後回傳。
需要檢查原始回應時
請保留原始操作與完整/部分回覆;切勿重送 POST。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位model | 類型string |
欄位id | 類型string |
欄位provider | 類型string |
欄位answers.<id>.type | 類型string |
欄位answers.<id>.noul | 類型number |
欄位answers.<id>.choice | 類型string |
欄位answers.<id>.score | 類型number |
欄位answers.<id>.confidence | 類型number |
欄位answers.<id>.probabilities | 類型object |
欄位answers.<id>.legend | 類型object |
欄位usage.input_tokens | 類型integer |
欄位usage.output_tokens | 類型integer |
欄位usage.cost | 類型number |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件必要欄位、表示方式或值無效 | 下一步請修正指出的請求欄位。 |
別名
模型別名
Ailoot Ultra respan/span-01
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · Respan: Span-01
- 可以使用哪些輸入與結果?
POST /v1/systemone·respan/span-01:text→decisions- 請求使用哪些欄位?
POST /v1/systemone·respan/span-01:model,provider,questions,session_id,state,trace,user