SwiftOpenAI 项目介绍
SwiftOpenAI 是一个由社区驱动的库,用于在 Swift 应用中与 OpenAI 的 API 进行交互。它旨在帮助开发者更轻松地使用 OpenAI 的先进 AI 模型,如 GPT-4 和 GPT-3,并将在未来支持更多的模型。这款 SDK 强大且易于使用,能够无缝地集成到您的 Swift 应用中。
Demo 应用
SwiftOpenAI 提供了一个示例应用,开发者只需在 SwiftOpenAI.plist 文件中添加 OpenAI API Key,即可体验 SDK 的核心功能。要尝试此示例应用,只需打开 Demo.xcodeproj 文件,然后在模拟器或真实设备上编译运行项目。
新项目安装指南
使用 SwiftOpenAI 开始新项目非常简单。只需打开 Xcode,导航到 Swift Package Manager 部分,将 Github 库的 URL(https://github.com/SwiftBeta/SwiftOpenAI.git)粘贴进去即可完成安装。
功能使用
安全保存 API Key
为了更安全地使用 SwiftOpenAI,不建议直接在代码中硬编码 API Key,可以使用 plist 文件来保存。创建一个如 Config.plist 的文件,在其中添加 OpenAI_API_Key,并在代码中通过以下方式加载:
import Foundation
import SwiftOpenAI
struct Config {
static var openAIKey: String {
guard let filePath = Bundle.main.path(forResource: "Config", ofType: "plist"),
let plist = NSDictionary(contentsOfFile: filePath),
let value = plist.object(forKey: "OpenAI_API_Key") as? String else {
fatalError("Couldn't find key 'OpenAI_API_Key' in 'Config.plist'.")
}
return value
}
}
var openAI = SwiftOpenAI(apiKey: Config.openAIKey)
图像处理
使用 SwiftOpenAI,可以通过提供的 DALL-E 3 等模型生成、编辑或变换图像。示例如下创建一个新图像:
do {
let image = try await openAI.createImages(
model: .dalle(.dalle3),
prompt: "生成一个海滩的风景图",
numberOfImages: 1,
size: .s1024
)
print(image)
} catch {
print("Error: \(error)")
}
音频处理
SwiftOpenAI 还支持音频文件的生成、转录和翻译。例如,可以将文字转换为音频,或将音频文件转录为文本。
聊天功能
可以通过聊天功能体验 AI 生成的对话响应,包括带有或不带有流的聊天、以及带图像输入的聊天。
模型列表
SDK 提供了查看 OpenAI API 中提供的不同 AI 模型列表的功能,开发者可以选择合适的模型进行使用。
嵌入、审核和完成
除此之外,SwiftOpenAI 还支持文本嵌入、内容审核以及根据给定提示进行文本生成等功能,均通过简单的 API 接口即可实现。
代码示例
以下是如何在 SwiftUI 中使用 SwiftOpenAI 进行简单聊天的示例:
import SwiftUI
import SwiftOpenAI
struct ContentView: View {
var openAI = SwiftOpenAI(apiKey: "YOUR-API-KEY")
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundColor(.accentColor)
Text("Hello, world!")
}
.padding()
.onAppear {
Task {
do {
for try await newMessage in try await openAI.createChatCompletionsStream(model: .gpt3_5(.turbo),
messages: [.init(text: "Generate a Hello World in Swift", role: .user)],
optionalParameters: .init(stream: true)) {
print("New Message Received: \(newMessage) ")
}
} catch {
print(error)
}
}
}
}
}
开源许可
SwiftOpenAI 遵循 MIT 开源许可,任何人都可以自由使用、复制、修改和分发该软件。
通过 SwiftOpenAI,开发者可以更高效地将 OpenAI 的强大 AI 能力应用于 Swift 项目中,为应用程序带来智能化的功能。