最近流行りのChatGPTのAPIをSwiftで叩いてみました。
完成
質問したら、数秒後に回答が返ってきます。
サンプルコード
前提として、SPMでOpenAISwiftをインポートしてください。
検索URLはこちら「https://github.com/adamrushy/OpenAISwift」
次に、OpenAIのAPIのキーが必要になるので、こちらのサイトで[Create new secret key]ボタンを押してAPIキーを取得してください。取得したAPIキーはここにAPIキーを記載というところに置き換えてください。
import SwiftUI
import OpenAISwift
struct ContentView: View {
@State private var inputText = ""
@State private var messageArray: [String] = []
private var client = OpenAISwift(authToken: "ここにAPIキーを記載")
var body: some View {
VStack(alignment: .leading) {
ForEach(messageArray, id: \.self) { message in
Text(message)
Spacer()
}
HStack {
TextField("ここに質問を入力", text: $inputText)
Button("送信") {
send()
}
}
}
.padding()
}
func send() {
guard !inputText.trimmingCharacters(in: .whitespaces).isEmpty else { return }
messageArray.append("自分: \(inputText)")
client.sendCompletion(with: inputText, maxTokens: 500, completionHandler: { result in
switch result {
case .success(let model):
DispatchQueue.main.async {
let output = model.choices.first?.text ?? ""
self.messageArray.append("ChatGPT: \(output)")
self.inputText = ""
}
case .failure:
break
}
})
}
}
