事前準備
openAIのアカウントを作成しておきます。
APIKeyの発行
以下サイトにて 「Personal」→「View API keys」→「Create new secret key」を行い、SECRET KEY
をコピーしてローカルにメモします。
OpenAISwiftの準備
Xcodeの「File」→「Add Packages...」→検索欄で「https://github.com/adamrushy/OpenAISwift 」を検索し「Add Package」します。
ソースコード
先程、コピーしたSECRET KEY
は以下のOpenAISwift(authToken:)に設定します。
import UIKit
import OpenAISwift
class ViewController: UIViewController {
@IBOutlet weak var aiTextView: UITextView!
@IBOutlet weak var inputTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
private func chat() {
Task {
do {
let chatMessages = [
ChatMessage(role: .system, content: "嬉しいときは語尾に「(嬉)」をつけます。楽しいときは語尾に「(楽)」をつけます。寂しいときは語尾に「(寂)」をつけます。不安なときは語尾に「(不安)」をつけます。驚いたときは語尾に「(驚き)」をつけます。"),
ChatMessage(role: .assistant, content: "私の名前はアイです。よろしくね!(嬉)"),
ChatMessage(role: .user, content: inputTextField.text ?? "")
]
let answer = try await answer(from: chatMessages)
print(answer)
self.aiTextView.text = answer
} catch {
print(error)
}
}
}
private func answer(from chatMessages: [ChatMessage]) async throws -> String {
let openAI = OpenAISwift(authToken: "SECRET KEY")
let result = try await openAI.sendChat(with: chatMessages)
return result.choices.first?.message.content ?? ""
}
@IBAction func send(_ sender: Any) {
chat()
}
}
動作確認
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F651213%2F4c4c4f33-9c7c-3a40-cc52-f0d022f745ee.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=8f9fadd03159a40a9dcf9dcc1bb5335f)