(個人專案)AI 工作數據分析儀表板

目錄

  • 一、技術一覽

  • 二、開發功能特色介紹

  • 三、技術詳細說明(AI、後端、前端)



一、技術一覽

  • 前端:Vue3, ElementPlus, Tailwind, Axios, Echarts, Vite, Pinia, etc
  • 後端:Laravel, Inertia, Sanctum, Socialite, Cloud-BigQuery, etc
  • 資料庫:Mysql, Redis
  • 爬蟲:Requests, UserAgent, BS4, RequestProxy, etc.
  • AI:Python, OpenAI API
  • 環境:Docker(Nginx)
  • 版控:Git

設計規範:

  • 後端:以 PSR1, PSR2 為主
  • 前端:JavaScript Standard Style
  • 資料爬取&分析:遵循 PEP 8 (Python Enhancement Proposal 8) 風格


二、開發功能特色介紹


職缺資料統計:

  • ✅ 職缺均薪&中位數 => 提供中位數,避免均值因極端值浮動大。
  • ✅ 各城市均薪(長條圖) => 各地區分析,避免單一地區薪資高而導致其它縣市薪水被拉高
  • ✅ 產業薪水分佈(四分位圖) => 協助分析各產業的薪資潛力,例如同為軟體工程師,出版業與金融業的薪資必然不一致。
  • ✅ 職缺產業別佔比(圓餅圖) => 評估產業與職缺的正相關或負相關
  • ✅ 職缺地區佔比(圓餅圖) => 各地區職缺佔比
  • 🚧 AI 統計摘要分析(尚未完成)



AI 智能匹配:

  • ✅ 輸入任意「情境文字」, AI 提供自動匹配工作(如下圖,根據情境透過向量計算取得符合度)(已完成)
  • 🚧 提供模板條件(例如當前年資、期待職缺、升職希望等),並由 AI 進行自動匹配(尚未完成)
  • 🚧 提供簡易履歷 AI 健檢服務(尚未完成)

下圖範例為查找「福利優渥工作」的概況:



三、技術詳細說明(AI、後端、前端)

【AI】

  1. 實作 Proxy pools & Crontab 日爬取職缺資料。
  2. 清洗&分析資料(這邊不一一列舉處理細節,相關技能歡迎查閱資料工程(for 廣告流量)(點我前往查看詳情)這篇文章。
  3. 整合 ChatGPT API,透過 Embedding 實作特定句子查詢指定職缺(與 AI 有關的作品包含):
  1. 增加 Sentry 確保每支 Python Processes 的正確運行,否則會寄信通知。



【後端】

  1. 使用 Inertia 讓前端與後端共用 同一 router。
  2. 三層式架構(Repository, Service, Controller) & 封裝(eg: 根據需求納入不同的設計模式、Service container 實現DI。)
  3. Laravel-permission 快速實作 RBAC。(在 middleware 來辨別 Role,沒有對應 Role 則無法使用。)
  4. 完成單元測試&整合測試(>80%), DB 另有建立一個 測試DB 來進行資料CRUD的測試( EDC(點我查看詳細) 使用 Mock,而非 測試DB)。
  5. 透過 Commands 實作部分排程程式&Log資訊記錄。
  6. 資安防護(eg: 保護 Cookie 安全(增加 httpOnly, sameSite),其餘 XSS, CSRF, Sql injection 現代框架都已提供基本防護則僅確保程式碼無大礙,無特別進行處理)。



【前端】

  1. 各 UI 組件模組化(eg:各類統計圖表、頁面的Card, etc.)。
  2. 封裝常用功能(eg: Axios, 權限, API, etc.)。
  3. Vite 配置。
  4. 部分採 Typescript 開發(因為先前使用Js,尚未全部改寫)。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器