
AnyLanguageModel 入门实战用 Swift 构建你的第一个 AI 聊天应用【免费下载链接】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 里用几十行代码就做出一个能聊天的 AI 应用AnyLanguageModel正是为此而生的开源框架——它是 Apple Foundation Models 框架的 API 兼容替代品只需改一行 import就能让你的 Swift 项目无缝接入 OpenAI、Gemini、Claude、Ollama 乃至本地 MLX 模型。本文是一份面向新手的Swift AI 聊天应用开发实战指南手把手带你从零搭建第一个可运行的 AI 聊天程序。什么是 AnyLanguageModel一个 Swift 大模型接入的「万能插座」简单来说AnyLanguageModel 是一个为 Swift 开发者设计的大模型接入框架。它提供了与 Apple 官方 Foundation Models 完全一致的 API让你只需要修改一行导入语句就能把代码从 Apple 官方框架平滑迁移过来- import FoundationModels import AnyLanguageModel这意味着你之前为 Apple 框架写的会话管理、提示词、工具调用代码几乎可以原样复用同时还能自由选择接入不同的大模型服务商。官方文档和核心源码位于项目的 README.md协议定义可参考 LanguageModel.swift。为什么选择 AnyLanguageModel6 大核心优势 ✨优势说明 API 兼容与 Apple Foundation Models API 对齐迁移成本极低 多模型支持一个框架接入 OpenAI、Anthropic、Gemini、Ollama、Core ML、MLX、llama.cpp 等 工具调用内置 Tool Calling 协议让 AI 能调用你的函数 结构化输出通过Generable宏直接生成类型安全的 Swift 数据️ 多模态输入原生支持在提示词中附加图片 按需加载使用 Swift Package traits只引入你需要的后端依赖其中「工具调用」和「结构化输出」是 AI 聊天应用进阶开发的两大利器稍后我们会逐一实战。上手准备环境要求与快速安装 ️开始之前请确认你的开发环境满足以下条件Swift 6.1及以上版本iOS 17.0 / macOS 14.0或 visionOS 1.0Xcode 或任意支持 Swift Package Manager 的工具链第 1 步获取源码可选如果你想阅读源码学习可以克隆仓库git clone https://gitcode.com/gh_mirrors/an/AnyLanguageModel第 2 步添加依赖。在项目的Package.swift中加入dependencies: [ .package(url: https://github.com/huggingface/AnyLanguageModel, from: 0.8.0) ]第 3 步按需启用特性traits。框架默认不加载任何本地模型后端如果你需要 Core ML 或 MLX 支持只需声明对应 trait 即可这能让你的 App 体积更小、编译更快。5 分钟写出你的第一个 AI 聊天应用 下面这段代码就是完整的聊天应用核心逻辑全程只有4 步创建模型这里使用 Apple 系统自带的SystemLanguageModel创建会话LanguageModelSession负责管理多轮对话上下文发起提问用Prompt包裹你的问题获取回复打印模型返回的内容import AnyLanguageModel // 1. 创建模型Apple 系统内置模型 let model SystemLanguageModel.default // 2. 创建会话 let session LanguageModelSession(model: model) // 3. 发起提问 let response try await session.respond { Prompt(用一句话解释什么是量子计算) } // 4. 输出结果 print(response.content)就这么简单整个交互流程由 LanguageModelSession.swift 中的会话对象统一管理它会自动维护对话记录Transcript让你无需关心上下文拼接的细节。小提示respond支持流式输出streamResponse在长回答场景下可以实现打字机效果体验更佳。一行代码切换模型多提供商实战 AnyLanguageModel 最惊艳的地方在于——切换大模型提供商只需要换一行初始化代码。会话管理、提示词、输出解析全部复用真正的「一套代码处处运行」。方式一接入 OpenAIChat Completions APIlet model OpenAILanguageModel( apiKey: ProcessInfo.processInfo.environment[OPENAI_API_KEY]!, model: gpt-4o-mini ) let session LanguageModelSession(model: model)实现细节可参考 OpenAILanguageModel.swift它还支持自定义baseURL因此任何 OpenAI 兼容的第三方服务都能接入。方式二接入 Google Geminilet model GeminiLanguageModel( apiKey: ProcessInfo.processInfo.environment[GEMINI_API_KEY]!, model: gemini-2.5-flash )方式三本地模型Ollama免费且隐私安全let model OllamaLanguageModel(model: qwen3) let session LanguageModelSession(model: model)Ollama 默认连接本机localhost:11434无需 API Key适合本地开发和隐私敏感场景见 OllamaLanguageModel.swift。方式四Apple Silicon 上的 MLX 本地大模型let model MLXLanguageModel(modelId: mlx-community/Qwen3-0.6B-4bit)此外还有 Anthropic Claude、llama.cppGGUF、Core ML 模型等多种选择全部集中在 Models 目录 中你可以按需查阅。⚠️安全提醒切勿把 API Key 硬编码进 App生产环境建议采用「用户自带 Key」或「代理服务器」方式具体方案可阅读 README.md 中的安全章节。进阶实战让 AI 学会调用你的工具 聊天应用只回答问题当然不够让 AI 能调用你的函数才是真正的生产力。AnyLanguageModel 内置了 Tool Calling 机制下面是一个查询天气的示例struct WeatherTool: Tool { let name getWeather let description 查询某个城市的天气信息 Generable struct Arguments { Guide(description: 要查询天气的城市) var city: String } func call(arguments: Arguments) async throws - String { \(arguments.city) 今天晴23°C } } let session LanguageModelSession(model: model, tools: [WeatherTool()]) let response try await session.respond { Prompt(北京今天天气怎么样) } print(response.content)这里的关键是Generable宏它让模型直接生成结构化的参数Swift 编译器负责类型安全校验彻底告别手写 JSON 解析。更强大的是你还能通过设置toolExecutionDelegate来观察、拦截甚至暂停每一次工具调用比如在工具执行前弹窗让用户确认。相关协议定义在 Tool.swift 中。除了工具调用Generable还能直接生成结构化的 Swift 数据——比如让 AI 输出一份包含姓名、年龄、性格描述的「猫咪档案」结构体无需任何字符串解析这在构建数据驱动的 AI 应用时极其好用。写在最后从「能聊」到「好用」的下一步 至此你已经掌握了用 AnyLanguageModel 构建 Swift AI 聊天应用的全部核心技能✅ 认识了这个 API 兼容的 Swift 大模型框架✅ 完成了环境配置与依赖安装✅ 写出了第一个能对话的聊天应用✅ 学会了在 OpenAI、Gemini、Ollama、MLX 之间自由切换✅ 掌握了工具调用与结构化输出的进阶玩法下一步你可以尝试给你的聊天应用加上多轮对话记忆会话对象天然支持、接入图片输入做多模态问答或者为你的工具调用增加人工确认环节提升安全性。AnyLanguageModel 的优秀之处在于它把所有复杂的大模型接入细节都封装好了让你专注业务逻辑本身。现在就打开 Xcode动手构建属于你的第一个 Swift AI 聊天应用吧【免费下载链接】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),仅供参考