去年 11 月,我们推出了AnyLanguageModel在本博客上:它是 Apple Foundation Models 框架的直接替代品,让你可以选择应用所使用的模型和提供商。我们听到一些应用开发者对本地模型感到好奇,但并不总是清楚如何上手。他们还想避免支持多个推理提供商所带来的额外复杂性。AnyLanguageModel 正是源于这些反馈。
本地推理和托管推理各有优势,二者在构建新一代智能应用中都有一席之地。共享 API 让为每项任务选择合适的模型变得更容易。
一年过去,历经数十个版本之后,AnyLanguageModel 1.0发布了,同时发布的还有swift-huggingface 1.0和swift-xet 1.0。
以下是变化内容以及后续计划:
可直接替换的兼容 API
AnyLanguageModel 的核心理念保持不变:使用 Foundation Models API,搭配适合你应用的模型。要开始使用,请修改你的import语句:
- import FoundationModels
+ import AnyLanguageModel
之后同样的会话代码即可用于系统模型、通过 llama.cpp、MLX 和 Core ML 使用的开源权重模型,以及下面列出的托管提供商。
过去一年,我们新增了多项重要功能:
- 工具调用适用于所有提供商。
- 引导式生成同样适用于所有提供商,包括嵌套的
@Generable类型及其数组。 - 图像支持让你可以使用 Foundation Models 27 的语法将图像附加到提示中,包括在 iOS、macOS 和 visionOS 27 上使用系统模型时。
在 OS 27 上,AnyLanguageModel 还可用于任何符合 Foundation Models 的LanguageModel协议的模型,包括Core AI模型。
除了 AnyLanguageModel,我们还构建了swift-huggingface和swift-xet,将来自 Hub 的加速模型下载带到 Swift 应用中。
托管模型同样支持
今年对托管模型的支持也有所扩展。AnyLanguageModel 现在支持:
- OpenAI 的 Chat Completions 和 Responses API
- Open Responses,适用于任何具有兼容端点的提供商
- Anthropic 的 Messages API,支持自适应思考和 effort 选项
- Google 的 Gemini API
- Ollama
- OS 27 上的 Private Cloud Compute
- HF Mirror 推理提供商,以及通过自定义 base URL 使用的其他 OpenAI 兼容端点,例如 OpenRouter
借助 Inference Providers,你可以使用因体积过大而无法在设备上运行的开放权重模型,且会话代码保持不变:
let model = OpenAILanguageModel(
baseURL: URL(string: "https://router.hf-mirror.com/v1/")!,
apiKey: ProcessInfo.processInfo.environment["HF_TOKEN"]!,
model: "openai/gpt-oss-120b",
apiVariant: .chatCompletions
)
托管提供商获得与本地模型相同的功能:引导式生成、带流式传输的工具调用,以及响应中的 token 用量。
推理内容现在也成为对话记录的一部分。当你切换提供商时,如果新提供商无法重放推理块,这些推理块会自动从请求中省略。
API 密钥来自闭包而非字符串,因此你的应用可以从自己的服务器获取短期令牌。README说明了何时应让用户自带密钥,以及何时应通过代理路由请求。
AnyLanguageModel 也能在 Linux 上运行,因此同一份代码可以在服务器上使用。
开放权重模型变得更好了
在我们让本地模型更易用的同时,模型本身也变得更强大,使得小模型成为一个不错的起点。以下是目前 Hub 上下载量最高的一些模型:
- Gemma 4 E2B来自 Google,GGUF 格式,在
Q4_0采用量化感知训练的情况下约 3.4 GB。 - LFM2.5 2.6B来自 Liquid AI,GGUF 格式,在
Q4_K_M下约 1.7 GB。 - 面向 MLX 的 Qwen3.8 27B来自阿里巴巴,4 位量化下约 16 GB。
前两个模型可以装在 iPhone 上,而 Qwen3.8 27B 可在内存 32 GB 或以上的 Mac 上运行。选择 MLX 模型只需一行代码:
let model = MLXLanguageModel(modelId: "mlx-community/Qwen3.8-27B-4bit")
而如果你手头有四台顶配 Mac Studio,GLM-5.3来自 Z.ai,BF16 格式下约需 1.5 TB。对我们其他人来说,可以通过 Inference Providers 使用它。
升级到 1.0
dependencies: [
.package(
url: "https://github.com/huggingface/AnyLanguageModel",
from: "1.0.0",
traits: ["MLX"]
)
]
如果你要升级现有应用,请参阅AnyLanguageModel、swift-huggingface和swift-xet发布说明中的迁移指南,以帮助更新你的代码。
社区反馈和贡献塑造了我们的多项主要功能。感谢每一位贡献者帮助 AnyLanguageModel 对应用开发者更加有用。
下一步
语言模型已被证明是为产品注入智能的强大工具。 它们也是开发者可以使用的众多模型类型之一。 我们很高兴将同样的方法扩展到更多能力: 熟悉的 Swift API,并可在设备上运行多种模型供选择。 即将推出:做决策的模型,以及能聆听的模型。