SuperAPI AI 工具集

on-device-ai

智能体与模型

查看项目

更新于 10-13 15:41

技能介绍

用途

该技能用于构建 iOS 26+ 应用的端侧 AI 功能,基于 Apple 的 Foundation Models 框架与 Apple 端侧 3B 参数大语言模型,资料描述其为免费、离线、隐私。

要求

  • iOS 26+ / macOS Tahoe 26+ / iPadOS 26+
  • Apple Silicon(M1 或更新)
  • 设备上已启用 Apple Intelligence

主要能力

资料列出以下核心能力与 API 用法:

基础文本生成

使用 LanguageModelSession 发起请求:

import FoundationModels

let session = LanguageModelSession()
let response = try await session.respond(to: "Summarize this article in 3 bullets")
print(response.content) // String

流式响应

let stream = session.streamResponse(to: "Explain quantum computing")
for try await partial in stream {
    print(partial.content) // Incremental text
}

使用 @Generable 结构化输出

@Generable
struct RecipeSuggestion {
    var name: String
    var ingredients: [String]
    var cookingTimeMinutes: Int
    var difficulty: Difficulty

    enum Difficulty: String, Generable {
        case easy, medium, hard
    }
}

let session = LanguageModelSession()
let recipe: RecipeSuggestion = try await session.respond(
    to: "Suggest a quick pasta recipe",
    generating: RecipeSuggestion.self
)

使用 @Guide 引导式生成

@Guide("Generate a haiku about nature")
struct NatureHaiku {
    @Guide("First line, 5 syllables")
    var line1: String
    @Guide("Second line, 7 syllables")
    var line2: String
    @Guide("Third line, 5 syllables")
    var line3: String
}

工具调用(Tool Calling)

struct WeatherTool: Tool {
    let name = "get_weather"
    let description = "Get current weather for a location"

    struct Input: Codable {
        let location: String
    }

    struct Output: Codable {
        let temperature: Double
        let condition: String
    }

    func call(with input: Input) async throws -> Output {
        // Fetch weather from API
    }
}

let session = LanguageModelSession(tools: [WeatherTool()])
let response = try await session.respond(to: "What's the weather in London?")

使用方式与最佳实践

  • 使用前始终检查 LanguageModelSession.isAvailable。
  • 当模型不可用(旧设备、未开启 Intelligence)时提供回退 UI。
  • 使用 @Generable 获取结构化输出,而不是解析原始文本。
  • 保持提示简洁——3B 模型最适合清晰、聚焦的指令。
  • 对需要真实数据的操作(API 调用、数据库查询)使用工具。
  • 对较长输出使用流式响应以获得更好的感知性能。

适用场景

资料未单独列出明确的业务场景清单,可参考上述能力范围:端侧文本生成、流式文本输出、结构化数据生成(如菜谱建议)、引导式生成(如俳句)、需要真实数据的工具调用(如天气查询)等。

限制与不适用场景

  • 复杂推理任务(建议改用服务端 Claude/GPT)。
  • 需要互联网数据的任务(模型仅离线)。
  • 图像/音频生成(仅支持文本)。
  • 用户未启用 Apple Intelligence 时。

资源

资料列出以下参考:Apple 的 Foundation Models Framework;WWDC25 “Bring intelligence to your app”;AppCoda 的 Foundation Models Tutorial。