この記事ではOpenAIのAPIをGo言語でどのように使用するのかを解説していきます。簡単なリクエストまでの解説なので、それ以降は適宜カスタマイズしていただければと思います。
OpenAI APIの概要
OpenAI APIを用いることで、GPT-3などの言語モデルにアクセスができるようになります。これにより、テキスト補完、要約、翻訳などの様々な自然言語処理機能を自身のWebアプリに追加することができます。
OpenAI APIのセットアップ手順
APIキーの取得
まずはAPIキーを取得します。OpenAPIにアクセスしてアカウントを作成して、ログインします。
ログインすると下記のような選択画面が表示されるので、「API」をクリックします。
右上に表示されるアイコンをクリックし、メニュー中の「View API keys」をクリックします。
続いて「Create new secret key」をクリックし、APIキーを作成します。こちらのキーは後ほど使用するので、どこかに控えておくかタブを消さずに置いておいてください。
Goプロジェクトの作成
続いてGoの実行環境を整えていきます。本記事では私が以前に作成した下記リポジトリを使用することとします。
ローカルにクローンして、実行用コンテナを立ち上げます。
# 学習用リポジトリをローカルにクローン
$ git clone https://github.com/fumiakikobayashi/go-learning-environment
# コンテナを立ち上げる
$ make up
go-openaiのインストール
今回はOpenAI APIを使用するにあたって下記のgo-openai
を使用します。
$ go get github.com/sashabaranov/go-openai
これでAPIを使用する準備は完了です。続いて簡単なリクエストをしてみます。
GoからOpenAI APIに対して基本的なリクエスト(例えばテキスト生成)を送信する具体的なコード例
READMEに書いてある下記のコードを実行してみます。「your token」と書いてある箇所に先ほど取得したAPIキーを入れてください。
package main
import (
"context"
"fmt"
"github.com/sashabaranov/go-openai"
)
func main() {
client := openai.NewClient("your token")
resp, err := client.CreateChatCompletion(
context.Background(),
openai.ChatCompletionRequest{
Model: openai.GPT3Dot5Turbo,
Messages: []openai.ChatCompletionMessage{
{
Role: openai.ChatMessageRoleUser,
Content: "Hello!",
},
},
},
)
if err != nil {
fmt.Printf("ChatCompletion error: %v\n", err)
return
}
fmt.Println(resp.Choices[0].Message.Content)
}
実行すると下記のような結果が返ってきます。
/go/src # go run main.go
Hello! How can I assist you today?
これでOpenAI APIのリクエストは完了です。
記事の要点のまとめ
以上、簡単にですが、Go言語でOpenAI APIを叩くまでの流れを解説しました。下記にOpenAI APIのリファレンスを載せているので、詳細は確認してみてください。