OpenAI流式补全

使用 OpenAI API 的流式文本生成。

支持通过 ObservableObjectAsyncStream 进行流式结果传输,以及通过 async/await 进行非流式结果传输。

支持基于消息的模型(例如 ChatGPT)和基于文本的模型(例如 davinci)。

通过 Swift Package Manager 安装

您可以选择以下方式

调用 ChatGPT

提供 API 密钥和提示

let 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)

选项 A:生成文本(流式,asyncStream)

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
    }
}

选项 B:生成文本(非流式,async/await)

Task {
    do {
        self.completedText = try await api.completeChat(.init(messages: messages))
    } catch {
        print("Error: \(error)")
    }
}

调用其他文本 API

请参阅 OpenAIAPI+TextCompletion.swift