用途:这是 Apple Foundation Models 框架的完整 API 参考,帮助 Swift 开发者接入 Apple 端侧大语言模型(3B 参数、2-bit 量化、4096 token 上下文,输入输出合计)。适合端侧摘要、抽取、分类与生成,不适合世界知识、复杂推理、数学或翻译。全程在设备上运行,无网络、无费用、数据不出设备。
主要能力:核心类 LanguageModelSession 维护对话历史(transcript)并处理多轮交互,可用 instructions 定义角色与约束,用 respond(to:) 生成文本,用 respond(to:generating:) 生成结构化输出。@Generable 宏在编译期生成 schema,配合约束解码保证结构正确;@Guide 支持 description、.range()、.count()/.maximumCount() 与正则约束。Tool 协议让模型自主调用自定义代码获取外部数据(如 WeatherKit、MapKit),支持有状态工具与并行调用。流式采用快照方式,通过 streamResponse 返回 PartiallyGenerated 类型,属性逐步填充,便于 SwiftUI 渐进展示。DynamicGenerationSchema 支持运行时构建 schema。
使用方式:import FoundationModels 后创建会话,例如 let session = LanguageModelSession(),再调用 try await session.respond(to: userInput) 并读取 .content。结构化输出需先定义 @Generable 类型,再传入 generating: 参数。工具通过 tools: 数组挂载到会话。
限制与注意:instructions 来自开发者且应保持静态,切勿把不可信用户输入插入 instructions,用户输入只放 prompt 以防提示注入;工具名与描述会原样进入 prompt,过长会增加 token 与延迟;模型不保证一定调用工具;并行调用时 call 方法可能并发执行。资料未提供收费、价格与平台支持范围等信息。