一行 API 串 34 家免費 LLM

一行 API 串 34 家免費 LLM

📌 本文重點

  • 一個 OpenAI 風格 /v1 入口接 34 家免費 LLM
  • 改 baseURL 即可把現有專案切到免費模型
  • 內建智慧路由、故障切換與 API key 加密
  • 特別適合 side project、AB test 與教學場景

用 freellmapi,你可以用一個 OpenAI 風格的 /v1 API,一次接上 34 家免費 LLM 供應商、635 個模型端點,還幫你自動路由、故障切換與加密 API key。

專案連結:tashfeenahmed/freellmapi on GitHub


核心功能:為什麼值得多看一眼?

1. 統一 OpenAI 風格 API,一行替換

freellmapi 把所有免費 LLM 都包成一個 OpenAI 相容的 /v1 入口,你原本用 OpenAI 的程式碼,只要改「base URL」就能直接跑:

  • 不需要逐家閱讀文件(OpenAI、DeepSeek、Groq…)
  • 不需要改 SDK,只動環境變數或初始化設定

行動建議:

先想一個你現在在用的 OpenAI 小專案(chatbot、摘要、工具人腳本),等等在「實作教學」小節,直接照著把它改接 freellmapi 當後端。

💡 關鍵: 只改 baseURL 就能讓既有 OpenAI 專案直接跑在 34 家免費 LLM 上,幾乎零改動成本。


2. 智慧路由與自動故障切換

freellmapi 會在後端幫你:「這次要用哪個免費模型?」

  • 以你設定的「模型白名單」與「路由策略」挑選模型
  • 若某個供應商 rate limit 或掛掉,自動換下一個
  • 同一個「邏輯模型名」可以對應多個實際端點

效果:你把請求打到 model: "gpt-4-free" 這種自訂名字,背後實際可能是不同家的 GPT-4 等級替代品,但你的應用程式不用改任何邏輯。

行動建議:

在自己的 side project 裡,把「重要的核心功能」放到多個模型輪詢(多條路),就算其中一條限流,你的服務還是能繼續回應。


3. API key 加密保護

freellmapi 需要你提供各家免費 LLM 的 API key,它會:

  • 在本機或伺服器端加密儲存 key
  • 只在轉發請求時解密使用

好處是:

  • 你可以在團隊裡共用一個 freellmapi 服務,而不用把各家 key 散落在每個人電腦
  • 教學/工作坊環境,學員只要打到你架好的 freellmapi,不用自己申請一堆 key

行動建議:

如果你常在 Meetup / 企業內訓帶 AI workshop,可以先在自己的 VPS 架一個 freellmapi,把所有免費 LLM key 放裡面,課上只給一個 endpoint 給學員使用。

💡 關鍵: 把多家 API key 集中加密管理在 freellmapi 上,可以兼顧團隊共享、教學便利與安全性。


適合誰用?三種典型場景

1. 個人 side project:免成本把服務「先上線」

情境:你想做一個小產品(例如:履歷優化、腳本生成工具),但不確定會不會有人用,不想一開始就綁 OpenAI 月費或高額 token 費用。

freellmapi 可以:

  • 把所有請求先跑在免費 LLM 上,把成本壓到接近 0
  • 等服務有流量、驗證需求後,再考慮導回 OpenAI 或付費模型

可以立刻做的事:

  1. 按照後面「怎麼開始」部署 freellmapi
  2. 把你的 side project OPENAI_BASE_URL 改成 freellmapi
  3. 設一個環境變數 LLM_ENV=free,未來要切回付費,只要改環境

💡 關鍵: 先用免費 LLM 驗證產品市場,等真的有流量再切回付費模型,可以大幅壓低前期開發成本。


2. 替代/補充 OpenAI:做多模型 AB test

情境:你想比較「不同模型在同一個任務上的表現」,例如:

  • 哪個模型對客服問答最穩定?
  • 哪個模型摘要長文比較不亂砍重點?

用 freellmapi,你可以:

  • 在設定裡定義一組「候選模型」
  • 讓應用程式隨機或輪詢分配模型,收集回應
  • 做 AB / ABC test,再決定要長期用誰

可以立刻做的事:

在後面「多模型回答比較小工具」段落,照範例做一個簡單的「輸入同一個 prompt,拉出多模型回答」的 internal tool,幫你更快做選擇。


3. 教學/工作坊:一個 endpoint 全班共用

情境:你要開一門「用 API 串 LLM」的課:

  • 如果叫學生各自申請 OpenAI / 各家帳號,流程會拖很久
  • 如果用單一共享 key,很容易被濫用或不小心外流

freellmapi 做法:

  • 你在雲端部署一個 freellmapi
  • 學員只要在程式裡填一個 BASE_URL + 你發的一組 class token
  • 你的伺服器決定實際用哪些免費模型、怎麼路由

可以立刻做的事:

下一期課程,試著在教案裡只給一份「freellmapi endpoint + 例子程式碼」,把重點放在「怎麼設計 prompt、怎麼串接應用」,而不是每家註冊流程。


怎麼開始:從部署到改程式,一次走完

1. 安裝與部署(本機 / 雲端)

先到 GitHub 下載專案:

git clone https://github.com/tashfeenahmed/freellmapi.git
cd freellmapi

freellmapi 是用 TypeScript / Node.js 寫的,你需要:

  • Node.js(建議 18+)
  • pnpm 或 npm / yarn

安裝依賴與啟動(以 pnpm 為例):

pnpm install
pnpm build
pnpm start
# 預設會在 http://localhost:3000(實際以 repo 說明為主)

如果要丟到雲端:

  • 可直接丟到 Render、Railway、Fly.io 等支援 Node 的平台
  • 把 PORT 設成平台給你的 port,HOST 設 0.0.0.0

行動建議:

先在本機跑起來,用 curl 測一下:

curl http://localhost:3000/health
# 若回應 OK 類訊息,代表 freellmapi 正常啟動

2. 把原本用 OpenAI SDK 的程式改指向 freellmapi

freellmapi 是 OpenAI 相容 API,重點只有兩件事:

  1. 改 baseURL 指向 freellmapi
  2. apiKey 用 freellmapi 的 key(或你設定的任意字串),模型名按照 freellmapi 支援的命名

Node.js 範例(原本用 OpenAI)

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "gpt-4o-mini",
  messages: [{ role: "user", content: "幫我寫一段產品介紹" }],
});
console.log(resp.choices[0].message.content);

改成指向 freellmapi

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.FREELLMAPI_KEY || "test-key", // freellmapi 端驗證用
  baseURL: process.env.FREELLMAPI_BASE_URL || "http://localhost:3000/v1",
});

const resp = await client.chat.completions.create({
  model: "gpt4-free-mix", // 你在 freellmapi 裡定義的邏輯模型名
  messages: [{ role: "user", content: "幫我寫一段產品介紹" }],
});

console.log(resp.choices[0].message.content);

行動建議:

直接把你現有專案的 baseURL 抽成環境變數,方便之後一鍵切回 OpenAI:

# .env
LLM_BASE_URL=http://localhost:3000/v1
LLM_API_KEY=test-key

Python 範例(原本用 OpenAI)

from openai import OpenAI
import os

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

resp = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "用一句話介紹台北"}],
)

print(resp.choices[0].message.content)

改成指向 freellmapi

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.getenv("FREELLMAPI_KEY", "test-key"),
    base_url=os.getenv("FREELLMAPI_BASE_URL", "http://localhost:3000/v1"),
)

resp = client.chat.completions.create(
    model="city-intro-free",
    messages=[{"role": "user", "content": "用一句話介紹台北"}],
)

print(resp.choices[0].message.content)

3. 設定路由策略與模型白名單(概念版)

實際設定檔請以 repo 中的說明為主,這裡用一個簡化的概念例子:

// models.config.json
{
  "logicalModels": {
    "gpt4-free-mix": {
      "strategy": "round_robin",
      "providers": [
        { "name": "providerA", "model": "gpt-4-alt-1" },
        { "name": "providerB", "model": "gpt-4-alt-2" }
      ]
    },
    "city-intro-free": {
      "strategy": "fallback",
      "providers": [
        { "name": "providerC", "model": "fast-lite" },
        { "name": "providerD", "model": "backup-lite" }
      ]
    }
  }
}
  • round_robin:多模型輪詢,適合平均分流、做 AB test
  • fallback:按順序嘗試,失敗才換下一個,適合有「主力模型」的情境

行動建議:

先定義 1 個你常用任務(例如:客服回覆),設 2–3 個候選模型,用 round_robin 跑一週,看看哪個回覆風格最適合,再把不適合的從白名單移除。


多模型回答比較:做一個小內部工具

這是一個「輸入同一個 prompt,並行打多個模型,最後把回答排在一起比」的簡單例子(Node,使用同一個 freellmapi endpoint):

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "test-key",
  baseURL: "http://localhost:3000/v1",
});

const models = ["gpt4-free-mix", "city-intro-free", "long-doc-free"];

async function compareModels(prompt: string) {
  const tasks = models.map(async (model) => {
    const resp = await client.chat.completions.create({
      model,
      messages: [{ role: "user", content: prompt }],
    });
    return {
      model,
      answer: resp.choices[0].message.content,
    };
  });

  const results = await Promise.all(tasks);

  for (const r of results) {
    console.log("=====", r.model, "=====");
    console.log(r.answer);
    console.log();
  }
}

compareModels("請用三點條列說明:使用 freellmapi 的優點");

你可以把這段包成一個簡單的 CLI 或小網頁,讓團隊成員在設計 prompt 或選模型時,有一個快速對照的工具。


小結:把 freellmapi 當成「免費 LLM 門面」

使用策略可以簡單記:

  • 開發期:全部走 freellmapi,專心做產品與實驗
  • 上線後:把關鍵路徑逐步切到穩定的付費模型,freellmapi 當備援或 AB 測試平台
  • 教學 / 團隊內訓:freellmapi 當唯一 endpoint,避免新人被一堆帳號與 key 卡住

如果你手上已經有任何使用 OpenAI 的程式碼,現在只需要改一行 baseURL,就能開始玩 34 家免費 LLM,這就是 freellmapi 最實際的價值。

🚀 你現在可以做的事

  • 打開一個現有的 OpenAI 專案,先把 baseURL 抽成環境變數,預留接 freellmapi 的位置
  • 到 GitHub 把 tashfeenahmed/freellmapi clone 下來,在本機跑起來並用 curl /health 測試
  • 寫一個簡單腳本,對同一個 prompt 呼叫多個邏輯模型,開始比較免費 LLM 的表現

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *