ChatGPTにAPIを叩くコードを書かせてみた

6.6K Views

May 25, 23

スライド概要

ChatGPT Meetup Tokyo #2 のLT資料。

MerakiのステータスをSlackに出力させるコードをChatGPTに書いてもらおうとしたけどうまくいかなかったという話。

profile-image

SlideShareが使いにくくなってしまったのでこちらに全部移してみた。 - 勉強会で使った資料 - イベントでの登壇資料 等を中心に上げてあります。

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

ChatGPTに APIを叩くコードを 書かせてみた 2023-05-25 ChatGPT Meetup Tokyo #2 資料 佐々木 健

2.

自己紹介 ➢ AIの専門家ではありません ➢ ネットワークエンジニア ➢ おっさんレンタルの中の人もしてる ➢ バイオリンが弾ける ➢ 将棋、麻雀、ボードゲームを嗜む ➢ 温泉が好き ➢ スキーもする ➢ 最近プレーリーカードをゲットした

3.

アジェンダ ● ● ● ● ChatGPTに簡単なゲームを書かせてみた ChatGPTにMeraki APIを叩いてSlackをコードを 書かせてみた いまいちだったので Google Bard や GitHub Copilot もいじってみた その他

4.

ChatGPTに 簡単なゲーム を書かせてみた

5.

ChatGPTで○×ゲームを作る ● ● 「○×ゲームを1ファイルのウェブサイトとして実 装したサンプルコードを書いてください」 とても綺麗なコード

6.

ChatGPTに対する期待 ● ● これ作って!!、と頼むだけで、必要なプログラム を書いてくれるのでは? これってすごいのでは??

7.

ChatGPTでテトリスを作る ● 「1つのHTMLファイルで動くテトリスを作りたい と思っています。サンプルコードを書いてもらえ ないでしょうか。」 ● 今回も綺麗なコードが生成される ● でもGPT-3.5で書かれたコードは動作せず ● GPT-4で書かせたものは動いた?

8.

テトリス その2 ● 色分けされてないので見にくい – ● 色わけして、と指示追加 下に落ちたときに色が変わったけどバックグラウンド の色と同じで落ちたブロックが消えたように見える – 落ちたブロックの色をバックグラウンドと変えて、と追加 指示 ● 下矢印を押してもブロックが下に移動しない、、、 ● 横一列に揃ってもブロックが消えない、、、

9.

ChatGPTも 情報処理システム 入力 出力 処理 必要な入力が足りてなければ、適切な出力は得ら れない 何が入力できて何が出力できるかは処理系に依存 する

10.

情報処理システムとしてのChatGPT ● 入力を追加、変更することで精度を上げる – – プロンプトエンジニアリング ● 絞りこむことで正確性を上げられる ● プログラミングにおけるライブラリの活用に近い? 英語での入力 ● ● 実感としてより良いコードが書かれる気がする システムの性能アップ – GPT-3.5→4 ● 応答内容の賢さが実感としてだいぶ違う

11.

ChatGPTに MerakiAPIを叩く Slack bot を書かせてみよう

12.

やりたいこと ● ● Meraki は Cisco のネットワーク製品ブランド – クラウドから集中管理ができる – クラウドがAPIを提供している Slackからネットワークの状態を把握したい – ● 異常がないか、接続クライアント数、トラフィック等 コードはすべてChatGPTに書かせた い

13.

APIを叩くコードのリクエスト ● CISCO Meraki の API を利用して、 - 現在の接続クライアント数 - ステータス異常があるかないか - 今日のトラフィック を収集して、Slackのチャンネルに通知するサン プルコードを書いてください

14.

出力コードを眺める ● ● とても綺麗なコード – 関数の定義 – 全体のフロー – 変数名の付け方 一見このまま動きそう

15.

出力コードを実行してみる ● 動かしてみるとエラーが出るよ – – Meraki APIの問題 ● そもそも存在しないAPIを呼び出してたり(GPT-3.5) ● 古いAPIを呼び出してたり(GPT-3.5+英語) ● APIの返答結果の処理方法が間違ってたり(GPT-4) Slack APIの問題 ● WebhookとAPIの設定方法をごちゃまぜに書いてたり

16.

さらに試行錯誤 ● なんとか動くコードになったけど件数が足りない – ChatGPTに聞いてみた ● 別のAPIを使って集計すると良いですよ、重複も集計するので不正確な値だけど – – さらにChatGPTに聞いてみた ● MerakiのAPIはdefaultでは10件しか出力されないので、それ以上の値が必要な 場合はパラメータを追加してください – ● APIは合ってるはずなんだけど、、 最初からそう言えよ!!、なんならコードに書いてよ APIキーを埋めこみたくないけどどうすれば良い – ChatGPTに聞いてみた ● 環境変数を利用したり、設定ファイルを外に用意したり、等の適切な提案をしてく れる – だったら最初からそういう風に書いて欲しいけどなあ

17.

正しいコードを書いてもらう方法 ● ● 英語で聞くほうがより良い回答は得られる プロンプトエンジニアリングをするとそれなりに 正しさは増す – ● あなたはCisco Merakiの専門家です、とか 部分的な問い合わせをするとわりと正しいことを 言う – このAPIの使い方を教えて、とか でもやっぱり平気で嘘をつくんだよなあ

18.

やりたいこと ● ● Meraki は Cisco のネットワーク製品ブランド – クラウドから集中管理ができる – クラウドがAPIを提供している Slackからネットワークの状態を把握したい – ● 異常がないか、接続クライアント数、トラフィック等 コードはすべてChatGPTに書かせた い 現時点では無理かなあ

19.

ChatGPTだと面倒臭いこと ● 長いコードを書かせると途中で切れてしまう ● 毎回コピぺして実行するのがかったるい ● テストは自分でやる必要がある ● 実行環境の準備も自分でやる必要がある ● クラウド環境設定、APIキーの取得も自分でやる 必要がある

20.

他のツールだと楽ができるかな? GitHub Copilot Google Bard

21.

GitHub Copilot ● Editorの拡張として、AIがサポートしてくれる ● コメントを書くとそれっぽいコードを提案してくれる ● ● コードの提案を承認していくだけでサクサクプログラミング が可能 Editorの拡張として実装されてるので、環境を作っておけ ば、実行、テスト、バージョン管理等もサクサクできる ● とても便利!!! ● でも全体をまるっと書いて、みたいなことはできない

22.

Google Bard ● Google製の会話型人口知能サービス ● ChatGPTと同じように使える ● Bardが書いたPythonコードは Google Colab に 貼りつけて実行可能 ● ChatGPTより便利かも ● でもやっぱりChatGPTと同じような嘘をつく

23.

現時点で感じてること ● ChatGPTをはじめとするAIツールはわりと便利 ● 関連ツールもどんどん便利になってきている ● 使っていて楽しい、時間が溶ける ● 時々良くできた嘘を付くけどそれはそれで楽しい

24.

高級言語の黎明期に似てる? FORTRAN COBOL 自然言語 コンパイラ LLM アセンブリ言語 コンピュータ言語 今の出力コードはイマイチでも、どんどん良くなるはず ● アセンブリ言語のエンジニアは今も絶滅していない ● プログラマが不要になるということはないんじゃないかな ●

25.

覚えておきたいプロンプト ● ● 最後に「知らんけど」を付けて返答してくださ い。 ギャル言葉で絵文字も使って返答してください。

26.

(宣伝)ライフイズテックでも AIに関するサービスをはじめました ● 高校生向け「情報I」AI学習支援サービス「Life is Tech! AI アシスタ ント(β版)」 – ● IT・プログラミングキャンプ(夏のAIフェス) – ● https://life-is-tech.com/news/news/230428-release https://camp.life-is-tech.com/ AI x クリエイティブ1DAY – https://project.life-is-tech.com/ai3hours-event2023

27.

おしまい