龍騰 AI 非選批閱平台 開發者文件中心
維運與疑難排解

批閱失敗與重新排程

failed 的判定條件、識別失敗作答的方式,以及在 Studio 重新排程的後續影響

一筆作答的終態為 failed,代表本服務未能完成批閱:批閱逾時、內部錯誤,或作答中的 image 節點在批閱時抓不到圖。這類作答沒有批閱結果

這與「AI 判定該作答為零分」是兩回事。未作答或內容涉及敏感的作答,都會得到一筆完成的零分批閱結果,作答狀態為 completed。詳見 outcome 判定

作答狀態是否有批閱結果復原方式
源於學生作答(空白、敏感內容)completed有,0 分覆核
源於服務故障(逾時、內部錯誤)failed沒有在 Studio 重新排程

失敗的作答沒有批閱結果,因此無法對它進行覆核,兩條復原路徑也因此分開。

識別失敗的作答

即時:訂閱 response.grading_failed 事件,payload 帶有 {response_id, submission_id, question_ref, error}error.code 通常為 ERR_TIMEOUTERR_INTERNAL

事後:讀取提交並檢查 summary.failed;該值不為 0 時 summary.total_score 會是 null

const { data: submission } = await get(`/submissions/${id}`);

if (submission.summary.failed > 0) {
  const failed = submission.responses.filter((r) => r.status === 'failed');
  // failed 的作答不帶 evaluation,也不帶 eta
}

提交的 status 不會因個別作答失敗而變為 failed,它仍然是 completed。 判斷是否有項目出錯應查看 summary.failed

重新排程

重新排程請於 Studio 的提交頁面中,對該筆失敗的作答執行。本操作沒有對應的 API 端點,客戶端無法以程式呼叫。

失敗代表是本服務未能完成該次批閱,且可能需要人為判斷或修正,例如作答內容中的圖片網址失效、或該筆作答持續無法處理。

客戶端建議訂閱 response.grading_failed 事件,或定期檢查 summary.failed

重新排程產生的仍是 version 1

由於失敗的作答原本就沒有批閱結果,重新執行所產生的仍是 version 1,與原本那次嘗試應產生的結果相同。

AI 永遠不會重新批閱一筆已存在的批閱結果。 本服務沒有重新觸發 AI 批閱的功能,重新排程也不屬於該類操作,它補上的是一次從未成功完成的批閱。

對父提交的影響

作答回到 pending,父提交因而回到 processing,待所有作答再次到達終態後重新完成。

已完成過的提交會再次遞送 submission.completed 事件,並附上重新計算的 summary。消費端對此事件應具備冪等性,依 event_id 去重、依 sequence 排序,即可正確處理重新排程所產生的第二次完成通知。

每次重新排程都會連同執行者一併寫入稽核紀錄。

重新排程與重新提交的適用情形

重新排程適用於單筆作答的服務故障,這是常見情形。

重新提交適用於整筆提交 failed 的情況;該狀態代表提交層級的失敗(例如批閱從未派送成功),沒有可重新排程的作答,summary 也不存在。

作答內容本身需要更改時同樣須重新提交。提交不可變更,作答亦不能修改,要更換作答請建立一筆新的提交並配發新的冪等鍵。

重排前請先檢查作答中是否有圖片。 若作答含有 image 節點,請先確認該網址已恢復可公開存取。 這是唯一一種需要先行處理才會成功的失敗原因,重排本身不會讓失效的連結恢復。

其餘情形請聯絡 support@terathinker.com,並附上 request_id 與該筆作答的 resp_ id。

相關

本頁內容