AnyLanguageModel 是什么?Swift 开发者接入大模型的终极一站式方案 AnyLanguageModel 是什么Swift 开发者接入大模型的终极一站式方案【免费下载链接】AnyLanguageModelAn API-compatible, drop-in replacement for Apples Foundation Models framework with support for custom language model providers.项目地址: https://gitcode.com/gh_mirrors/an/AnyLanguageModel如果你是一名 Swift 开发者想要在 App 里接入大模型却苦于每个厂商的 SDK 各不相同、API 五花八门——那么AnyLanguageModel正是你需要的一站式大模型接入方案。它是一个与 Apple 官方 Foundation Models 框架 API 完全兼容的开源 Swift 包只需把import FoundationModels改成import AnyLanguageModel就能在**本地模型Core ML、MLX、llama.cpp、Ollama与云端模型OpenAI、Anthropic、Gemini 等**之间自由切换而业务代码几乎不用改动。本文将带你快速认识这个 Swift 大模型开发利器。为什么 Swift 开发者需要它传统 Swift 接入大模型的痛点非常明显厂商 SDK 碎片化OpenAI、Anthropic、Gemini 各有各的请求格式和类型系统切换厂商就要重写一大片代码。本地与云端割裂想在本地跑 MLX / llama.cpp又要对接云端 API往往需要维护两套调用逻辑。类型不安全大模型返回的是字符串解析 JSON 全靠手写容易出错、难维护。AnyLanguageModel 用一个统一的LanguageModel协议把这些全部封装起来让大模型在 Swift 里变成一等公民。AnyLanguageModel 是什么一句话说清楚一句话它是 Apple Foundation Models 框架的即插即用替代品同时支持自定义模型提供方。官方定位是An API-compatible, drop-in replacement for Apples Foundation Models framework。也就是说苹果官方框架怎么写AnyLanguageModel 就怎么写官方框架不支持的模型比如本地 Ollama、开源 GGUF它也能跑。核心抽象都集中在 Sources/AnyLanguageModel/ 目录下例如统一的 LanguageModel.swift、会话管理 LanguageModelSession.swift以及模型实现 Models/。接入有多简单只改一行 import ✨这是它最打动人的地方。原来用 Apple 官方框架的代码迁移成本几乎为零- import FoundationModels import AnyLanguageModel改完 import 之后代码风格和官方 API 完全一致let model SystemLanguageModel.default let session LanguageModelSession(model: model) let response try await session.respond { Prompt(用一句话解释量子计算) } print(response.content)一个框架九大模型提供方全覆盖这是 AnyLanguageModel 最核心的亮点。下表一目了然模型类型提供方说明 苹果官方Foundation Models系统级语言模型macOS/iOS 26 本地推理Core ML.mlmodelc模型⚡ 本地推理MLXApple Silicon 上的 MLX 模型 本地推理llama.cppGGUF 量化模型 本地服务Ollama默认连localhost:11434 云端 APIOpenAIChat Completions Responses 双 API 云端 APIAnthropicClaude Messages API 云端 APIGoogle GeminiGemini API 云端 APIOpen Responses多厂商兼容端点每个模型的实现都可以在 Models/ 目录下找到源码比如 OllamaLanguageModel.swift、OpenAILanguageModel.swift。三大杀手级特性开箱即用 1. 结构化输出Guided Generation用Generable和Guide宏让模型直接生成类型安全的 Swift 结构体彻底告别手写 JSON 解析Generable(description: 猫咪的基础资料) struct CatProfile { var name: String Guide(description: 猫咪的年龄, .range(0...20)) var age: Int } let response try await session.respond( to: 生成一只可爱的救助猫, generating: CatProfile.self )宏的实现位于 AnyLanguageModelMacros/相关协议在 Generable.swift。2. 工具调用Tool Calling定义好Tool协议之后模型可以自动调用你的函数如查询天气、查数据库并在ToolExecutionDelegate中观察或拦截每次执行非常适合做用户确认类交互。3. 图像输入多模态OpenAI、Anthropic、Gemini、Open Responses 原生支持图片输入MLX 和 Ollama 使用视觉模型VLM也能传图比如提取收据金额、对比海报等场景一行参数即可搞定。Package Traits按需加载控制包体积 AnyLanguageModel 还引入了 Swift 6.1 的Package Traits 机制默认不启用任何后端用哪个开哪个.package( url: https://gitcode.com/gh_mirrors/an/AnyLanguageModel, from: 0.8.0, traits: [CoreML, MLX] // 按需开启 )CoreMLCore ML 模型支持MLXMLX 模型支持Llamallama.cpp 支持AsyncHTTPClient异步 HTTP 客户端这能显著减小二进制体积、加快构建速度是工程化程度很高的设计。快速开始两步接入步骤第一步添加依赖。在Package.swift中声明dependencies: [ .package(url: https://gitcode.com/gh_mirrors/an/AnyLanguageModel, from: 0.8.0) ]第二步引入并创建一个会话。选一个你喜欢的模型比如本地 Ollamalet model OllamaLanguageModel(model: qwen3) let session LanguageModelSession(model: model) let response try await session.respond { Prompt(讲个笑话) }就这么简单一个能对话的 App 就完成了。⚠️ 注意需要Swift 6.1支持 iOS 17 / macOS 14 / visionOS 1 以及 Linux。API 密钥安全提醒 使用 OpenAI、Anthropic、Gemini 等云端服务时千万不要把 API Key 硬编码进 App——攻击者可以逆向二进制或抓包提取密钥。推荐两种安全做法BYO用户自带 Key用户输入自己的 Key存入系统钥匙串Keychain。代理服务器密钥只存服务端客户端通过短期令牌访问。总结AnyLanguageModel 的价值在于一套 Swift API通吃本地与云端九大模型提供方。无论你是想快速 Demo、做本地隐私推理还是构建生产级多模型应用它都能大幅降低接入成本堪称 Swift 大模型开发的终极一站式方案。如果你是 Swift 开发者且正打算接大模型不妨现在就 clone 下来试试吧【免费下载链接】AnyLanguageModelAn API-compatible, drop-in replacement for Apples Foundation Models framework with support for custom language model providers.项目地址: https://gitcode.com/gh_mirrors/an/AnyLanguageModel创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考