😎
[API構築6] line-chatbotにChatGPT APIを組み込む
概要
LINEチャットbotを作成するで作ったbotに、ChatGPTでの返答機能を追加する。
SDK導入
前回調査で一番公式に近いと判断したgo用のOpenAI API用ライブラリであるsashabaranov/go-openaiを導入する。
go get github.com/sashabaranov/go-openai
コーディング
botサーバ自体は以下を利用している。
今回返答を行う箇所を以下のように修正した。
func getResMessage(message string) (string, error) {
client := openai.NewClient(os.Getenv("OPENAI_API_KEY"))
resp, err := client.CreateChatCompletion(
context.Background(),
openai.ChatCompletionRequest{
Model: openai.GPT3Dot5Turbo,
Messages: []openai.ChatCompletionMessage{
{
Role: openai.ChatMessageRoleUser,
Content: message,
},
},
},
)
if err != nil {
return "", err
}
return resp.Choices[0].Message.Content, nil
}
参考
API key
以下を参考に取得し上記の環境変数OPENAI_API_KEY
にセットする。
実行
botサーバの実行は以下の通り。
AIの返答がLINE上で確認できた。
料金は?(OpenAIマイページ確認)
上記の1メッセージで料金が発生している。0.000689ドル。日本円で0.098円。
前回調査では1リプライで0.2円計算だったが、近い数字になっている。前回調査の計算などは大体当たっているようだ。
感想
ここまではとってもお手軽だけど、ここからのプロンプトエンジニアリングが長そうという印象。
どう使いたいかをもっと煮詰めたい。
参考
今回利用したSDKのサンプル
Discussion