6.9K Views
May 25, 23
スライド概要
ChatGPT Meetup Tokyo #2 のLT資料。
MerakiのステータスをSlackに出力させるコードをChatGPTに書いてもらおうとしたけどうまくいかなかったという話。
SlideShareが使いにくくなってしまったのでこちらに全部移してみた。 - 勉強会で使った資料 - イベントでの登壇資料 等を中心に上げてあります。
ChatGPTに APIを叩くコードを 書かせてみた 2023-05-25 ChatGPT Meetup Tokyo #2 資料 佐々木 健
自己紹介 ➢ AIの専門家ではありません ➢ ネットワークエンジニア ➢ おっさんレンタルの中の人もしてる ➢ バイオリンが弾ける ➢ 将棋、麻雀、ボードゲームを嗜む ➢ 温泉が好き ➢ スキーもする ➢ 最近プレーリーカードをゲットした
アジェンダ ● ● ● ● ChatGPTに簡単なゲームを書かせてみた ChatGPTにMeraki APIを叩いてSlackをコードを 書かせてみた いまいちだったので Google Bard や GitHub Copilot もいじってみた その他
ChatGPTに 簡単なゲーム を書かせてみた
ChatGPTで○×ゲームを作る ● ● 「○×ゲームを1ファイルのウェブサイトとして実 装したサンプルコードを書いてください」 とても綺麗なコード
ChatGPTに対する期待 ● ● これ作って!!、と頼むだけで、必要なプログラム を書いてくれるのでは? これってすごいのでは??
ChatGPTでテトリスを作る ● 「1つのHTMLファイルで動くテトリスを作りたい と思っています。サンプルコードを書いてもらえ ないでしょうか。」 ● 今回も綺麗なコードが生成される ● でもGPT-3.5で書かれたコードは動作せず ● GPT-4で書かせたものは動いた?
テトリス その2 ● 色分けされてないので見にくい – ● 色わけして、と指示追加 下に落ちたときに色が変わったけどバックグラウンド の色と同じで落ちたブロックが消えたように見える – 落ちたブロックの色をバックグラウンドと変えて、と追加 指示 ● 下矢印を押してもブロックが下に移動しない、、、 ● 横一列に揃ってもブロックが消えない、、、
ChatGPTも 情報処理システム 入力 出力 処理 必要な入力が足りてなければ、適切な出力は得ら れない 何が入力できて何が出力できるかは処理系に依存 する
情報処理システムとしてのChatGPT ● 入力を追加、変更することで精度を上げる – – プロンプトエンジニアリング ● 絞りこむことで正確性を上げられる ● プログラミングにおけるライブラリの活用に近い? 英語での入力 ● ● 実感としてより良いコードが書かれる気がする システムの性能アップ – GPT-3.5→4 ● 応答内容の賢さが実感としてだいぶ違う
ChatGPTに MerakiAPIを叩く Slack bot を書かせてみよう
やりたいこと ● ● Meraki は Cisco のネットワーク製品ブランド – クラウドから集中管理ができる – クラウドがAPIを提供している Slackからネットワークの状態を把握したい – ● 異常がないか、接続クライアント数、トラフィック等 コードはすべてChatGPTに書かせた い
APIを叩くコードのリクエスト ● CISCO Meraki の API を利用して、 - 現在の接続クライアント数 - ステータス異常があるかないか - 今日のトラフィック を収集して、Slackのチャンネルに通知するサン プルコードを書いてください
出力コードを眺める ● ● とても綺麗なコード – 関数の定義 – 全体のフロー – 変数名の付け方 一見このまま動きそう
出力コードを実行してみる ● 動かしてみるとエラーが出るよ – – Meraki APIの問題 ● そもそも存在しないAPIを呼び出してたり(GPT-3.5) ● 古いAPIを呼び出してたり(GPT-3.5+英語) ● APIの返答結果の処理方法が間違ってたり(GPT-4) Slack APIの問題 ● WebhookとAPIの設定方法をごちゃまぜに書いてたり
さらに試行錯誤 ● なんとか動くコードになったけど件数が足りない – ChatGPTに聞いてみた ● 別のAPIを使って集計すると良いですよ、重複も集計するので不正確な値だけど – – さらにChatGPTに聞いてみた ● MerakiのAPIはdefaultでは10件しか出力されないので、それ以上の値が必要な 場合はパラメータを追加してください – ● APIは合ってるはずなんだけど、、 最初からそう言えよ!!、なんならコードに書いてよ APIキーを埋めこみたくないけどどうすれば良い – ChatGPTに聞いてみた ● 環境変数を利用したり、設定ファイルを外に用意したり、等の適切な提案をしてく れる – だったら最初からそういう風に書いて欲しいけどなあ
正しいコードを書いてもらう方法 ● ● 英語で聞くほうがより良い回答は得られる プロンプトエンジニアリングをするとそれなりに 正しさは増す – ● あなたはCisco Merakiの専門家です、とか 部分的な問い合わせをするとわりと正しいことを 言う – このAPIの使い方を教えて、とか でもやっぱり平気で嘘をつくんだよなあ
やりたいこと ● ● Meraki は Cisco のネットワーク製品ブランド – クラウドから集中管理ができる – クラウドがAPIを提供している Slackからネットワークの状態を把握したい – ● 異常がないか、接続クライアント数、トラフィック等 コードはすべてChatGPTに書かせた い 現時点では無理かなあ
ChatGPTだと面倒臭いこと ● 長いコードを書かせると途中で切れてしまう ● 毎回コピぺして実行するのがかったるい ● テストは自分でやる必要がある ● 実行環境の準備も自分でやる必要がある ● クラウド環境設定、APIキーの取得も自分でやる 必要がある
他のツールだと楽ができるかな? GitHub Copilot Google Bard
GitHub Copilot ● Editorの拡張として、AIがサポートしてくれる ● コメントを書くとそれっぽいコードを提案してくれる ● ● コードの提案を承認していくだけでサクサクプログラミング が可能 Editorの拡張として実装されてるので、環境を作っておけ ば、実行、テスト、バージョン管理等もサクサクできる ● とても便利!!! ● でも全体をまるっと書いて、みたいなことはできない
Google Bard ● Google製の会話型人口知能サービス ● ChatGPTと同じように使える ● Bardが書いたPythonコードは Google Colab に 貼りつけて実行可能 ● ChatGPTより便利かも ● でもやっぱりChatGPTと同じような嘘をつく
現時点で感じてること ● ChatGPTをはじめとするAIツールはわりと便利 ● 関連ツールもどんどん便利になってきている ● 使っていて楽しい、時間が溶ける ● 時々良くできた嘘を付くけどそれはそれで楽しい
高級言語の黎明期に似てる? FORTRAN COBOL 自然言語 コンパイラ LLM アセンブリ言語 コンピュータ言語 今の出力コードはイマイチでも、どんどん良くなるはず ● アセンブリ言語のエンジニアは今も絶滅していない ● プログラマが不要になるということはないんじゃないかな ●
覚えておきたいプロンプト ● ● 最後に「知らんけど」を付けて返答してくださ い。 ギャル言葉で絵文字も使って返答してください。
(宣伝)ライフイズテックでも 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
おしまい