AnyLanguageModel: 蘋果平台的統一 LLM API
AnyLanguageModel 提供本地與遠端 LLM 的統一介面
Hugging Face 已宣布 AnyLanguageModel,這是一個 Swift 套件,旨在減少將大型語言模型 (LLM) 整合到 Apple 平台應用程式中的摩擦。該庫充當 Apple Foundation Models 框架的直接替換,使開發者能透過更改單一 import 語句在本地開源模型與雲端前沿模型之間切換,同時保持相同的 API。
多樣化模型提供者的支援
AnyLanguageModel 透過一致的介面,使開發者能使用廣泛的後端。此方法允許快速實驗,使開發者能先從雲端提供者開始,並在使用案例驗證後遷移至本地模型。
支援的提供者包括:
- Apple Foundation Models: 在 macOS 26+ 和 iOS 26+ 上的原生整合。
- Local Inference: 支援 Core ML (Neural Engine 加速)、MLX (Apple Silicon 最佳化)、llama.cpp (GGUF 模型) 和 Ollama (HTTP API)。
- Cloud Providers: 與 OpenAI、Anthropic 和 Google Gemini 的整合。
- Hugging Face Inference Providers: 透過 Hugging Face 存取數百個雲端模型。
基於 Apple Foundation Models 的 API 設計
AnyLanguageModel 使用 Apple Foundation Models 框架作為其基礎 API 模板,而不是建立新的抽象層。此設計選擇基於三個主要原因:
- Ergonomics: 現有框架利用 Swift 宏和抽象來處理會話、工具和生成,這些與 LLM 功能映射良好。
- Low Conceptual Overhead: 因為多數針對 Apple 平台的 Swift 開發者會遇到 Foundation Models API,因此在其基礎上開發可降低學習曲線。
- Stability: 使用「最小公倍數」方法可避免過度的抽象層,這些層可能會使開發者與他們要解決的問題疏離。
透過 Swift 6.1 套件特性進行優化的依賴管理
為防止依賴臃腫,AnyLanguageModel 使用 Swift 6.1 套件特性。這使開發者能僅選入他們所需的特定後端,確保不會不必要地將重量級依賴拉入專案。
可用的特性包括 CoreML、MLX 和 Llama(用於 llama.cpp / llama.swift)。預設情況下,套件包含基礎 API 和雲端提供者,這些僅依賴標準的 URLSession 網路。
視覺語言模型的擴充功能
雖然 Apple 目前的 Foundation Models 框架不支援在提示中發送圖像,但 AnyLanguageModel 擴充 API 以支援視覺語言模型 (VLM)。這使開發者能將圖像發送給相容的模型(例如 Claude)來執行圖像描述、螢幕截圖文字擷取和圖表分析等任務。
路線圖與未來發展
AnyLanguageModel 目前處於 pre-1.0 階段。核心 API 穩定,但專案正積極努力將以下功能帶到所有適配器:
- Tool calling 跨越所有提供者。
- MCP integration 用於工具和引出。
- Guided generation 用於結構化輸出。
- Performance optimizations 用於本地推理。
目標是提供必要的腳手架,以在 Apple 平台上構建無縫的代理工作流程,在此工作流程中,模型可以存取系統資源並使用工具來完成複雜任務。