💬

ChatGPTのAPIとFunction Callingを使ってLINE Botを作るハンズオンで学んだことメモ

2023/06/24に公開

概要

ChatGPTのAPIを使ったハンズオンが名古屋で行われるということで行ってきました。

https://machine-learning.connpass.com/event/284031/

やったことのメモです。

事前準備

以下のアカウントをセットアップします。

LINE Developers

以下登録
https://developers.line.biz/ja/docs/line-developers-console/

Gitpod

以下登録
https://www.gitpod.io/

Github, Gitlab, Bitbucketのいずれかのアカウントが必要です。

OpenAIのアカウント

以下参照して登録。カードが必要
https://prtn-life.com/blog/openai-billing#toc1

ハンズオンの内容

以下にあります。
https://miura55.github.io/ml-nagoya-chatgpt-handson/#0

基本上記資料の通りです。ポイントだけメモします。

ハンズオン準備

GitPotは、環境設定を簡略化するためにつかっているものです。環境慣れている人は、使わなくて普通にリポジトリをクローンして使って行けば大丈夫です。意味わからない人は、チュートリアルの通りGitPot使いましょう。

初回のみ設定が出ますが、デフォルトの以下で大丈夫です(AutoStartも後で修正できるのでどっちでも)。

Step1: OpenAI API KEY

以下のところは、YOUR_API_KEYを書き換える必要があります。

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "user", "content": "こんにちは!"}]
  }'

例えばシークレットキーがsk-xyzだったら(こんなキーのことはないです。あくまでサンプル)。以下の通りです。

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xyz" \
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "user", "content": "こんにちは!"}]
  }'

Step2. LINE botを動かしてみる

Webhook URLは、GitpodのURL+/callbackです。callbackを忘れないようにしましょう(忘れました)。

応答機能の設定は以下です。

Step3. ChatGPTとLINE botを連携する

特に間違えることなく、こんな感じにbotができます。

Step4. 【応用編】ChatGPTに天気を答えてもらう

コードでimport jsonは関数の外に出す必要がありました(多分資料 or コードが修正されます)。 修正されました。

あとはハンズオンのままです。

Function calling完全に理解した。

ハンズオン関連の参考情報

ハンズオンには直接関係ないですが、ハンズオンにGoogle Codelabs形式の資料がわかりやすかったり、Gitpodが環境構築手軽で良いですね。

https://www.karakaram.com/how-to-create-google-codelabs-1/

まとめ

ChatGPTのAPIを使ったLINEボットが簡単にできました。事前準備をのぞいて2時間もかかりませんでした。超分かりやすいハンズオンのおかげで簡単でした!

ハンズオン資料と実践をしてくださったKMiuraさんに感謝です!

参考リンク

https://speakerdeck.com/miura55/chatgptnoxin-ji-neng-function-calling-woshi-sitemita

https://qiita.com/watanabe-tsubasa/items/d3cc36ebf41ae81da530

https://nowokay.hatenablog.com/entry/2023/06/19/095348

https://nikkie-ftnext.hatenablog.com/entry/getting-started-openai-gpt-function-calling

https://gihyo.jp/article/2023/07/programming-with-chatgpt-04

https://tech-blog.abeja.asia/entry/advent-2023-day20

Discussion