iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
AI & Data

ML/DL實作-「營養抗老」專題製作系列 第 15

Day 15_AI 模型整合(ONNX Runtime)

  • 分享至 

  • xImage
  •  

🎯 目標

在 mySpringbootmall 專案中,整合 ONNX Runtime,支援 小型模型推論

提供 API /api/recommendations/ai,回傳模型排序結果

保持相容性:若無模型,仍可 fallback 到規則評分

🛠 工作項目
1) 環境與依賴

pom.xml 加入 ONNX Runtime Java 依賴:

模型檔:resources/models/recommender.onnx
(Day 14 先用 mock/tiny 模型,E001/E002 測試即可)

2) Service 層整合

建立 AiRecommendationService:

載入 ONNX 模型

將 food/evidence 特徵轉換為向量

呼叫 OrtSession.run(inputs)

回傳排序後的清單
3) Controller API

/api/recommendations/ai?effectId=E001

流程:

先用 EvidenceDao 抓出 raw 列表

丟給 AiRecommendationService.rerank()

回傳排序後的結果

4) 測試計畫

單元測試

確認 AiRecommendationService 可以載入模型(mock 模型返回固定分數)

整合測試

GET /api/recommendations/ai?effectId=E001 → JSON 包含 score 欄位

GET /api/recommendations/ai?effectId=E002 → 順序應和規則版不同(模擬模型排序效果)

✅ 驗收標準

pom.xml 可成功編譯 ONNX Runtime

/api/recommendations/ai 可回傳分數 (score)

無模型或發生錯誤時 → fallback 到規則版

測試 API:
📦 交付物

src/main/java/com/grace/mySpringbootmall/service/AiRecommendationService.java

src/main/java/com/grace/mySpringbootmall/controller/AiRecommendationController.java

src/main/resources/models/recommender.onnx(假模型,可用隨機分數代替)

更新後的 pom.xml

上一篇
Day 14_前後端 API 完善與部署前驗收
下一篇
Day 16_封版、部署與 Demo(HF Spaces/本機 Docker)
系列文
ML/DL實作-「營養抗老」專題製作18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言