はじめに
最近、流行りのChatGPTを使ってみましたが、ChatGPTがコードレビューしてみたり、記事を書いたりと、自然言語生成モデルなどに詳しくない自分としては衝撃を受けました。
そんなChatGPTですが、ChatGPTが搭載しているのと同じ言語モデルであるGPT-3
を、OpenAIのAPIから利用できるみたいです。(この記事を拝見するまでは、ChatGPTの認識がずれていました)
そのためこの記事では、ChatGPTのような対話を音声対話で実行できるようなiOSアプリを作る過程での、GPT-3
との連携部分をまとめました。
下図は、「スウィフトで足し算する関数を教えて」の発話内容に対して、OpenAIのAPIからの返答として、実際のSwift言語の「足し算する関数」を受け取っている様子です。
※「Swift」で認識されず、「スウィフト」になっています。
GitHub
GPT-3との連携
冒頭でも述べましたが、ChatGPTと同じ言語モデルであるGPT-3
をOpenAIのAPIを介して利用できます。
今回は、OpenAIのHTTP APIライブラリであるOpenAISwift
を利用して、GPT-3系の言語モデルを利用します。
1. OpenAIでAPI KEYの発行
まず、GPT-3を利用するために、「OpenAI - User - API Keys」の「+ Create new secret key」からAPI KEYを作成します。
2. XcodeのSPMでOpenAISwiftをインポート
下記URLからOpenAISwiftをSPMでインポートします。
GitHub - OpenAISwift
3. OpenAISwiftの実装部分
まず、プロジェクト内にOpenAISwift
をインポートします。
import OpenAISwift
次に、引数authToken
に「1. OpenAIでAPI KEYの発行」にて発行したAPI keyを記述し、OpenAISwiftのインスタンスを作成します。
client = OpenAISwift(authToken: "ここにAPI KEY")
利用する際には、下記のように関数sendCompletion
の引数に質問したいテキストtext
と最大トークン数maxTokens
を指定してください。
client?.sendCompletion(with: text, maxTokens: maxTokens, completionHandler: { result in
switch result {
case .success(let success):
let text = success.choices.first?.text ?? ""
break
case .failure(let failure):
break
}
})
最後に
今回作ったアプリで「プログラマーが活躍する方法」について聞いてみました。
精進します。。
間違いなどありましたら、ご指摘いただければと思います。