用 Codex 改善匯入錯誤:位置、原因及下一步

5 分鐘閱讀
用唯讀說明器整理自建匯入樣例的失敗輸出,保留原始代碼,並區分錯誤解釋與業務檔案狀態。

匯入失敗後,程式只留下一個錯誤代碼。知道失敗了,卻不知道要檢查哪一條記錄,也不知道能否直接重試。

接着預覽過期檢查的自建 JSON 庫存教學項目,這次為失敗結果加入一個唯讀說明器。它讀取失敗輸出,保留原始代碼,並為約定格式內的錯誤補充位置、原因及下一步;它本身不執行匯入、不修改輸入,也不自動重試。

從錯誤代碼到下一步

教學匯入程式可能返回:

{"ok": false, "action": "preview", "error": "batch[2].stock:invalid_range"}

說明器保留 error_code,並將已知格式整理為:匯入批次的第 2 條記錄、stock 欄位,原因是庫存值小於零;先核對該記錄,修改後重新檢查並產生新預覽。這個數字是 JSON 陣列中的記錄序號,從 1 開始,不是檔案的實際行號。

如果原檔案或批次在預覽後有變化,說明器提示核對目前輸入,再用新計劃名稱重新預覽,不執行舊計劃。遇到不認識的代碼,它保留原文、將 recognized 標為 false,不猜位置或編造修復方法。

這些錯誤識別字和解釋規則是本項目自訂的教學格式,不是 Codex 或 API 的通用錯誤規範。re.fullmatch 在這裏用來比對整個約定格式;比對失敗時不能直接讀取分組。Python 文件:re.fullmatch

交給 Codex 的任務

為自建 JSON 匯入教學項目增加唯讀錯誤說明器。
保留原始錯誤代碼;為已知格式補充來源、記錄序號、欄位、原因及下一步。
記錄序號不是檔案行號。未知格式保留原文,不猜位置或自動修復。
說明器不執行匯入、不修改輸入、不自動重試;不要據此斷言業務檔案狀態。
測試已知錯誤、未知及部分比對的格式,並核對輸入檔案有否被說明器改動。

這是一份可按項目調整的任務,並非功能保證。官方 Codex 提示指南亦建議交代期望行為、相關背景、限制及驗證方式。

下載後自行檢查

下載說明器、四份輸入樣例及驗收測試

解壓到新資料夾,在 PowerShell 中執行:

python -B test_report_errors.py
python -B report_errors.py examples/invalid-stock.json
$LASTEXITCODE
python -B report_errors.py examples/changed-store.json
python -B report_errors.py examples/changed-batch.json
python -B report_errors.py examples/unknown-synthetic.json

第一份應定位到 batch 的第 2 條記錄和 stock 欄位;未知錯誤應保留原始代碼且沒有位置。前三份輸入來自教學匯入程式的實際失敗輸出,第四份未知錯誤是人手構造的驗收夾具。下載包含教學匯入程式及樣例;要執行其提交指令時,只可使用明確可替換的測試副本。

說明器退出 0 只代表說明產生成功,不代表原匯入成功;輸入不是有效失敗物件、缺少錯誤代碼或無法讀取時,說明器退出 2。它沒有檢查業務檔案,檔案有否變化仍須獨立核實。JSON 解析及測試斷言分別參考 Python json 與 unittest。

本次驗證與範圍

2026 年 10 月 29 日,在 Windows / Python 3.13.5 完成 8 項驗收,並整理 3 份教學程式實際失敗輸出及 1 份人手構造的未知錯誤;四次整理前後,輸入結果和場景檔案均未被說明器修改。2026 年 11 月 1 日再次執行 8 項驗收;下載包的繁體版本也在解壓後另行驗證。官方資料亦於當日複查。

本例只涵蓋約定格式,沒有驗證真實庫存、任意錯誤、自動修復、效能、費用或併發安全,腳本沒有呼叫 API。教學程式碼與文章含 AI 輔助。下載包的顯示文字及說明已整理為香港繁體中文;錯誤識別字、欄位名稱及指令保留原樣。

查看 AI Coding 系列全部文章

相關文章