システム開発に不可欠なソースコード。昨今、ChatGPTなどの登場により、慣例的に処理しているコーディングはプロンプトの入力である程度自動化できるようになりました。とはいえ、ChatGPTを実際に使ってみて「思うようなアウトプットが得られない」と感じている人も多いのではないでしょうか。
そこで今回は注目書籍『エンジニアのためのChatGPT活用入門 AIで作業負担を減らすためのアイデア集』の著者であり、プログラマーとしても活躍している大澤 文孝さんにインタビュー。エンジニアがChatGPTを上手く活用するための具体的な方法を伺いました。
大澤 文孝
技術ライター/プログラマー/システムエンジニア 情報処理資格としてセキュリティスペシャリスト、ネットワークスペシャリストを保有。Webシステムの設計・開発とともに、長年の執筆活動のなかで、Webシステム、プログラミング、データベースシステム、パブリッククラウド等に関する書籍を多数執筆。
プロンプトは最初から完璧を目指さない
大澤さんはプログラマーとしても第一線で活動されていますが、普段どのようにChatGPTを使用していますか?
文章作成やデータ整理はもちろん、ちょっとしたプログラミングにも活用しています。例えばシステムの運用では、定期的なバックアップのために数十行のスクリプトを作成することがあります。そのときに自分でコードを書くと、どんなに短いプログラムでも実際に動くかどうかの検証も含めて10分はかかります。
そんなときにChatGPTを使えば、すぐにスクリプトを作成してくれるので修正を含めて2〜3分ほどで完了します(※1)。タイパにつながるのはもちろんですが、単純作業に頭を使わずに済むのが良いと思います。
他の複雑な作業に集中できるということですね。とはいえ、ChatGPTのアウトプットに不満を感じる方も多いと思います。
その気持ちはわかりますが、そもそもChatGPTは対話型のAIです。何度も指示を出して、少しずつ精度を高めていった方がいいと思います。
回答の精度を高めるためには、どんなプロンプトを入力すればいいのでしょうか?
例えば、定期的にバックアップを取りたいとき次のように入力しても、自動的にバックアップしてくれるスクリプトは得られません。出てくるのはバックアップ方法についての概論だけです。
【入力例】
Laravelプロジェクトにおいて、データのバックアップをとる方法を教えてください。
データベースはMySQLです。
自動的にバックアップしてくれるスクリプトを作成したいときには、次のように具体的に指示する必要があります。
【入力例】
1. Laravelプロジェクトがあります
2. データベースのバックアップをとるスクリプトを作ってください
3. 対象のデータベースはLaravelプロジェクトの設定から参照してください
4. バックアップの保存先は/tmpとし、「今日の日付.dump.sql」というファイル名にしてください
何をしてほしいのか明確に伝えることが大切なんですね。
はい、最初は必要なスクリプトが出てこないことも多いと思いますが、少しずつ慣れていただければと。アウトプットが早いので新たな指示をすぐに出せます。人間に対して同じようにやると、このご時勢、曖昧な指示で何度も同じ作業をさせるなどとパワハラにつながりかねませんが、ChatGPTならそうした心配がなく、何度で指示を出して付き合ってくれて、スムーズに修正できる。最初から完璧を目指さず、対話しながらスクリプトを作っていくのが良いと思います。
ChatGPTをAPIで使うメリットは?
ChatGPTの具体的な使い方でいくと、GPT-3.5とGPT-4のどちらを使うべきなのでしょうか。GPT-4は有償なので、ハードルが高いと感じる方もいらっしゃるのではないかと。
まずはGPT-3.5で質問してみて、あまり良い回答が得られないようでしたらGPT-4に変更するのが良いと思います。ChatGPTは基本的に2022年1月までの情報しか持っていませんが(※2)、GPT-4のインターネットの検索機能を使えば、マイクロソフトのBingを使用して最新の検索結果を得ることができます。GPT-3.5を勧める理由は、生成速度が速いのと回数制限が緩いためです。
ChatGPTの使い方として、ブラウザを使う一般的な方法の他に、APIを使うやり方もあると思います。無償や定額で使えるブラウザ版に比べて、APIは従量課金になりますがどんなメリットがあるのでしょうか?
まず、メッセージの送信回数で制限がないことが大きいと思います。APIで使う場合はその都度料金が発生しますが、送信回数に上限がなくどんどん質問できます。
作業量が多いときにはAPIで使ったほうが便利なんですね。
ええ、開発するソフトやシステムに組み込んで使えるので使い方は無限大です。例えば、お問い合わせフォームの機能を実装しているのであれば、問い合わせの内容をChatGPTで分類して、適した担当部署に自動でコピーすることもできます。ツールにも幅広く対応しており、例えばプログラミングで使用することの多い「Visual Studio Code」では、「ChatGPT – Genie AI」という拡張機能を利用でき、新たにプログラムを作ってほしいときにもコードを自動生成してくれます。
コードを書かずにゼロからWebアプリを作る方法
大澤さんが執筆された『エンジニアのためのChatGPT活用入門 AIで作業負担を減らすためのアイデア集』には、コードを書かずChatGPTと会話しながらWebアプリを作る方法も書かれていました。面倒な作業を本当に全てまかせられるんでしょうか?
ChatGPTと対話を積み重ねれば、全く白紙の状態から1本のWebアプリを作ることもできます。ただし、本書に掲載しているのはあくまでもプロンプトの例です。ChatGPTが必ずしも同じ応答をするとは限らず、生成されるコードもその都度異なる可能性が高いからです。つまり、全く同じアプリを再現できるとは限らないため、プロンプトの例として参考にしていただけたらと思います。
実行環境についても、ChatGPTに聞きながら構築できるんでしょうか。
もちろんです。システムを作るときに必要なのは「コードの書き方」だけではありません。システムを作ったり、実際に動かしたりする環境が必要になってきます。Webアプリを作る場合は、Ruby、PHP、JavaScriptなど。ChatGPTはこういった情報も詳しく知っているので、自分があまり経験したことのない分野についての知識を広げることにもつながります。
スキルアップもできるということですね。開発時間については、ChatGPTの活用でどれくらい短縮できますか?
例えば簡単な在庫管理アプリを作る場合、入力する項目が多くUIやデータベースの設定に時間がかかるので、コードを自分で書くと1営業日かかることもあります。そんなときにChatGPTを使えば、自動で各項目の情報を入力できるデータベースの箱は作成できるので、UIの構築を含めても2時間ほどで作成できます。
すごい。その中でも特に工数が削減されるのはどのあたりの作業ですか?
経験豊富なエンジニアの場合、実行環境については自分がよく使っているものをカスタマイズして活用することもあるので、その先のひな形のプロジェクトを作るフェーズ以降で大きく効果を発揮すると思います。
エンジニアのChatGPT活用術①/テキストの図表化
普段の作業をラクにするChatGPTの活用方法について、具体的に教えてください。
エンジニアに限らず多いのは、ちょっとしたデータ変換だと思います。例えば、箇条書きで書かれたテキストを見やすく表にしたいとき。手作業でExcelなどに打ち込むのは手間ですが、ChatGPTを使えば待ち時間もなくすぐに完了します。
「ふりがな」も指示すれば簡単につけられるんですね。
そうなんです、これが従来のプログラムにはないChatGPTの良いところだと思います。より業務に近い例としては次のようなものがあります。
こちらは総務の方が備品の発注をする場面ですね。
ええ、社内のメンバーから発注してほしい内容がテキストで届くこともあると思います。でも、業者さんに発注するときは表にして送る必要がある。そういうときに、ChatGPTを使えばちょっとしたプロンプトを入力するだけで完結します。さらに、表の中で「単3電池」は4本ごとのセットなので、発注する個数の修正もプロンプト追加ですぐに反映できます。
さらに、商品名への変換も簡単にできます。プロンプトで次のように指示するだけなので普段使いにおすすめです。
なるほど、入力するテキスト量が多いときにこの使い方はとても便利ですね。
ChatGPTは表の変換やデータの置換がとても得意です。ちなみに上記は全てGPT-3.5なので誰でもすぐに作成できます。他にも、普段の業務でデータをインポートしたり変換したりするときに、住所や氏名がつながっていることもありますが、これらを都道府県や市区町村で分割したり、郵便番号を加えたいときにも、ChatGPTで簡単に解決できます。
こちらはインターネットの検索が必要なのでGPT-4が必要です。件数が多い場合に一件ずつ調べるのはかなりの手間ですが、ChatGPTを使えばすぐに終わります。
エンジニアのChatGPT活用術②/バックアップスクリプト
エンジニアの業務がラクになるChatGPTの活用法をもっと教えてください。
プログラミングの領域でよく使うのは、バックアップのスクリプトだと思います。
これくらいの簡単なスクリプトは、インターネットですぐにサンプルを調べられますし、わざわざ見なくても入力できる方も多いと思います。ですが、ChatGPTを使えば簡単に自分だけのカスタマイズを実行できます。
例えば特定の内容だけをバックアップしたいとき、サンプルのスクリプトでは対応できない。そんなときにChatGPTで具体的に指示してあげれば、自分にとって最適なスクリプトを得られます。
最初にChatGPTが出してくれたスクリプトに新たな内容が追加されるわけです。これがまさに対話型AIの良さだと思います。
会話しながらスクリプトを最適なものに変えていけるんですね。
さらに、1週間以内に変更したものは別のファイルに格納してほしいときにも、指示すればすぐにスクリプトを出してくれる。1週間以内に対応した内容だけを選ぶようなコードが追加で書かれているんですよ。
インターネット上でサンプルを探してカスタマイズするのに比べて、大きく業務時間を短縮できます。
エンジニアのChatGPT活用術③/テキストデータの変換
他にもエンジニアの普段の業務で使える活用アイデアはありますか?
サーバーの管理者などが、メモ書きしたテキストをCSVに書き換えることはよくあると思います。そんなときにもChatGPTを活用できます。
上記を見ていただくとわかりますが、【サーバ名】と【サーバー名】、【IPアドレス】と【IP】など、項目の表記がゆれています。作業者が多かったり、情報がいろいろなところに散らばっていたりするとき、表記ゆれが起こりやすいんです。それらの情報を統一しようとするときにもChatGPTは便利です。
ChatGPTなら面倒な作業が一瞬で終わりますね。
より身近な例でいうと、スケジュール表の書き換えなどにも活用できます。下記は、別の予定が入ったので9時半スタートを14時に変更する方法です。数分かかりそうな作業が一瞬で完了します。
エンジニアのChatGPT活用術④/ドキュメント作成
他にもサイトポリシーなど、テキスト作成にもChatGPTは便利です。自分で文面を作成しようとすると、ある程度の時間がかかるのでChatGPTでドキュメントを作成して時短につなげていただければと思います。
ChatGPTは、よくある定型的な文書に必要な情報を埋め込んで出力するのも得意です。テキストはMarkdown形式で出力されるので、見出しをHTMLのH1やH2などに変換するのも簡単。ただし、サイトポリシーなどは各種の法律に基づく必要があるので、生成されたドキュメントを必ず専門家に確認してもらうようにしましょう。
大澤さんの書籍『エンジニアのためのChatGPT活用入門 AIで作業負担を減らすためのアイデア集』には、他にもいろいろな活用例が具体的に掲載されていますね。
ええ、他にもよくあるケースとして「お客様への問い合わせへの返信」があると思います。その場合は以下のプロンプトの入力例や活用アイデアをぜひ参考にしていただければと思います。
ChatGPTは「聞くもの」ではなく「作らせるもの」
ChatGPTの活用アイデアをいろいろ紹介していただきましたが、エンジニアへおすすめの使い方は他にもありますか?
ChatGPTを使ったソースコードの要約は非常に便利です。チームごとに開発を進めるケースも多いですが、別チームのエンジニアが書いたプログラミングの概要を短時間で確認できます。使用している関数やプログラムの中で行っていることも理解しやすいと思います。
スキルアップにも役立ちそうですね。プログラミングでChatGPTを使う上での注意点はありますか?
特に重要なのは、個人情報などの重要な情報が外部に漏洩しないようにオプトアウトすることです。業務で使うのであれば、会話の内容を学習させないように設定しておくことが望ましいでしょう。
それから、皆さんもご存じだと思いますがChatGPTは間違ったり、嘘をついたりすることがあります。ChatGPTに作ってもらったプログラムを正しいと過信することなく内容を精査するようにしましょう。
確認するのは、あくまでも私たち人間ということですね。
ええ。それと最近ChatGPTで質問するとNGワードに引っかかって回答が出ないことがたびたび起こります。例えば「ランダムなパスワードを10件作ってください」とメッセージを送ると、「パスワード」という用語が問題視されて「個人情報を扱うことはできません」という回答になることも。そんなときには、メッセージの言いまわしを変えたり、固有名詞や個人名、商標などを避けたりすると上手くいきます。
なるほど、以前よりも個人情報への意識が高まっているということですね。最後にChatGPTの活用について、エンジニアへのアドバイスをお願いします。
ChatGPTは「聞くもの」ではなく「作らせるもの」です。質問して正確な回答を得ようとしても、的外れなことも多いでしょう。しかし、「○○を作ってほしい」と具体的に指示を出すと、意外と正確なコードが出てきます。プログラミングにおける相棒として、普段の作業をどんどんChatGPTに頼んで積極的に活用していただければと思います。
ライター
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから