一句話:本卡屬 FR-100(記錄卡 CM-1820),第 1 棒:退役沒人用的翻譯端點
POST /api/1.0/translate(94 行)。四方查證皆確認無呼叫者。純刪除,不改任何還活著的功能。可與 FR-099 第 2 棒平行——兩者零檔案重疊。
系統裡有一支呼叫 OpenAI 做翻譯的 API。首腦查過四個地方——前端、端到端測試、主程式自己、資料庫的選單表——沒有任何一個地方在用它。它就是當初做了但沒接上,一直放到現在。
這一棒把它刪掉。刪完使用者完全感覺不到差別(本來就沒人進得去),系統少一支沒人維護卻對外開著的端點。
① 前端 api.js 連常數都沒有——不像意見回饋有 FEEDBACKS/FEEDBACK 等五個常數登記在 src/config/api/api.js。前端要打一支 API 必須先有常數,沒有常數等於沒有入口。
② 前端全 repo 搜 translate 零命中(排除干擾後):只有 CSS 的 translateY/translateX、BPMN 套件自己的 translate() 函式(views/flow-template/bpmn/)、以及兩份 error-code.json 裡的孤兒字串 TRANSLATE_500001。
③ 🔴 DB public.ui_routes 零命中——這張表是「使用者實際看得到什麼」的真相來源(欄位 name/url/enable,DEV 現況 43 開啟/12 關閉)。沒有任何選單項指向翻譯功能。
④ e2e repo 零呼叫(~/Projects/Billows/Audit-Manager/compliance-manager-test/):搜出來的全是 training 素材裡 mermaid.min.js 的壓縮碼與 CSS transform,沒有任何 feature/step 打這支端點。
⑤ 主專案內部零呼叫:唯一提到它的是 docs/api/translate/generate_docx.py(自動產生 API 文件的腳本),那是文件產生器不是呼叫者。
主專案 compliance-manager-be:
api/translate/ 整個目錄刪除(94 行,5 檔)
├ __init__.py Blueprint,1 條 add_resource
├ routes/translate_route.py TranslateRoute + OpenAI 呼叫
├ routes/__init__.py
├ serializers/translate.py TranslateRequest / TranslateResponse
└ serializers/__init__.py
config/app_modules.py REGISTERED_APPS 移除 "translate" 一列
common/code/error_code.py TRANSLATE_500001(查是否只有 translate 用)
前端 compliance-manager-fe:
src/config/locales/i18n/zh-tw/error-code.json:374 孤兒字串 TRANSLATE_500001
src/config/locales/i18n/en/error-code.json:373 同上
不要拔 openai 這支相依(pyproject.toml:40 的 openai (>=2.8.1,<3.0.0))。首腦實查:AI Dashboard 也在用——jedi-ai-dashboard/jedi_ai_dashboard/infra/ai_client/openai_client.py:38 有 from openai import OpenAI,jedi-common/jedi_common/utils/gen_comment.py:27 也 import 它。拔掉會讓 AI 儀表板的 OpenAI 模型整組壞掉。
不要清 OPENAI_API_KEY 環境變數(.env.sample:142)。同上理由——AI Dashboard 的 spec 明寫它是三個 AI 金鑰之一(docs/spec-site/current/reporting/ai-dashboard.md:196:未設會擋 AI_DASHBOARD_400001)。
⚠️ 這兩點推翻了記錄卡 CM-1820 上「退役時一併拔 openai 相依、清 OPENAI_API_KEY」的初步判斷——那是開記錄卡當下未查套件層寫的,以本卡為準。
不要動 docs/api/translate/(API 文件與 generate_docx.py)。那是歷史文件,退役不等於抹掉它存在過。若要處理屬另一件事。
不要順手清別的看起來沒人用的端點。本卡只退役 translate 一支。
步驟 1:先確認 TRANSLATE_500001 這個 error code 只有 translate 在用(grep -rn TRANSLATE_500001 主專案)。只有它用才連同刪;若別處也用就留著,並在回寫說明。