Skip to content

falltwo/AI-Risk-Based-Inventory-ERP

Repository files navigation

AI-Risk-Based-Inventory-ERP

tests

治理優先的 AI Agent 進銷存系統 —— 讓 AI 助理能實際操作 ERP(查庫存、開訂單、評估供應鏈風險),同時把每一個 AI 自主行動納入「可控、可審批、可稽核」的治理鏈。

這套系統解決什麼問題

企業導入 AI Agent 最大的顧慮不是能力,是控制:AI 建議可以參考,但讓 AI 直接改庫存、開訂單,誰來把關?出了問題怎麼追?

本系統的回答是一條完整的治理鏈:

  • AI 的每一次工具呼叫都經過統一的 Tool Gateway(白名單、角色權限、風險分級)
  • 會改動資料的操作一律先攔截、送人工審批,核准後才執行
  • 全程寫入稽核紀錄(派工決策、工具呼叫、審批流程三層)
  • 審批狀態如實揭露 —— 系統層保證回覆不會宣稱未執行的操作已完成

核心特性

特性 說明
總管 Agent 派工 自然語言任務由 LLM 語意路由到專責 Agent,跨領域任務自動串接多個 Agent 並彙整
8 個專責 Agent 庫存、採購、銷售、財務、人資、ESG、供應鏈風險、客服 —— 各自僅持有職責內的工具白名單
Tool Gateway 30 個 ERP 工具的唯一入口:檢查工具存在 → Agent 白名單 → 角色權限 → 風險分級
四級風險分級 read_only / suggestion 直接執行;write / dangerous 攔截送審批
人工審批流程 待審批清單、核准 / 拒絕(附原因)、沖銷與重試,皆於 Dashboard 操作
三層稽核紀錄 派工決策(誰派給誰、為什麼)、工具呼叫(誰用了什麼、結果)、審批歷程(誰核准了什麼)
審批狀態揭露 操作被攔下時,回覆由系統層強制附上審批單號與「尚未執行」告示,不依賴 LLM 自律
多供應商容錯 LLM 供應商掉線自動依序切換備援模型(LiteLLM,一行設定換模型)
供應鏈風險分析 外部新聞情資 → 風險熱圖 → 受影響採購單 → 替代建議
雙入口 Web(Streamlit)與 LINE Bot 共用同一套 Gateway 與審批規則

系統架構

圖像版

目前系統架構圖

AI 風險控管進銷存 ERP 系統架構圖

AI 任務治理標準流程圖

目前 ERP 的 AI 任務治理流程圖

文字版

使用者(Web / LINE)
      │  自然語言任務
      ▼
總管 Agent ─── 語意路由:判斷派給哪個專責 Agent(派工紀錄落庫)
      ▼
8 個專責 Agent ─── 各自僅能使用白名單內的工具
      │  tool call
      ▼
Tool Gateway ─── 白名單 → 角色權限 → 風險分級(呼叫紀錄落庫)
      ├── read_only / suggestion ──→ 直接執行
      └── write / dangerous ──→ 待審批 ──→ 人工核准 ──→ 執行(審批歷程落庫)
      ▼
SQLite(業務資料 + 三層稽核紀錄)

治理邊界:治理鏈的對象是「AI Agent 的自主行動」。傳統的人工操作表單(手動開單、記帳、維護主檔)由登入者的角色權限(RBAC)管理,操作者本人即決策者,不重複進審批。

快速開始

# 1. 環境(Python 3.11+)
python -m venv .venv
.venv/Scripts/activate        # Windows;macOS/Linux 用 source .venv/bin/activate
pip install -r requirements.txt

# 2. 設定模型(.env)
cp .env.example .env
#    LLM_MODEL=gemini/gemini-2.5-flash   ← 填你的供應商/模型與對應金鑰

# 3. 啟動
streamlit run app.py

登入後左側選單進入「AI 智能助理」即可用自然語言操作;「Agent Dashboard」檢視派工、稽核與待審批。

測試帳號(示範資料):admin/admin(管理者)、wh1/wh1(倉管)、sales1/sales1(業務)、hr1/hr1(人資)。

LINE Bot(選用)

# .env 需另設 LINE_CHANNEL_ACCESS_TOKEN / LINE_CHANNEL_SECRET / GEMINI_API_KEY
python "line bot/bot_server.py"    # FastAPI 於 :8000,webhook 需公開網址(如 ngrok)

設定一覽

環境變數 用途 預設
LLM_MODEL 主模型(LiteLLM 格式 provider/model),AI 助理與分析頁共用 gemini/gemini-2.5-flash
LLM_FALLBACK_MODELS 備援模型(逗號分隔,主模型失敗時依序切換) openai/kimi-k2.6,gemini/gemini-2.5-flash
LLM_ANALYSIS_MODEL 分析副任務別名(選填;新聞歸類/翻譯可指到較便宜模型) 未設=用主模型鏈
OPENAI_API_KEY / OPENAI_API_BASE OpenAI 相容供應商的金鑰與端點
GEMINI_API_KEY Gemini 金鑰(選 gemini 系模型時)
GNEWS_API_KEY 供應鏈新聞來源(選用)
ERP_DB_PATH 資料庫路徑(企業可指定既有 .db) data/erp.db
LINE_CHANNEL_ACCESS_TOKEN / LINE_CHANNEL_SECRET LINE Bot 憑證(選用)

測試

pip install -r requirements-dev.txt
python -m pytest tests/ -v

測試涵蓋治理關鍵路徑:審批狀態揭露、彙整層治理訊號保留、供應商容錯切換。CI 於每個 PR 自動執行。

技術組成

Python 3.11 · Streamlit · SQLite · LiteLLM(多供應商模型層)· FastAPI + LINE Messaging API · Plotly

開發中

  • 稽核紀錄雜湊鏈(防篡改驗證)與寫入交易邊界
  • LINE 入口最小權限角色
  • 治理效益量化儀表板(決策時間、攔截率、可追溯率)
  • 敏感欄位遮罩與密碼雜湊

About

An AI-powered ERP system for smart inventory management and risk prediction.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages