跳至主要內容

開發了連接 Claude Code、Codex、Gemini 的 LLM API 轉換代理伺服器「llmglot」

在 AI 開發現場,比起模型本身,越來越常被 API 規格差異所困擾。

Claude Code 使用 Anthropic Messages API。OpenAI 系工具使用 Chat Completions API 或 Responses API。Gemini 則有自己的獨立 API,而在本機 LLM 環境中,Ollama 與 LM Studio 會提供 OpenAI 相容 API。

明明想用的模型已經存在,卻因為 API 規格不同而無法連接。必須改寫 SDK、實作轉換層,並針對不同環境分別設定。

解決這類問題的就是 llmglot

GitHub: https://github.com/Himeyama/llmglot

llmglot 是什麼

llmglot 是一個可在多種 LLM API 之間相互轉換的代理伺服器。

它會接收 Anthropic Messages API、OpenAI Responses API、OpenAI Chat Completions API、Gemini API 等請求,並適當轉換後轉送到上游 API。

也就是說,即使客戶端要求的 API 規格與實際想使用的模型 API 規格不一致,也仍然可以使用。

支援範圍

以客戶端來說,支援:

  • Claude Code
  • Anthropic SDK
  • OpenAI SDK
  • Responses API 用戶端
  • Gemini SDK

等。

作為連接端則可使用:

  • Ollama
  • LM Studio
  • OpenAI
  • Gemini
  • OpenRouter
  • Azure OpenAI
  • vLLM

等。

例如:

  • Claude Code → Ollama
  • OpenAI SDK → Gemini
  • Responses API → Chat Completions API

這類連接都能實現。

連接 Claude Code 與本機 LLM

llmglot 的用途之一,就是連接 Claude Code 與本機 LLM。

例如使用 Ollama 時,可以用:

CHAT_BASE_URL=http://localhost:11434/v1 llmglot

來啟動。

接著只要把 Claude Code 的連接目的地改成 llmglot,就能從 Claude Code 使用本機 LLM。

不用昂貴的 API 就能試用程式碼代理,這點非常有吸引力。

(補充:Ollama 支援 Messages API,所以其實不需要代理)

也支援 Responses API

近年來,使用 Responses API 的工具越來越多。

llmglot 實作了 /v1/responses 端點,除了 HTTP 之外也支援 WebSocket。

因此,像 Codex CLI 這類以 Responses API 為基礎的客戶端也更容易連接。

日誌功能很方便

llmglot 配有日誌顯示功能。

可確認的資訊包括:

  • 模型名稱
  • 供應商
  • 輸入 token 數
  • 輸出 token 數
  • 快取使用量
  • 預估成本
  • 生成速度

等。

在使用多個 LLM 的環境中,能集中管理使用情況的優點非常大。

與 LiteLLM 的差異

這裡令人好奇的是與 LiteLLM 的差異。

兩者都是位於 LLM 中間層的軟體,但目標方向大不相同。

LiteLLM 的思路

LiteLLM 會將多數 LLM 供應商統一成 OpenAI 格式。

也就是:

應用程式

LiteLLM

各 LLM 供應商

這樣的架構。

可以說,它是為了讓應用程式開發者使用統一 API 的機制。

llmglot 的思路

另一方面,llmglot 則是:

Claude Code
Codex CLI
Gemini SDK

llmglot

各 LLM 供應商

這樣的架構。

其目的在於轉換客戶端的 API 規格。

以 Claude Code 來比較

Claude Code 使用 Anthropic Messages API。

LiteLLM 基本上是以 OpenAI 相容 API 為中心,因此要直接連接 Claude Code 並不容易。

相對地,llmglot 可以直接接收 Anthropic Messages API。

因此可以實現:

Claude Code

llmglot

Ollama

這樣的架構。

這是 llmglot 非常大的特色。

該選哪一個

適合 LiteLLM 的是:

  • 開發 AI 應用程式的人
  • 想把 OpenAI SDK 當作統一介面的人
  • 想做負載平衡或 fallback 的人

另一方面,適合 llmglot 的是:

  • 想讓 Claude Code 使用其他模型的人
  • 想讓既有客戶端使用本機 LLM 的人
  • 想把 Responses API 轉成其他 API 的人
  • 不想改寫 SDK 的人

總結

在 LLM 的世界裡,越來越多情況下,問題不在模型本身,而在 API 的差異。

想使用 Claude Code,卻想搭配 Ollama。想使用 OpenAI SDK,卻想搭配 Gemini。這類需求未來只會越來越多。

llmglot 就是在中間吸收這些 API 規格差異。

  • Claude Code → Ollama
  • OpenAI SDK → Gemini
  • Responses API → Chat Completions API
  • Gemini API → OpenAI 相容 API

如果說 LiteLLM 是「給開發者的統一 API」,那麼 llmglot 就可以說是「客戶端相容代理」。

評論

載入中...

發表評論