huggingface/AnyLanguageModel
An API-compatible, drop-in replacement for Apple's Foundation Models framework with support for custom language model providers.
它解决了什么问题
AnyLanguageModel 是一个 Swift 包,可作为 Apple 的 Foundation Models 框架的直接替代品。它允许开发者使用各种自定义语言模型提供商——既包括设备端也包括基于云的——同时保持一致的 API,减少供应商锁定,并简化不同 LLM 后端的集成。
它是如何工作的
通过将 import FoundationModels 语句替换为 import AnyLanguageModel,开发者可以访问各种提供商。该库使用 Swift 6.1 特性来有条件地包含重型依赖项(如 Core ML、MLX 或 llama.cpp),确保最终二进制文件中只包含必要的后端,以保持构建时间和构建体积较小。
适用人群
面向为 iOS、macOS、visionOS 或 Linux 构建的 Swift 开发者,他们希望使用统一接口将 LLM 集成到应用程序中,该接口同时支持本地设备端模型和云 API。
亮点
- 广泛的提供商支持:支持 Apple Foundation Models、Core ML、MLX、llama.cpp、Ollama、Anthropic、Google Gemini 和 OpenAI。
- 引导生成:使用
@Generable和@Guide实现强类型输出,避免手动字符串解析。 - 工具调用:全面支持所有提供商的工具调用,包括用于观察或控制执行的委托系统。
- 多模态能力:支持各种提供商的图像输入(在模型支持的情况下)。
- 推理支持:能够单独捕获和显示推理部分,与最终答案分开,特别与 Anthropic 的思考模型集成。
- 令牌跟踪:详细跟踪不同提供商的输入、输出、缓存和推理令牌。
相关
- Dispatch
- 项目
- 项目
- 项目
- 项目