ChatGPT Meetup

888 Views

May 11, 23

スライド概要

profile-image

Frontend engineer @lapras_inc / TypeScript / Vue.js / Firebase / 元消防士

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

[Minecraft × ChatGPT] マイクラで作りたいものを伝えると魔法の ように作成してくれるコマンドを作る 2022/05/11 ChatGPT Meetup Tokyo #1

2.

@KawamataRyo 👨💻 エンジニア@LAPRAS inc 👪 2児の父(育休1年取得中) 🔥 元消防士 🏄 懸垂, 個人開発

3.

今日話すこと 💬

4.

・コマンドの実装紹介 ・ChatGPT APIのエラーハンドリング ※ ⚠ MinecraftとPythonについての説明は省略して ChatGPTとの接続に焦点を当てて説明します

5.

何を作った?

6.

Minecraft上で作りたいものを伝えると 実際に作ってくれるコマンド 💫

7.

💁 < 空に丸い月を作って!

8.

💁 < 空に丸い月を作って! 🤖 < できました!

9.

他にも色々 ビルを作って ! 国旗を作って! 窓の大きい家を作って!

10.

なぜ作った?

11.

息子(小2)が好きなMinecraftで ええかっこしたい🥹

12.

息子(小2)が好きなMinecraftで ええかっこしたい🥹 実際に尊敬度+20p(?)くらい上昇し、 エンジニアの仕事に少し興味を持ってくれました 🙌

13.

📺 DEMO

14.

どのように実現している?

15.

構成図 Minecraft With Raspberyjammod Command ChatGPT API

16.

構成図 /py magic 空に月を作って!! Commandを起動 Minecraft With Raspberyjammod Command ChatGPT API

17.

構成図 空に月をMinecraftで作る Pythonコードを書いて!! Promptを組み立て送信 Commandを起動 Minecraft With Raspberyjammod Command ChatGPT API

18.

構成図 Promptを組み立て送信 Commandを起動 Minecraft With Raspberyjammod Command コードと説明を返信 ChatGPT API はい。こちらです。 ̀̀̀hogehogè̀̀

19.

構成図 Promptを組み立て送信 Commandを起動 Minecraft With Raspberyjammod コードを抽出して Eval Command exec(responseCode) コードと説明を返信 ChatGPT API

20.

実装イメージ

21.

実装イメージ 引数で受け取った指示をpromptに埋め込み ChatCompletion API に送信 🧙 あなたは優れたPythonプログラマーであり、優れたMinecraft ビルダーでもあります。 Minecraftで「{prompt}」という命令を実現するためのPython コードを教えてください… (略)

22.

実装イメージ API の戻り値から コードブロックのみを抽出

23.

実装イメージ 抽出したコードを Eval して構築物を建設

24.

📺 ここらへんでDEMOの結果確認!!

25.

もし失敗してたら..

26.

工夫したポイントは?

27.

ChatGPTならではのエラーハンドリング 🚨

28.

よく起こるエラー

29.

よく起こるエラー ① コードが抽出できない ChatGPTがコードブロックを 返してくれずコードを抽出できない 申し訳ありませんが、私たちはMinecraftとPythonを組み 合わせた業務には従事しておりません。 また、MinecraftからPythonにアクセスするには、特別な サーバーやツールが… ※ 返答例。色々言い訳してコードを書いてくれない 🤖

30.

よく起こるエラー ② Evalでエラーが発生する ChatGPTが間違ったコードを書いてきて 実行時エラーが発生する こちらです。 ̀̀̀ hoge = 2 bar = fuga + Hog ̀̀̀ 🤖 ※ 返答例。未定義の変数の参照などが多い。

31.

どう解決する? 🤔

32.

そうだ! ChatGPT に任せよう!💪

33.

①コードが抽出できないの解決策

34.

API リクエストの流れ 💁 空に大きな丸い月を作ってください 1回目の APIリクエスト

35.

API リクエストの流れ 💁 空に大きな丸い月を作ってください 申し訳ありませんが、私たちはMinecraftとPythonを組み合わせた業 務には従事しておりません。 また、MinecraftからPythonにアクセスするには、特別なサーバーや 🤖 ツールが… コードが書かれていない😵 1回目の APIレスポンス

36.

API リクエストの流れ 💁 🤖 💁 空に大きな丸い月を作ってください 申し訳ありませんが、私たちはMinecraftとPythonを組み合わせた業 務には従事しておりません。 また、MinecraftからPythonにアクセスするには、特別なサーバーや ツールが… Minecraft上で実行できるPythonコードを書いてください リトライで 前回のやりとり + 依頼文を送る 2回目の APIレスポンス

37.

API リクエストの流れ 💁 🤖 💁 空に大きな丸い月を作ってください 申し訳ありませんが、私たちはMinecraftとPythonを組み合わせた業 務には従事しておりません。 また、MinecraftからPythonにアクセスするには、特別なサーバーや ツールが… Minecraft上で実行できるPythonコードを書いてください 申し訳ございません。わかりました。 以下がMinecraft上で空に丸い月を作るPythonコードです。 ちゃんと書いてくれる..!! ̀̀̀ 🤖 import hoge 2回目の APIレスポンス

38.

ChatGPT API呼び出しの関数を修正

39.

ChatGPT API呼び出しの関数を修正 初期のprompt以外に 追加のメッセージを引数で 設定できるように修正

40.

main関数を修正

41.

main関数を修正 追加メッセージの 配列を初期化 上限回数を超えない限りは、 リトライするようにループを記述

42.

main関数を修正 もしコードが 抽出できない場合は APIの返答と、コード生成の依頼文 を追記して再度問い合わせる

43.

②Evalで実行時エラーの解決策

44.

リクエストの流れ 💁 空に大きな丸い月を作ってください 1回目の APIリクエスト

45.

リクエストの流れ 💁 空に大きな丸い月を作ってください こちらです! ̀̀̀ create̲moon() 🤖 ̀̀̀ 実行時エラーが発生😵 1回目の APIレスポンス

46.

リクエストの流れ 🤖 💁 こちらです! ̀̀̀ create̲moon() ̀̀̀ 実行したところ NameError: name ʻcreate̲moonʼ is not de ned というエラーが発生しました リトライで 前回のやりとり + エラー文を送る 2回目の APIリクエスト fi 💁 空に大きな丸い月を作ってください

47.

リクエストの流れ 💁 🤖 💁 空に大きな丸い月を作ってください こちらです! ̀̀̀ create̲moon() ̀̀̀ 実行したところ NameError: name ʻcreate̲moonʼ is not de ned というエラーが発生しました 申し訳ございません。コードが間違っていました。 コードを書いてくれる!! 以下が修正済みのコードです ̀̀̀ 🤖 import create̲moon from hoge Create̲moon() ̀̀̀ 2回目の APIレスポンス fi エラーを修正した

48.

main関数の修正

49.

main関数の修正 Evalをtry/exceptで囲み 発生した例外をキャッチ

50.

main関数の修正 エラー内容を次のAPI呼び出しの promptに埋め込む!

51.

解決!!✌

52.

まとめ

53.

・Minecraft は楽しい! ・ChatGPTのコードをEvalする際のエラーは、 ハンドリングしてChatGPTに直してもらうと良い!

54.

✏ 今日の話のより詳細なものは記事に!

55.

宣伝!

56.

MacでChatGPT関連の海外サービスを使うときに困る アレを解決するツールを作りました💪