使用 OpenAI API 的流式文本生成。
支持通过 ObservableObject
或 AsyncStream
进行流式结果传输,以及通过 async/await
进行非流式结果传输。
支持基于消息的模型(例如 ChatGPT)和基于文本的模型(例如 davinci)。
您可以选择以下方式
Package.swift
dependencies
数组中:.package(url: "https://github.com/nate-parrott/openai-streaming-completions-swift", from: "1.0.1")
File -> Add Packages
并粘贴此仓库的 URLlet messages: [OpenAIAPI.Message] = [
.init(role: .system, content: "You are a helpful assistant. Answer in one sentence if possible."),
.init(role: .user, content: prompt)
]
let api = OpenAIAPI(apiKey: key)
Task {
let stream = try api.completeChatStreaming(.init(messages: promptMessages))
for await message in stream {
print("\(message.content)") // each message contains a small part of the response
}
}
Task {
do {
self.completedText = try await api.completeChat(.init(messages: messages))
} catch {
print("Error: \(error)")
}
}