iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
自我挑戰組

與AI搶奪意識ing系列 第 12

Celery、RabbitMQ、Celery Beat 從排程到自動化的遐想?

  • 分享至 

  • xImage
  •  

這幾天有陸續研究自動排程。就腦洞大開的想,這不就是一個自動化寫程式的開始嘛!!!?

所以我就問了XD

Q:Celery、RabbitMQ、Celery Beat 排程到自動化,是不是也可以拿來變成讓AI自己寫code?
A:可以拿來「自動化 AI 產生與測試程式碼的流程」,但不是Celery/RabbitMQ/Celery Beat本身在寫程式;它們是排程與任務佇列,用來把「叫模型生程式碼→存檔→跑測試→開PR→通知人工審查」這整套流程自動化與穩定化。

怎麼組成一個「AI 自動寫 Code」管線

觸發器
手動:HTTP API、CLI。
定時:Celery Beat 例如每天 02:00 跑「重構一段程式」或「補測試」。
事件:Git push 後觸發(Webhook)。

任務佇列與執行
Celery + RabbitMQ:排隊「產生程式碼」「跑測試」「靜態分析」「開PR」等任務。
多個 Celery worker(Docker 容器)並行處理,避免卡住。

AI 產生程式碼
工作流程把需求(issue 描述、檔案片段、測試失敗訊息)餵給 Code LLM(如透過 API)。
生成 patch/檔案後寫入暫存分支。

驗證與守門
自動跑:單元測試、lint、型別檢查、SAST。
不通過就回饋錯誤訊息,再丟回「重新嘗試」任務(有上限,避免無限迴圈)。
通過後自動開 Pull Request,標記需要人工審查。

人機協作
Reviewer 決定是否合併;Celery 只協助把流程跑完。

必要的安全與實務重點
沙盒執行:生成或修改的程式碼跑測試時務必在 Docker/Firejail,限制檔案、網路、CPU、記憶體與執行時間。
憑證管理:切勿讓模型直接讀到私密金鑰;以最小權限的機器人帳號推分支/開PR。
回饋循環:把測試錯誤訊息(精簡後)回饋給模型,提升修復成功率。
重試與停止條件:設定重試上限、超時、熔斷策略,避免卡死。
審查關卡:自動化最多到「準備好 PR」;合併仍建議人工審核。
資料脫敏:上傳到外部模型前要脫敏或使用自家/私有化部署的模型。

可搭配的元件
版本庫:GitHub/GitLab API(建議搭配保護分支規則與必跑檢查)。
測試/CI:pytest、mypy、ruff/eslint、SAST;也可由 Celery 觸發 GitHub Actions 或 Jenkins。
代理框架(可選):LangChain、AutoGen、OpenAI Assistants 等,用於多步驟規劃與工具使用。
任務觀測:Flower 或 Prometheus + Grafana 監控 Celery 佇列與失敗率。

結論
可以:Celery/RabbitMQ/Celery Beat 很適合把「AI 產生→驗證→提案」自動化並排程化。
但需要:外部的「會寫程式的模型」、完善的測試與安全機制、以及人工審查。
把它想成「生產線與交通管制」,AI 才是「寫程式的工人」,測試與審查是「品質控管」。

接下來就來試試看吧!!!!


上一篇
ER 圖(Entity-Relationship Diagram,實體關係圖)」
系列文
與AI搶奪意識ing12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言