標籤: 模型路由

  • 用 Frugon+開源模型,把 AI 帳單砍半

    用 Frugon+開源模型,把 AI 帳單砍半

    📌 本文重點

    • 用 Frugon 分析 LLM 使用紀錄與成本結構
    • 比較便宜/開源與高價模型的品質差異
    • 產生模型路由建議,讓簡單任務改用便宜模型

    只要你大量用 GPT/Claude 跑程式與 Agent 工作流,Frugon 要解決的,就是「到底哪些請求可以改用便宜或開源模型」,讓帳單直接往下掉。


    核心功能:把「模型選錯」找出來

    1. 讀取 API 日誌,算出你真實的模型成本結構

    Frugon 是一個本機 CLI 工具,核心第一步就是把你的 LLM 使用紀錄抓進來,算出每種任務到底花了多少錢。

    可採取的行動:

    1. 在你常用的 AI 平台(OpenAI / Anthropic)導出使用紀錄:
    2. OpenAI:到 Usage 頁面,下載帳單/log 檔(或透過 API 取得 responses.jsonl 類似格式)。
    3. Anthropic:到帳務或使用頁面,匯出調用紀錄(通常是 JSON 或 CSV)。
    4. 在本機安裝 frugon
      bash
      pip install frugon
    5. 在有日誌檔的資料夾執行:
      bash
      frugon analyze --logs ./logs

    Frugon 會讀取「OpenAI-style」的日誌格式,統計:

    • 各模型的使用次數、token 用量
    • 各任務類型(例如:搜尋、程式生成、摘要)的大致成本占比

    💡 關鍵: 透過實際日誌統計,你可以精確看到成本主要消耗在哪些模型與任務,而不是憑印象猜測。

    你會看到一個很直接的事實:大量錢其實花在一些很簡單的請求上,而不是最難的那 5% 任務。


    2. 對同一任務測試不同模型,估算品質差異

    真正的重點,是 Frugon 不只算錢,它會幫你試:同一個 prompt,如果改用便宜模型、甚至改用本地開源模型,結果差多少。

    可採取的行動:

    1. 準備你想比較的模型,例如:
    2. 雲端:gpt-4.1-minigpt-4.1claude-3.5-sonnetclaude-3-haiku
    3. 本地(透過 Ollama 或 vLLM):glm-4glm-5.2phi-4qwen2.5
    4. 在 Frugon 設定中,把不同模型接到同一組任務樣本:
      bash
      frugon compare \
      --logs ./logs \
      --models gpt-4.1-mini,gpt-4.1,glm-5.2 \
      --provider-config ./providers.yaml
    5. 查看報告:Frugon 會對每個任務類型輸出:
    6. 成本:每千 token 價格,預估每月支出
    7. 品質:用自動評估(例如比較回覆結構、關鍵字覆蓋率,或你自定的評分規則)估算「能否接受」

    實際效果:

    • 你會發現像 Databricks 報告提到的 pi-coding-agentGLM 5.2 等模型,在程式碼任務上,成本大幅低於主流付費模型,但通過率相近甚至更好(參考:https://www.reddit.com/r/LocalLLaMA/comments/1usrek0/)。
    • 對於簡單篩選、摘要、規則轉換類任務,gpt-4.1-mini 或開源模型往往「好到足夠」,沒必要動用最貴那一檔。

    💡 關鍵: 對相同任務批量 AB 測試不同模型,可以找到「成本明顯較低但品質仍達標」的替代方案。


    3. 自動給出「可以改用便宜模型」的路由建議

    分析完日誌與模型表現後,Frugon 會告訴你:哪些呼叫可以安全地改路由到便宜模型,還能估出你能省下的大致比例。

    可採取的行動:

    1. 在分析後產出的建議中,鎖定成本最高的前幾個任務類型,例如:
    2. code_generation_draft(寫樣板、測試腳架)
    3. search_scan(大量文本掃描、RAG 初步檢索)
    4. bulk_copywriting(批量行銷文案)
    5. 將這些任務標記為「可路由到便宜模型」,輸出為一份路由規則 YAML 或 JSON:
      “`yaml
      routes:

      • task_type: code_generation_draft
        preferred_model: glm-5.2
        fallback_model: gpt-4.1
      • task_type: search_scan
        preferred_model: gpt-4.1-mini
        fallback_model: claude-3.5-sonnet
        “`
    6. 在你的 Agent 或服務端程式裡,導入這份規則,改成:
    7. 先看任務類型(或 prompt tag)
    8. 符合路由規則時用便宜/開源模型
    9. 只有在評分不夠好時才回退到主力高價模型

    這就是 Towards AI 提到的「模型路由+編排(orchestration)」的實作方式:成本問題不是模型本身,而是你怎麼調度它們(參考:https://pub.towardsai.net/your-ai-coding-bill-is-not-a-model-problem-its-an-orchestration-problem-eeeacb340d1e)。

    💡 關鍵: 透過明確的路由規則,先用便宜模型處理大部分請求,再在需要時回退到高價模型,可以在不犧牲品質的前提下大幅壓低帳單。


    適合誰用:幾個很具體的場景

    1. 公司內部 Coding Agent/AI 助理

    如果你有:

    • 內部的程式碼自動補全、重構、寫測試的 Agent
    • 或自己用 GPT/Claude 當主力 coding 助理

    可採取的行動:

    1. 用 Frugon 分析最近一個月的 coding 相關 API 日誌。
    2. 把任務粗分為:
    3. 簡單工作:自動補全、樣板代碼、註解、測試腳架
    4. 困難工作:跨模組設計、大重構、疑難除錯
    5. 參考 Towards AI 的策略:讓簡單工作全部路由到本地開源模型(例如 GLM 5.2phi-4),只在困難工作時才叫 GPT-4.1Claude 3.5。(https://pub.towardsai.net/how-to-cut-your-ai-coding-bill-without-giving-up-the-frontier-model-870469d0d27d

    2. 批量文案生成服務

    如果你在做:

    • 大量短文案(社群貼文、電郵片段)
    • SEO 標題、meta 描述、A/B 測試版本

    可採取的行動:

    1. 把最近的批量文案請求丟給 Frugon 分析,看哪幾類 prompt 消耗最多 token。
    2. 用較便宜模型(例如 gpt-4.1-mini 或本地 qwen2.5)重跑一部分樣本,看品質是否能接受。
    3. 把「可接受的任務類型」在路由規則裡標記為便宜模型優先,主力模型只負責:
    4. 重要 campaign 的首稿
    5. 關鍵頁面(首頁/定價頁)的文案

    3. RAG 查詢服務、搜尋掃描類應用

    如果你有:

    • 內部知識庫問答網站
    • 客戶支援聊天機器人

    大多數成本在於「長上下文+大量查詢」,而不是最終回答的語氣。

    可採取的行動:

    1. 用 Frugon 找出所有包含超長 context 的調用(RAG 問答)。
    2. 評估:檢索+初步摘要能否先用便宜模型處理,再將壓縮後的內容交給高階模型發 final 回覆。
    3. 實作一條省錢路徑:
    4. 便宜模型/開源模型:負責檢索結果摘要、濾掉不相關段落(上下文壓縮)。
    5. 高階模型:只在最後一次,基於壓縮後資訊生成答案。

    怎麼開始:從第一次分析報告,到省錢工作流

    步驟 1:在本機安裝 Frugon

    Frugon 是 MIT 授權、可本地離線跑的 CLI 工具:

    pip install frugon
    frugon --help
    

    建議在專用虛擬環境裡安裝,方便後續更新和管理:

    python -m venv .venv
    source .venv/bin/activate  # Windows 用 .venv\Scripts\activate
    pip install frugon
    

    步驟 2:導出並載入 OpenAI/Anthropic 使用紀錄

    1. 從各平台匯出最近 2–4 週的 API 使用紀錄到 ./logs 目錄。
    2. 若格式不同,可先轉成近似 OpenAI responses JSON 結構(Frugon 文件裡有範例結構,可在 GitHub repo 查看)。
    3. 跑第一次分析:
      bash
      frugon analyze --logs ./logs --out report.json

    完成後你會拿到:

    • 各模型的 token 用量和估算費用
    • 各任務類型的成本分布

    步驟 3:設定模型比較與路由建議

    1. 建一個 providers.yaml,配置多家模型來源:
      yaml
      openai:
      api_key: $OPENAI_API_KEY
      anthropic:
      api_key: $ANTHROPIC_API_KEY
      ollama:
      host: http://localhost:11434
    2. 跑比較:
      bash
      frugon compare \
      --logs ./logs \
      --models gpt-4.1-mini,gpt-4.1,glm-5.2,phi-4 \
      --provider-config ./providers.yaml \
      --out routing_suggestions.yaml
    3. 根據輸出的 routing_suggestions.yaml,在你的後端服務加上簡單的模型路由:
    4. task_typemax_tokensimportance_level 作為分流條件
    5. 優先走便宜/本地模型,必要時再升級到高價模型

    步驟 4:用表格想清楚你的模型池搭配

    為了方便設計工作流,你可以把常用模型與工具列成表格:

    名稱 核心功能 免費方案 適合誰
    Frugon 讀取日誌、算成本、模型比較 開源 MIT,本機 有 API 日誌的開發者/團隊
    GLM 5.2 程式碼生成、一般助手 開源,可本地 內部 coding agent、IDE 助理
    pi-coding-agent 精簡 Bash 工具的 coding agent 依託基礎模型 想要低成本自動化寫程式的人
    GPT-4.1-mini 通用任務、便宜高效 依使用計費 批量文案、RAG 前處理
    Claude 3.5 高難度推理、長上下文 有免費層+計費 關鍵決策、難題除錯

    你不需要一次全換,只要先挑:

    • 成本最高的任務類型
    • 品質要求相對沒那麼嚴苛的場景

    用 Frugon 跑一輪比較,按表格逐步把這些流量導到更便宜或本地的模型,就能把 AI 帳單穩定壓下來,而不用放棄你熟悉的 GPTClaude 主力模型。


    🚀 你現在可以做的事

    • Frugon GitHubfrugon 安裝在本機,並準備最近 2–4 週的 API 日誌
    • 匯出 OpenAI/Anthropic 使用紀錄到 ./logs,執行 frugon analyzefrugon compare 產生第一版報告
    • 根據產出的 routing_suggestions.yaml,在你的後端或 Agent 加入模型路由邏輯,先讓一兩個任務類型切換到便宜或本地模型
  • 用 Mellum2 排程你的 AI 工作流

    用 Mellum2 排程你的 AI 工作流

    一句話先說清楚:Mellum2 是一顆專門幫你「排班、調度」其他大模型和工具的小模型,用來做 routing、任務拆解與工具選擇,讓 AI 工作流更便宜、更穩定。

    📌 本文重點

    • Mellum2 是專門做「決策與調度」的小模型
    • 適合負責 routing、任務拆解和工具選擇
    • 能幫多模型、多工具的工作流壓成本、提穩定度
    • 很適合拿來做 AI agent 的中樞大腦

    官方介紹與原始碼:https://blog.jetbrains.com/ai/2026/06/mellum2-goes-open-source-a-fast-model-for-ai-workflows/


    核心功能:先讓 Mellum2 當你的「AI 排班主管」

    1. 低延遲的小模型,適合做決策層

    Mellum2 本身不是 GPT-4o 那種萬能助手,它更像是負責「決定下一步要幹嘛」的主管

    • 模型體積小、推理快,適合放在整個 pipeline 的最前面或中間層
    • 每次呼叫成本低,很適合頻繁決策:用哪個工具?要不要再拆一步?該重試還是直接回覆?

    💡 關鍵: 把高頻率、邏輯性的「決定怎麼做」交給便宜小模型,昂貴大模型只負責「實際做」,能讓整體成本大幅下降。

    你可以怎麼用?

    • 把「判斷任務類型 → 選模型 → 選工具」這段邏輯,從你程式碼的 if-else 搬到 Mellum2
    • 所有複雜 workflow 的分支規則,盡量改成 prompt + Mellum2 來決定,減少硬寫規則

    2. 多步推理:讓它負責拆任務、串工具

    JetBrains 把 Mellum2 設計成適合多步推理(multi-step reasoning)的模型,也就是它擅長做:

    • 任務拆解:把「寫一份技術規格書」拆成「補資料 → 查 API → 產出草稿 → 校對」
    • 步驟規劃:決定每一步要用哪支工具或哪個 LLM
    • 狀態更新:根據上一個工具的輸出,動態調整下一步

    你可以怎麼用?

    • 把你現有的工具(爬網頁、查資料庫、呼叫商用 LLM)列成一張「工具清單」給 Mellum2
    • 請 Mellum2 每次都輸出「下一步要用的工具 + 工具參數」,你的程式只負責照做

    3. Routing + 工具選擇:讓 GPT、Claude、開源 LLM 都變成「插件」

    Mellum2 最實用的角色,就是做模型路由(model routing)和工具選擇(tool selection)

    • 你可以在後面接:GPT-4.1、Claude 3.7、Llama、Qwen 等
    • Mellum2 根據需求幫你選:「這題要便宜模型」還是「這題要高準確度」

    💡 關鍵: 當你同時使用多個 LLM 供應商時,用 Mellum2 做路由,可以在「品質不明顯下降」的前提下,讓大量請求自動落在較便宜的模型上。

    可以這樣設計一個簡單策略

    • 查資料類問題 → 用便宜/開源 LLM + 搜尋工具
    • 寫程式、寫長文 → 用 GPT-4.1 或 Claude 3.7
    • 簡單 Q&A → 用本地 LLM,節省 API 費用

    你的程式不用管細節,只要:

    1. 收到使用者請求
    2. 把請求 + 目前可用模型列表丟給 Mellum2
    3. 照 Mellum2 的輸出去呼叫對應模型

    適合誰用:三種典型場景

    1. 你在做「AI 助手」或 Agent 系統

    如果你在做:

    • 產品內建 AI 助手(客服、知識庫問答)
    • 自動化 Agent(幫你查資料、寫報告)

    問題通常會是

    • 使用者問題差異很大,單一模型不是太貴就是太弱
    • 工具越加越多,判斷流程 if-else 爆炸

    Mellum2 能幫你:

    • 把「選模型、選工具、拆步驟」集中到一顆小模型管理
    • 你只要維護工具清單和觀察 Mellum2 的決策是否合理

    可以實作的行動

    • 先挑三個最常用工具:RAG 搜尋、商用 LLM、本地 LLM
    • 寫一個 Mellum2 prompt,要求它根據需求選 1-3 個步驟完成任務

    2. 你有多個 LLM 供應商,要壓成本又要穩定

    典型狀況:

    • 公司已經有 OpenAI 帳號,也在測 Claude,還有自家的 vLLM 服務
    • 主管希望「多用便宜模型,但品質不能掉太多」

    Mellum2 的用法:

    • 給它模型清單:
    • gpt-4.1: 高成本、高品質
    • gpt-4o-mini: 中等品質、便宜
    • local-llama: 最便宜、品質較不穩
    • 附帶一些示例(few-shot),教 Mellum2 什麼情境選哪個

    💡 關鍵: 先在開發環境裡讓所有請求經過 Mellum2 路由,實際觀察不同任務落在昂貴與便宜模型的比例,再調整規則,比一開始就死寫策略安全得多。

    可以實作的行動

    • 先在開發環境改成「所有請求都要經過 Mellum2 路由」
    • 觀察一週:不同任務下,商用 LLM 和本地 LLM 的占比、成本變化

    3. 你要做「穩定的 AI Pipeline」而不是單次聊天

    像是:

    • 每天自動爬資料 → 摘要 → 存進 Notion
    • 每次有 Pull Request → 產生 code review 建議

    這種 Pipeline 常見問題:

    • 某個 LLM 偶爾出錯,整條流程掛掉
    • 你需要 fallback 策略:失敗就換模型、換 prompt、換工具

    Mellum2 可以:

    • 監看每一步工具回傳結果(成功 / 失敗 / 異常訊息)
    • 根據結果決定下一步:
    • 重試同一步驟
    • 改用另外一個模型
    • 回報錯誤給人類

    可以實作的行動

    • 把 Pipeline 的每一步都包成「工具」
    • 每一步的錯誤,也當作輸入回饋給 Mellum2,讓它決定接下來的補救策略

    怎麼開始:從安裝到最小可行範例

    以下流程以「你會用 Docker 或 Python,且已經有至少一個 LLM API(OpenAI / Anthropic / 本地 vLLM)」為前提。

    1. 安裝 Mellum2:Docker 或程式庫二選一

    先到官方部落格或 Repo:https://blog.jetbrains.com/ai/2026/06/mellum2-goes-open-source-a-fast-model-for-ai-workflows/

    選項 A:用 Docker 跑起 Mellum2 服務

    1. 安裝 Docker / Docker Compose
    2. 拉取 Mellum2 映像(以官方 README 為準,示意):

    bash
    docker pull jetbrains/mellum2:latest

    1. 啟動服務(假設開在 8000 port):

    bash
    docker run -p 8000:8000 jetbrains/mellum2:latest

    1. curl 測試:

    bash
    curl -X POST http://localhost:8000/infer \
    -H "Content-Type: application/json" \
    -d '{"input": "你是任務規劃器,請幫我決定下一步要用什麼工具"}'

    適合: 想先用 HTTP API 串現有後端的人。

    選項 B:在程式裡直接呼叫 Mellum2

    如果官方有 Python 套件(假設為 mellum2):

    pip install mellum2
    

    簡單測試:

    from mellum2 import MellumClient
    
    client = MellumClient(base_url="http://localhost:8000")  # 或直接用雲端端點
    
    resp = client.infer("你是任務規劃器,收到任務後要輸出下一步計畫")
    print(resp)
    

    適合: 你準備把 Mellum2 深度嵌到自家服務裡。


    2. 示範:Mellum2 做 Router + 任務規劃的最小 workflow

    下面是一個最小可行例子:

    • 你有兩個底層 LLM:
    • gpt-4.1(高品質)
    • local-llama(便宜)
    • 有一個簡單工具:web_search(用來查網路)
    • 目標:收到使用者問題,由 Mellum2 決定:
    • 要不要先搜尋
    • 要用哪個模型產生最終答案

    Step 1:定義給 Mellum2 的「工具/模型清單」

    TOOLS = [
        {
            "name": "web_search",
            "type": "tool",
            "desc": "適合需要即時或最新資訊的問題,例如股票、新聞、價格。"
        },
    ]
    
    MODELS = [
        {
            "name": "gpt-4.1",
            "cost": "high",
            "quality": "best",
            "desc": "用在需要高準確度、長文、程式碼的回答。"
        },
        {
            "name": "local-llama",
            "cost": "low",
            "quality": "medium",
            "desc": "用在一般聊天、簡單問答。"
        }
    ]
    

    Step 2:設計 Mellum2 Prompt,請它輸出「計畫 JSON」

    SYSTEM_PROMPT = """
    你是 AI 工作流調度器,負責:
    1. 判斷使用者需求
    2. 決定是否要先使用工具
    3. 選擇要使用的底層 LLM
    
    請只輸出 JSON,不要多餘文字,格式:
    {
      "steps": [
        {"action": "tool" | "model", "name": "...", "input_from": "user" | "prev_result"}
      ]
    }
    
    可用工具:
    {tools}
    
    可用模型:
    {models}
    """.format(tools=TOOLS, models=MODELS)
    

    Step 3:呼叫 Mellum2,拿到決策後執行

    import json
    from mellum2 import MellumClient
    
    mellum = MellumClient(base_url="http://localhost:8000")
    
    user_query = "幫我分析最近 NVIDIA 股價的變化,順便預測未來一季可能走勢。"
    
    planning_prompt = SYSTEM_PROMPT + f"\n使用者問題:{user_query}"
    
    plan_resp = mellum.infer(planning_prompt)
    plan = json.loads(plan_resp["text"])  # 依實際回傳欄位調整
    
    result_cache = None
    for step in plan["steps"]:
        if step["action"] == "tool" and step["name"] == "web_search":
            query = user_query if step["input_from"] == "user" else result_cache
            result_cache = call_web_search(query)  # 這是你自己實作的搜尋功能
    
        if step["action"] == "model":
            model_name = step["name"]
            model_input = user_query if step["input_from"] == "user" else result_cache
            result_cache = call_llm(model_name, model_input)  # 依照名稱選擇 gpt / llama
    
    print("最終回答:", result_cache)
    

    這樣,你已經有了一個:

    • Mellum2 做「任務規劃 + 模型/工具選擇」
    • 後端只負責執行計畫的最小可行 workflow

    接下來要擴充,只要:

    • TOOLS / MODELS 裡再加項目
    • 用 few-shot 例子微調 Mellum2 的決策邏輯

    Mellum2 在你的工具箱裡,扮演什麼角色?

    如果從「AI 工作流」角度看,目前常見的組合大致是:

    名稱 核心功能 免費方案 適合誰
    Mellum2 工作流調度、routing、任務拆解 開源可自架 想自己組 AI pipeline,需要細控成本與流程的人
    OpenAI GPT 高品質通用 LLM 有免費額度 需要高品質輸出、但不想自己訓練模型的人
    Claude / Sonnet 對話 & 程式能力強的商用 LLM 有試用 重度寫作、程式輔助、長上下文需求
    本地 LLM(Llama/Qwen) 私有部署、低成本推理 視模型而定 在意隱私或有大批量推理需求的團隊

    Mellum2 並不是另一個「跟你聊天的模型」,而是用來把上面這些工具串起來、排程好、決定誰在什麼時候上場的小模型。

    你可以從一個最小的 routing + 任務規劃範例開始,先讓 Mellum2 管理兩個模型、一支工具,跑順了再往外擴。

    🚀 你現在可以做的事