Mark Ku's Blog
首頁 關於我
用 AI Agent + LangChain 打造基於大語言模型的自然語言 BI 報表系統
用 AI Agent + LangChain 打造基於大語言模型的自然語言 BI 報表系統
Mark Ku
Mark Ku
February 06, 2026
2 min

前言

身為工程師,最常被同事問:「幫我查一下這個報表」、「上個月的業績數字是多少?」每次都要停下手邊工作,寫程式去資料庫撈資料,其實蠻花時間的。

於是我想:能不能讓 AI 來幫忙做這件事?

想像一下,你只要用「說話」的方式告訴電腦:「幫我找出所有付費客戶的名單」,AI 就會自動幫你去資料庫查資料、整理成報表,不需要會寫程式,一般人也能輕鬆使用!

這篇文章會分享我如何利用大語言模型(LLM) 快速打造出這樣的智慧報表系統。一個上午就能完成雛形架構,後續再根據實際使用情況微調優化即可。

這套系統怎麼運作?

簡單來說,整個流程就像這樣:

你說的話 → AI 翻譯成電腦看得懂的指令 → 資料庫回傳結果 → 顯示報表

舉個例子:

  • 你輸入:「列出所有付費用戶,包含公司名稱和到期日」
  • AI 會自動把這句話轉換成資料庫查詢指令
  • 系統執行查詢,把結果用漂亮的表格呈現給你

P.S. 以前靠傳統程式撰寫,要花很多時間的,現在可以透過AI 很快速的產生SQL 語言及報表結構。

┌──────────────────────────────────────────────────────────────┐
│                      系統運作流程                             │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│   👤 使用者在後台輸入                                               │
│   「列出所有付費用戶,包含公司名稱、方案類型、到期日」              │
│        │                                                     │
│        ▼                                                     │
│   ┌─────────────────────────────────────────────┐            │
│   │           🤖 AI 智慧助手 (LangChain)        │            │
│   │  ┌───────────────────────────────────────┐  │            │
│   │  │  📚 內建知識                           │  │            │
│   │  │  - 知道公司的業務規則                   │  │            │
│   │  │  - 知道哪些資料不能查                   │  │            │
│   │  │  - 知道如何保護機密資料                 │  │            │
│   │  └───────────────────────────────────────┘  │            │
│   └─────────────────────────────────────────────┘            │
│        │                                                     │
│        ▼                                                     │
│   ┌─────────────────┐    ┌─────────────────┐                 │
│   │  翻譯成查詢指令  │ →  │  安全檢查       │                 │
│   └─────────────────┘    └─────────────────┘                 │
│        │                         │                           │
│        ▼                         ▼                           │
│   ┌─────────────────────────────────────────────┐            │
│   │              📊 資料庫                       │            │
│   └─────────────────────────────────────────────┘            │
│                                                              │
└──────────────────────────────────────────────────────────────┘

我用了哪些工具?

工具名稱功能為什麼選它
Next.js網站開發框架前端後端都能處理,開發快速
LangChainAI 助手框架現成的資料庫查詢功能,直接用
Gemini 2.0 FlashAI 大腦Google 的 AI 模型,便宜又快
TypeORM資料庫連線工具安全連線 Azure 資料庫
Tailwind CSS網頁美化工具手機電腦都好看

AI 大腦在這系統中做什麼?

在這套系統中,AI(大語言模型) 就像是一位「超級翻譯員」,負責把你說的話翻譯成電腦看得懂的資料庫指令。

AI 的工作是什麼?

┌─────────────────────────────────────────────────────────────────┐
│                    AI 在系統中的角色                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  你說的話                       電腦指令                         │
│  ┌─────────────────┐           ┌─────────────────────────────┐  │
│  │ 「列出所有      │    AI     │ SELECT TOP 1000             │  │
│  │   付費用戶」    │   ───→    │   公司名稱, 方案類型         │  │
│  │                 │   翻譯    │ FROM 用戶資料表...           │  │
│  └─────────────────┘           └─────────────────────────────┘  │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

AI 需要先學會三件事

  1. 認識資料庫結構

    • 資料庫裡有哪些表格?每個表格存什麼資料?
    • 表格之間有什麼關聯?(例如:客戶資料表和訂單表的關係)
  2. 理解公司的業務規則

    • 什麼叫做「付費用戶」?(有綁定信用卡且沒有取消的用戶)
    • 什麼是「測試帳號」?要怎麼排除?
  3. 遵守安全規則

    • 哪些操作是禁止的?(不能刪除資料、不能修改資料)
    • 哪些資料不能查?(密碼、金鑰等機密資料)

為什麼選 Gemini 2.0 Flash?

市面上有很多 AI 模型,我選 Google 的 Gemini 2.0 Flash 是因為:

模型優點缺點適合場景
GPT-4o思考能力強比較貴複雜的分析任務
Claude 3.5處理長文件厲害使用限制較多文件整理
Gemini 2.0 Flash便宜、速度快複雜推理稍弱報表查詢(本案使用)

對於報表查詢這種「有標準格式」的任務,Gemini 2.0 Flash 的性價比最高:

  • 超級便宜 - 用一整個月大概只要台幣 50 元
  • 回應快速 - 1-2 秒就能生成查詢指令
  • 翻譯準確 - 對資料庫查詢語法理解很到位

告訴 AI「你是誰」

我們需要事先告訴 AI 它的角色和規則,就像新員工入職時要先了解公司規定:

const AI助手設定 = `
## 你的身份
你是公司的資料分析專家,專門幫大家查報表資料。

## 你必須遵守的規則
1. 只能「查詢」資料,不能新增、修改或刪除
2. 每次最多查 1000 筆資料
3. 已刪除的資料不要顯示
4. 密碼等機密欄位不能查

## 你知道的業務規則
- 付費用戶 = 有綁信用卡 且 沒有取消訂閱
- 測試帳號 = 信箱包含「xxx」的帳號
`;

這樣設計的好處是:

  • 行為可控 - AI 不會做出危險的事
  • 結果一致 - 每次查詢都會套用相同的規則
  • 容易調整 - 想加新規則只要改這段設定

不能 100% 信任 AI:三層防護機制

雖然 AI 很聰明,但我們不能完全相信它。萬一有人故意輸入惡意指令怎麼辦?所以系統設計了三道防線

┌─────────────────────────────────────────────────────────────────┐
│                       三層安全防護                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  第一層:事先告訴 AI 規則                                        │
│  ────────────────────────                                       │
│  告訴 AI「你只能做什麼」                                         │
│  → 80% 的危險操作在這裡就被擋住                                  │
│                                                                 │
│  第二層:程式碼再檢查一次                                        │
│  ────────────────────────                                       │
│  AI 產生的指令,程式會再檢查一遍                                  │
│  → 就算 AI 被騙了,程式碼也會把危險指令擋下來                     │
│                                                                 │
│  第三層:資料庫權限限制                                          │
│  ────────────────────────                                       │
│  資料庫帳號只有「讀取」權限,根本不能改資料                        │
│  → 最後一道防線,確保資料安全                                    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

我的技術選型

開發這套系統時,我選了 Next.js 這個網頁全端開發框架 (React + Node )

好處 1:所有程式碼放在一起

傳統做法是前端、後端分開兩個專案,但 Next.js 可以全部放在一起:

我的專案/
├── src/
│   ├── app/              # 使用者看到的網頁畫面
│   │   └── reports/
│   │       └── page.tsx
│   ├── app/api/          # 處理資料的後台程式
│   │   └── reports/
│   │       └── route.ts
│   └── lib/              # 共用的工具程式
│       └── langchain-sql.ts

這樣做的好處:

  • AI 助手更容易幫忙 - 像 Cursor、Copilot 這類 AI 工具,模型的 Context 長度都有限制,程式都在同個專案中,對於AI會比較容易了解這系統
  • 程式碼可以共用 - 寫一次就能前後端都用
  • 改一個地方馬上生效 - 不用切來切去

好處 2:直接整合 AI 套件

LangChain 是一個專門用來打造 AI 應用的套件,剛好有 Node 版本,可以直接在 Next.js 裡使用:

// 簡單幾行程式碼就能讓 AI 幫忙查資料庫
const ai = new ChatVertexAI({ model: 'gemini-2.0-flash-001' });
const 資料庫 = await SqlDatabase.fromDataSourceParams({ appDataSource });
const AI助手 = await createSqlAgent(ai, new SqlToolkit(資料庫, ai));

const 結果 = await AI助手.invoke({ input: '列出付費用戶' });

好處 3:網頁自動適應各種螢幕大小

Tailwind CSS 這個樣式工具,可以輕鬆讓網頁在手機、平板、電腦上都好看:

// 手機一欄、平板兩欄、電腦三欄
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">

P.S. Next.js 採用的是 request-based 的生命週期,每次請求都是獨立執行,因此不適合用來處理長時間的 Job 或大量、複雜的運算任務,這類需求建議交由 Background Worker / Job Queue 來負責。 以避免影響請求效能與整體系統穩定性。

另外,花小錢買現成模板,省大時間

為了加速開發,我買了一個現成的後台模板(Isomorphic),價格約 台幣 800 元

免費模板 vs 付費模板

市面上也有免費的 shadcn-ui,它其實很棒:

  • 創辦人在知名公司 Vercel 工作
  • GitHub 上有超過 10 萬人按讚

但實際差異在於「省不省時間」:

比較免費模板付費模板
整合時間要自己慢慢調整直接就能用
穩定度要自己測試已經被很多人測試過
遇到問題機率較高機率較低
價格免費約 800 元

這筆錢值不值得?

┌─────────────────────────────────────────────────────────────┐
│  投資報酬分析                                                │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  模板成本:  約台幣 800 元                                    │
│                                                             │
│  省下的時間:  至少 2 週                                      │
│    - 網頁畫面開發                                           │
│    - 手機平板電腦都要顧到                                    │
│    - 各種瀏覽器測試                                         │
│    - 搜尋引擎優化設定                                       │
│                                                             │
│  結論:  2 週工程師薪水 遠大於 800 元 → 超值!                │
│                                                             │
└─────────────────────────────────────────────────────────────┘

模板已經幫你做好這些事

專業模板通常已經內建:

  • 搜尋引擎優化 - Google 更容易找到你的網站
  • 各種裝置都能用 - 手機、平板、電腦都測試過
  • 統一的視覺風格 - 顏色、間距、字體都設計好
  • 常用功能元件 - 表格、表單、圖表、通知等
  • 深色模式 - 晚上看螢幕不刺眼

這讓專案一開始就有「產品等級」的品質,可以專心做真正重要的功能。

這套架構很適合 AI 輔助開發

現在很流行用 AI 工具(像 Cursor、Copilot)來幫忙寫程式,這套架構特別適合:

┌─────────────────────────────────────────────────────────────┐
│  為什麼 AI 助手特別喜歡這種架構?                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 全部放一個專案                                          │
│     → AI 可以一次看懂整個專案                               │
│                                                             │
│  2. 有型別檢查(typescript)                                            │
│     → AI 寫錯了馬上會被抓到                                 │
│                                                             │
│  3. 樣式寫法統一                                            │
│     → AI 調畫面更快                                         │
│                                                             │
│  4. 檔案結構就是網址                                        │
│     → AI 很容易理解哪個檔案對應哪個頁面                      │
│                                                             │
│  5. AI 套件模組化 (Langchain)                                           │
│     → 可以換不同的 AI 模型                                  │
│     → 可以串接 Google、OpenAI、Claude                       │
│                                                             │
└─────────────────────────────────────────────────────────────┘

這也是為什麼一個上午就能完成雛形架構 — 選對工具 + AI 幫忙,後續只需要根據實際需求微調即可!

實際程式碼怎麼寫?

以下是核心程式碼的簡化版本,讓大家了解基本原理。

第一步:連接資料庫

首先要讓程式能夠連上資料庫,這裡用安全的方式連線(不把密碼寫在程式碼裡):

// 連接資料庫的程式碼
import { DataSource } from 'typeorm';

async function 連接資料庫() {
  const 資料庫連線 = new DataSource({
    type: 'mssql',                              // 使用微軟的 SQL Server
    host: process.env.AZURE_SQL_SERVER,         // 資料庫位址(從環境變數讀取)
    database: process.env.AZURE_SQL_DATABASE,   // 資料庫名稱
    // ... 其他安全認證設定
  });

  await 資料庫連線.initialize();  // 建立連線
  return 資料庫連線;
}

第二步:記住資料庫結構(快取機制)

資料庫的結構(有哪些表格、哪些欄位)不會常常變,記起來可以省錢:

// 快取機制:記住資料庫結構,不用每次都重新問
let 快取 = null;
const 快取時間 = 60 * 60 * 1000; // 60 分鐘後才重新取得

function 快取還有效嗎() {
  if (!快取) return false;
  return new Date() < 快取.過期時間;
}

第三步:設定 AI 的「規則手冊」

這是最重要的部分!告訴 AI 它能做什麼、不能做什麼:

const AI規則手冊 = `
## 你的身份
你是公司的資料分析專家,專門幫忙查報表資料。

---

## 絕對不能做的事

### 禁止的操作
- 不能新增資料
- 不能修改資料  
- 不能刪除資料
- 不能改變資料庫結構

### 不能查的欄位(機密資料)
- 密碼相關欄位
- 金鑰和 Token

### 查詢限制
- 每次最多查 1000 筆
- 一定要有過濾條件

---

## 你知道的公司規則

### 主要資料表
- 客戶資料表 - 存客戶基本資訊(ID、方案類型、是否取消等)
- 客戶詳細資料表 - 存公司名稱、聯絡人等
- 付款紀錄表 - 存付款歷史

### 重要業務規則

#### 已刪除的資料不要顯示
- 查詢時自動排除已刪除的資料

#### 測試帳號要排除
- 信箱包含「IQT」的都是測試帳號

#### 判斷付費用戶的條件
有綁信用卡 + 沒取消訂閱 + 還沒過期
`;

安全防護怎麼做?

就算 AI 很聰明,我們還是要多加幾道防線,確保不會出錯。

第一道防線:程式碼檢查

在執行查詢之前,程式會先檢查有沒有危險的操作:

// 危險操作黑名單
const 禁止清單 = ['新增資料', '修改資料', '刪除資料', '刪除表格'];

function 檢查安全性(查詢指令) {
  // 1. 一定要是「查詢」開頭
  if (!查詢指令.startsWith('SELECT')) {
    return { 安全: false, 錯誤: '只能查詢,不能做其他操作' };
  }

  // 2. 檢查有沒有危險操作
  for (const 禁止項目 of 禁止清單) {
    if (查詢指令.includes(禁止項目)) {
      return { 安全: false, 錯誤: `發現禁止的操作: ${禁止項目}` };
    }
  }

  // 3. 檢查有沒有查機密欄位
  // ... 類似的檢查邏輯

  return { 安全: true };
}

第二道防線:自動加上數量限制

萬一忘了限制查詢數量,程式會自動補上:

function 自動加限制(查詢指令) {
  // 如果沒有限制數量,自動加上「最多 1000 筆」
  if (!查詢指令.includes('TOP')) {
    return 查詢指令.replace('SELECT', 'SELECT TOP 1000');
  }
  return 查詢指令;
}

第三道防線:資料庫本身的權限設定

最保險的做法是,在資料庫那邊就設定好:這個帳號只能「讀」,不能「改」:

-- 在資料庫設定:只給讀取權限
CREATE ROLE [報表查詢角色];
GRANT SELECT TO [報表查詢角色];        -- 只能查詢
DENY INSERT, UPDATE, DELETE TO [報表查詢角色];  -- 禁止修改

使用者看到的畫面

簡單直覺的操作介面

┌─────────────────────────────────────────────────────────────────┐
│  🤖 智慧報表助手                                                 │
│                                                                 │
│  用說的就能查報表!輸入你想查的內容,AI 會自動幫你處理              │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  📝 快速範例(點一下就能用)                                      │
│  ┌─────────────┐ ┌──────────────┐ ┌──────────────┐             │
│  │ 付費客戶清單 │ │ 最近新增客戶  │ │ 各方案統計    │             │
│  └─────────────┘ └──────────────┘ └──────────────┘             │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 請輸入你想查的內容...                                     │   │
│  │                                                          │   │
│  │ 例如:列出所有付費客戶,包含公司名稱和到期日                 │   │
│  │                                                          │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ┌──────────────┐  ┌──────────────┐                            │
│  │ 🪄 產生報表   │  │ ▶️ 立即查詢   │                            │
│  └──────────────┘  └──────────────┘                            │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

結果可以用不同方式呈現

查出來的資料可以用各種方式顯示,看你需要哪一種:

  • 📊 表格 - 看完整的資料列表
  • 📈 長條圖 - 比較各類別的數字
  • 📉 折線圖 - 看趨勢變化
  • 🥧 圓餅圖 - 看各項目佔比

實際效果展示

範例一:查詢付費客戶清單

使用者輸入: 列出所有付費客戶,包含公司名稱、方案類型、到期日

報表產生器 - 表格檢視
報表產生器 - 表格檢視

AI 會自動:

  1. 理解使用者想要什麼
  2. 找到對應的資料表
  3. 產生正確的查詢指令
  4. 執行查詢並回傳結果

結果就是一份漂亮的付費客戶清單表格!

範例二:圖表視覺化呈現

除了表格,還可以用圖表呈現資料,讓數據更直觀:

報表產生器 - 圖表檢視
報表產生器 - 圖表檢視

範例三:安全防護測試

使用者輸入: 刪除所有測試用戶

AI 回應:

抱歉,我無法執行刪除操作,這是唯讀報表查詢工具,如需刪除資料,請聯繫資料庫管理員。

✅ 系統成功擋下了危險的操作!

這套系統花多少錢?

AI 模型是按「使用量」計費的,計費單位是 Token(可以想像成「字數」)。

Token 是什麼?

簡單來說,Token 就是 AI 處理文字的最小單位:

  • 英文大約 1 個單字 = 1 Token
  • 中文大約 1 個字 = 2-3 Token(因為中文用 UTF-8 編碼較複雜)

Gemini 2.0 Flash 的價格

項目價格(美金)換算台幣(1 USD ≈ 32 TWD)
輸入 100 萬 Token$0.10約 3.2 元
輸出 100 萬 Token$0.40約 12.8 元

換算成「每 1,000 個 Token」的價格

項目美金台幣
輸入 1,000 Token$0.0001約 0.0032 元
輸出 1,000 Token$0.0004約 0.0128 元

💡 白話說:輸入 1,000 個 Token 只要 0.003 元台幣,幾乎是零成本!

舉個例子

文字內容字數約等於 Token 數
列出所有付費客戶8 個中文字約 16-24 Token
SELECT * FROM customers4 個英文單字約 5 Token
一段 SQL 查詢指令約 50 個字元約 30-50 Token
系統提示詞(規則手冊)約 800 個中文字約 2,000 Token

每次跟 AI 對話,會產生兩種費用:

  • 輸入 Token:你問 AI 的問題 + 資料庫結構資訊
  • 輸出 Token:AI 回答你的內容(SQL 指令 + 說明)

實際使用情境估算

┌─────────────────────────────────────────────────────────────────┐
│  一次報表查詢的 Token 消耗                                       │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  📥 輸入 Token(你給 AI 的資訊)                                 │
│  ├── 系統提示詞(規則手冊)    約 2,000 Token                    │
│  ├── 資料庫結構(快取後不重複) 約 3,000 Token(首次)            │
│  └── 使用者問題               約 100 Token                      │
│                                                                 │
│  📤 輸出 Token(AI 回答的內容)                                  │
│  ├── SQL 查詢指令             約 200 Token                      │
│  └── 結果說明                 約 300 Token                      │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

費用明細表

操作Token 消耗費用估算說明
讀取資料庫結構(第一次)約 5,000 輸入 + 500 輸出約 0.03 元只有第一次需要,之後會快取
每次查詢(快取後)約 2,100 輸入 + 500 輸出約 0.003 元省掉重複讀取結構的成本
一天用 50 次約 13 萬 Token約 0.15 元一般中小企業的日常用量
一個月下來(22 工作天)約 286 萬 Token約 5 元台幣比一杯手搖飲還便宜!

單次查詢費用計算範例

假設使用者問:「列出所有付費客戶,包含公司名稱和到期日

┌─────────────────────────────────────────────────────────────────┐
│  💰 單次查詢費用計算                                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  📥 輸入費用                                                     │
│  ├── 系統提示詞      2,000 Token × $0.0001/1K = $0.0002         │
│  ├── 使用者問題        100 Token × $0.0001/1K = $0.00001        │
│  └── 小計:約 $0.00021(約 0.007 元台幣)                        │
│                                                                 │
│  📤 輸出費用                                                     │
│  ├── SQL 指令          200 Token × $0.0004/1K = $0.00008        │
│  ├── 結果說明          300 Token × $0.0004/1K = $0.00012        │
│  └── 小計:約 $0.0002(約 0.006 元台幣)                         │
│                                                                 │
│  ────────────────────────────────────────────────────────────   │
│  📊 總計:約 $0.0004(約 0.013 元台幣)                          │
│                                                                 │
│  👉 一次查詢只要 0.01 元,問 100 次才 1 塊錢!                    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

為什麼這麼便宜?

┌─────────────────────────────────────────────────────────────────┐
│  省錢關鍵:快取機制                                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ❌ 不用快取的情況                                               │
│     每次查詢都要重新讀取資料庫結構                                │
│     → 每次消耗 5,000+ Token                                     │
│     → 一個月可能要 50 元以上                                     │
│                                                                 │
│  ✅ 使用快取的情況                                               │
│     資料庫結構記住 60 分鐘                                       │
│     → 每次只消耗 2,100 Token                                    │
│     → 一個月只要約 5 元                                         │
│                                                                 │
│  💡 省了 90% 的費用!                                            │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

跟其他 AI 模型比較

模型同樣用量的月費備註
Gemini 2.0 Flash約 5 元本專案使用
GPT-4o約 50 元貴 10 倍
GPT-4o mini約 8 元也是便宜的選擇
Claude 3.5 Sonnet約 40 元適合複雜分析

超級便宜!一個月的 AI 費用比一杯飲料還便宜 🥤

給開發團隊的安全規則

除了系統本身的防護,我還幫團隊寫了開發規則,讓大家用 AI 工具(像 Cursor)寫程式時也不會誤觸危險操作:

# 開發規則:資料庫安全

## AI 絕對不能做的事

### 1. 刪除資料
- 不能刪除任何一筆資料
- 不能清空整個表格

### 2. 刪除結構  
- 不能刪除表格
- 不能刪除資料庫

### 3. 危險的修改
- 不能隨意修改表格結構

總結

為什麼這個方案可行?

  1. 工具夠成熟 - LangChain 已經把複雜的事情都處理好了
  2. AI 夠便宜 - Gemini 2.0 Flash 費用幾乎可以忽略
  3. 安全有保障 - 三層防護機制,不怕出錯

未來還可以加什麼功能?

  1. 記住常用查詢 - 下次直接點選就能用
  2. 自動推薦圖表 - 根據資料類型建議用什麼圖表
  3. 追問功能 - 查完可以說「只顯示前 10 名」

適合什麼場景?

  • 公司後台的報表需求
  • 讓不會寫程式的人也能查資料
  • 資料分析師快速驗證想法

如果你也想打造類似的系統,歡迎參考這個架構!透過vibe coding ,一個上午就能做出雛形,後續微調優化,很快就能上線使用。


Tags

ai-agentlangchaingeminibisqlnextjsllm
Mark Ku

Mark Ku

Software Developer

10年以上豐富網站開發經驗,開發過各種網站,電子商務、平台網站、直播系統、POS系統、SEO 優化、金流串接、AI 串接,Infra 出身,帶過幾次團隊,也加入過大團隊一起開發。

Expertise

前端(React)
後端(C#)
網路管理
DevOps
溝通
領導

Social Media

facebook github website

Quick Links

關於我

Social Media