在 Fedora 上以 CUDA 建置 llama.cpp
參考先前寫的 在 Windows 上以 CUDA 建置 llama.cpp 的文章,這次在 Fedora 43 環境嘗試相同的做法。只有工具鏈不同,流程幾乎一樣。
參考先前寫的 在 Windows 上以 CUDA 建置 llama.cpp 的文章,這次在 Fedora 43 環境嘗試相同的做法。只有工具鏈不同,流程幾乎一樣。
這是一份在 Windows 11 環境下,將本機 LLM 推理引擎的代表作 llama.cpp 從原始碼編譯、啟用 NVIDIA GPU 的 CUDA 後端,並實際執行模型的紀錄。
在 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 是一個可在多種 LLM API 之間相互轉換的代理伺服器。
它會接收 Anthropic Messages API、OpenAI Responses API、OpenAI Chat Completions API、Gemini API 等請求,並適當轉換後轉送到上游 API。
也就是說,即使客戶端要求的 API 規格與實際想使用的模型 API 規格不一致,也仍然可以使用。
以客戶端來說,支援:
等。
作為連接端則可使用:
等。
例如:
這類連接都能實現。
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 的工具越來越多。
llmglot 實作了 /v1/responses 端點,除了 HTTP 之外也支援 WebSocket。
因此,像 Codex CLI 這類以 Responses API 為基礎的客戶端也更容易連接。
llmglot 配有日誌顯示功能。
可確認的資訊包括:
等。
在使用多個 LLM 的環境中,能集中管理使用情況的優點非常大。
這裡令人好奇的是與 LiteLLM 的差異。
兩者都是位於 LLM 中間層的軟體,但目標方向大不相同。
LiteLLM 會將多數 LLM 供應商統一成 OpenAI 格式。
也就是:
應用程式
↓
LiteLLM
↓
各 LLM 供應商
這樣的架構。
可以說,它是為了讓應用程式開發者使用統一 API 的機制。
另一方面,llmglot 則是:
Claude Code
Codex CLI
Gemini SDK
↓
llmglot
↓
各 LLM 供應商
這樣的架構。
其目的在於轉換客戶端的 API 規格。
Claude Code 使用 Anthropic Messages API。
LiteLLM 基本上是以 OpenAI 相容 API 為中心,因此要直接連接 Claude Code 並不容易。
相對地,llmglot 可以直接接收 Anthropic Messages API。
因此可以實現:
Claude Code
↓
llmglot
↓
Ollama
這樣的架構。
這是 llmglot 非常大的特色。
適合 LiteLLM 的是:
另一方面,適合 llmglot 的是:
在 LLM 的世界裡,越來越多情況下,問題不在模型本身,而在 API 的差異。
想使用 Claude Code,卻想搭配 Ollama。想使用 OpenAI SDK,卻想搭配 Gemini。這類需求未來只會越來越多。
llmglot 就是在中間吸收這些 API 規格差異。
如果說 LiteLLM 是「給開發者的統一 API」,那麼 llmglot 就可以說是「客戶端相容代理」。