bindings/ios/README_zh.md
Nexa SDK 支持在 iPhone / iPad / macOS(在适配平台)上进行本地 AI 推理,覆盖大语言模型(LLM)、视觉-语言模型(VLM)、文本向量化(Embedder)、语音识别(ASR)、重排序(Reranker)等能力。SDK 支持使用 Apple Neural Engine(ANE)、Metal GPU 与 CPU 进行加速推理,方便将离线或边缘推理能力集成到 iOS/macOS 应用中。
更多详细内容请参见官方文档
NexaSdk.xcframework按照 iOS SDK 文档或模型仓库的说明下载并准备模型。示例模型(可选)包括:
将模型文件放入 App 可访问的位置:
下面给出若干常用功能的 Swift 示例。这些示例与 SDK 的接口一致,可直接在 iOS/macOS 项目中调用。
import NexaSdk
import Foundation
let repoDir: URL = URL(string: "...")!
let asr = try Asr()
try await asr.load(from: repoDir)
print(asr.supportedLanguages())
let audioPath = Bundle.main.path(forResource: "test", ofType: "wav")!
let result = try await asr.transcribe(options: .init(audioPath: audioPath))
print(result.asrResult)
import NexaSdk
import Foundation
let repoDir: URL = URL(string: "...")
let embedder = try Embedder(from: repoDir)
let texts = [
"Hello world", "Good morning",
"Machine learning is fascinating",
"Natural language processing"
]
let result = try embedder.embed(texts: texts, config: .init(batchSize: Int32(texts.count)))
print(result.embeddings.prefix(10))
import NexaSdk
import Foundation
let llm = try LLM()
let repoDir: URL = URL(string: "...")!
try await llm.load(from: repoDir)
var messages: [ChatMessage] = [
ChatMessage(role: .user, content: "Hello, Tell me a story")
]
var prompt = try await llm.applyChatTemplate(messages: messages)
var stream = await llm.generateAsyncStream(prompt: prompt)
var response = ""
for try await token in stream {
print(token, terminator: "")
response += token
}
更多示例参考接口说明文档
// 设置日志等级
NexaAI.install([.error, .trace, .debug])
// 查看 SDK 版本
print(NexaAI.version)
NexaSdk.xcframework 已被正确 Embed & Sign。