AnyLanguageModel: 适用于 Apple 平台的统一 LLM API

AnyLanguageModel 为本地和远程 LLMs 提供统一接口

Hugging Face 已宣布 AnyLanguageModel,这是一个 Swift 包,旨在减少将大型语言模型(LLMs)集成到 Apple 平台应用中的摩擦。该库充当 Apple Foundation Models 框架的直接替换,使开发者只需更改一个导入语句,即可在本地开源模型和基于云的前沿模型之间切换,同时保持相同的 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's Foundation Models 的 API 设计

AnyLanguageModel 使用 Apple's Foundation Models 框架作为其基础 API 模板,而不是创建新的抽象。此设计选择是出于三个主要原因:

  1. Ergonomics: 现有框架利用 Swift 宏和抽象来处理会话、工具和生成,这些与 LLM 功能映射良好。
  2. Low Conceptual Overhead: 因为大多数面向 Apple 平台的 Swift 开发者会遇到 Foundation Models API,因此在此基础上构建可以降低学习曲线。
  3. Stability: 使用‘最小公约数’方法可以避免过多的抽象层,这些抽象层可能会将开发者与他们所解决的问题隔开。

通过 Swift 6.1 包特性优化依赖管理

为了防止依赖臃肿,AnyLanguageModel 使用 Swift 6.1 包特性。这使开发者可以仅选择他们需要的特定后端,确保不必要地将重型依赖拉入项目。

可用的特性包括 CoreMLMLXLlama(用于 llama.cpp / llama.swift)。默认情况下,该包包含基础 API 和云提供商,这些仅依赖标准的 URLSession 网络。

视觉语言模型的扩展能力

虽然 Apple 当前的 Foundation Models 框架不支持在提示中发送图像,但 AnyLanguageModel 扩展了 API 以支持视觉语言模型(VLM)。这使开发者能够将图像发送到兼容的模型(例如 Claude)以执行诸如图像描述、从截图中提取文本和图表分析等任务。

路线图和未来发展

AnyLanguageModel 目前处于预-1.0 状态。核心 API 是稳定的,但项目正在积极努力将以下功能带到所有适配器:

  • 工具调用 在所有提供商中。
  • MCP 集成 用于工具和 elicitation。
  • 引导生成 用于结构化输出。
  • 性能优化 用于本地推理。

目标是为在 Apple 平台上构建无缝的代理工作流提供必要的脚手架,在此过程中,模型可以访问系统资源并使用工具来完成复杂任务。

Sources