PROOF OF CONCEPT

POC 作品展示

六個獨立的概念驗證專案,涵蓋對話式 AI、即時爬蟲估價、電腦視覺與機器人控制。

6 個 POC ・ TypeScript / Python ・ 2026

01

拍賣爬蟲 × LLM 商品辨識與利潤估價

beyblade-radar

GitHub ↗

即時監控 Mercari 台灣的戰鬥陀螺商品,邊抓取邊用 LLM 辨識型號與估價, 偵測可轉售的好康並累積各型號的價格走勢,新商品秒級推播到瀏覽器。

即時抓取流程動態展示
即時抓取流程(動圖)
  • 即時爬蟲 + WebSocket 推播:每 3 秒輪詢搜尋結果,新品秒速推到前端並播放提示音。
  • LLM 型號辨識與自動估價:用 OpenRouter 從標題/描述抽取型號,計算含運費、服務費、關稅的利潤。
  • 好康優先重訪排程:獲利商品採高頻重訪(5 分內每 10 秒),秒級偵測售出狀態。
  • 價格走勢與加權成交均價:散點圖區分已售/在架,依成交速度加權估算市場清算價。
  • 型號映表管理頁:直接在 UI 編輯「型號 ↔ 名稱 ↔ 售價」,同時作為 LLM 辨識依據。

技術棧

FastAPIWebSocketaiosqliteCloakBrowser Vue 3TypeScriptViteChart.js OpenRouterPM2Cloudflare Tunnel
02

基於 YOLO 視覺辨識的遊戲自動化

msyolo ・ 學術研究用途

GitHub ↗

以 OpenCV 與自訓練 YOLOv10 為核心的影像辨識研究:螢幕擷取後做小地圖定位、 血條偵測與攻擊範圍計算,並用 BFS 在二值化地圖上規劃跳躍/爬升/行走路徑。

🔇 靜音自動播放
實際運作示範影片
  • 多模組影像分析:擷取(mss)→ 小地圖讀取 → 主畫面 ROI(YOLO + 血條)分層處理。
  • 穩定座標定位:以特定像素值取得玩家位置,於上次座標 ±15px 範圍搜尋提速。
  • 小地圖他人偵測:紅色遮罩 + 形態學開運算 + 連通元件分析,過濾尺寸並驗證中心顏色。
  • YOLOv10 怪物偵測:自訓練模型(X-AnyLabeling + SAM 2.1 標記),10–20 FPS 平衡精度與效能。
  • 血條與攻擊範圍計算:紅黑雙遮罩 + 膨脹/交集/形態學運算,推算玩家中心與可攻擊範圍。

技術棧

PythonOpenCVYOLOv10mss win32guiBFS 路徑規劃SAM 2.1

本專案為學術與技術研究用途,不公開完整程式碼以避免濫用。

03

ROS 2 練習:AI 迭代調參的自動繞圈送餐車

track_sim ・ ROS 2 Humble + Gazebo Classic 11 ・ 練習專案

練習 ROS 2 的小專案:差速驅動送餐車要在 35 cm 窄迴圈跑道自動繞圈,牽涉數十個控制參數(沿牆增益、轉角觸發距離、煞停閾值…)。 重點在做法——設計詳盡的結構化 log,讓 AI 讀執行結果、判斷問題、調整參數再重建,以這樣的迭代迴圈歷經 32 次, 把撞牆連連的初版調到連續 10 圈、753 秒、零碰撞。

🔇 靜音自動播放
Gazebo 迴圈跑道自動繞圈示範
  • AI 迭代調參迴圈:以「跑模擬 → 讀結構化 log → AI 判斷並調整參數 → colcon 重建 → 再驗證」的循環推進,docs/iteration_log.md 完整記錄 32 次每次改了哪個參數、為什麼。
  • 為調參而生的 telemetry:控制節點內建 [MODE][TURN-START/END][CRASH][BODY-COLLISION][STUCK] 等結構化 log,讓每次迭代從「用猜的」變成資料驅動。
  • 數十個可調參數:巡航速度、沿牆增益 kp_lateralkp_heading、目標離牆距離、煞停 pivot 閾值、RFID 感應半徑與 sector 角度…全用 ROS 2 parameter 宣告,可即時覆寫再試。
  • 被調的對象:光達沿牆 + RFID 轉角:右側扇區點雲做 TLS 線擬合估離牆距離/角度;rfid_reader 用 tf2 判斷是否進入轉角 tag 的 10 cm 半徑,觸發 90° 左轉。
  • 迭代學到的關鍵修正:轉彎前先 BRAKE 完全停止(殘速會走弧線撞牆)、末段改 proportional(bang-bang 過衝會累積)、光達內縮進 body(凸出會讀穿牆數據)、改用 odom 絕對航向而非 corner 附近失真的線擬合。
  • 可重現成果:spawn 隨機 ±10° yaw 下巡航 0.30 m/s,40 個轉角 / 10 圈 / 753 秒 / 零碰撞(milestone commit 記錄於 iteration_log)。

技術棧

ROS 2 HumbleGazebo Classic 11Python (rclpy) sensor_msgs/LaserScantf2diff_drive URDF / XacrocolconDev Container (WSLg)

差速驅動:兩輪各自獨立控速,靠左右輪轉速差前進與轉向,無需轉向舵機。

04

Discord 上的 AI 開發助手機器人

Noah_ipadpos_AI_dev_bot

在 Discord 透過 Claude CLI 即時操作目標專案:使用者回報問題後,Bot 自動分析、評估風險、 執行修復、編譯測試、Git 提交與服務重啟,並回報完整結果。

  • 直接修復流程:分析 → 風險評估 → 修復 → 測試 → Git 提交 → 重啟 → 報告,一條龍完成。
  • 兩階段風險評估:一般使用者強制先經唯讀分析;高風險任務需手動確認。
  • 計畫模式:先審查 AI 擬定方案再執行,適合大型修改。
  • Web UI 儀表板:左右分欄即時顯示歷史紀錄與 Docker Log。
  • Session 信任分級:依使用者信任等級決定是否復用上下文,維持對話連貫。

技術棧

TypeScriptdiscord.js v14Express 5 Claude CLIDocker ComposeVitest(325 測試)
05

政府採購標案查詢與推送機器人

Tenderbot_ts ・ LINE / Discord 雙平台

從 Python 1:1 移植至 TypeScript 的標案機器人,LINE 與 Discord 共用核心邏輯, 提供 AI 對話式搜尋、語義向量搜尋、定時推送與自動爬蟲。

🔇 靜音自動播放
標案查詢與對話示範影片
  • 雙平台統一介面:LINE 與 Discord 共用核心;設定、推送、對話歷史皆以(平台, 擁有者)為唯一鍵隔離(私訊對個人、頻道對群組)。
  • 混合搜尋引擎:FTS5 + BM25 精準比對(jieba 中文斷詞)+ text-embedding-3-small(1536 維)語義向量(sqlite-vec vec0),以 RRF(k=60)融合多路名次。
  • 兩段式重排:RRF 融合後再用真實 cosine 距離二次 re-rank,去重截斷 10 筆(各底層查詢 top-k 20)。
  • 命令式 AI 流程:純函式路由器分派四條路徑(聊天/語義搜尋/關鍵字 fallback/無結果),取代 LangGraph,全程 try/catch 降級。
  • 意圖抽取與韌性:先用 LLM(JSON mode)抽意圖與關鍵字,失敗自動退回 jieba;OpenAI 失效時全流程改走純關鍵字並附降級說明。
  • 定時推送與爬蟲:croner 兩個 job(protect + paused 防重入競態)——每小時 cheerio 爬政府採購網(Big5 解碼)同步、每分鐘比對推送,缺漏 embedding 於下輪 backfill 補齊。

技術棧

Node 20TypeScriptFastifydiscord.js v14 @line/bot-sdkbetter-sqlite3Drizzle ORMsqlite-vec (vec0) FTS5 + BM25jieba 斷詞RRF 融合text-embedding-3-small cronercheerioVitest(238 測試)
06

LINE 客服知識庫系統

Noah_AIbot2.0

基於 Claude Code CLI 的 REST API 服務,將 LINE Bot 連接知識庫文件, 提供多使用者獨立、可持續多輪對話的智能客服。

  • Claude CLI 無頭模式整合:以 cross-spawn 執行 claude -p,限制 --tools Read,Grep,Glob 只給讀取類工具、--output-format json;帶 --resume 維持多輪脈絡。
  • 知識庫即工作目錄:將 CLI 的 cwd 設為 knowledgebase/{app_id}/,由 Claude 自己用 Read/Grep/Glob 檢索目錄內 Markdown 回答——後端不做檢索、不把文件塞進 prompt。
  • 以 CLAUDE.md/README.md 當索引:每個 app 目錄用 CLAUDE.md 定義客服規則與系統提示、README.md 以表格列出各章節主題當索引,內容再分章節資料夾。
  • 多使用者獨立 Session:以(customer_id, app_id)隔離,沿用該用戶進行中對話的 sessionId;首輪回傳的 session_id 寫回 DB 供後續 --resume
  • REST API 與持久化POST /api/chat 依 app_id 解析知識庫路徑、呼叫 Claude,並以 Prisma + MySQL 保存對話與訊息。
  • 串流韌性:邊收 stdout 邊嘗試 JSON.parse,一湊成完整 JSON 就提前結束子程序,縮短回應時間。

技術棧

FastifyTypeScriptMySQL 8Prisma Claude CLIcross-spawnZodDocker Compose Swagger UIVitest(102 測試)