近年、生成AIの成果物がビジネスにおいて活用できるレベルまで進歩してきました。例えば文章作成では、小説や歌詞などクリエイティブな分野でも活用されています。
システム開発の現場でもプログラムのコード作成に利用されており、実用化されています。人の言葉でコンピュータに指示を与える仕事の流れは、従来の開発とは異なるプロセスです。プログラマが直接コーディングするやり方から、指示を与えて間接的に行うようになると、システム開発に必要とされる技術も変わりつつあります。
本記事では、GPT-Engineerで開発を行うメリットを解説しています。また、導入方法と簡単なチュートリアルを紹介していますので、技術採用の参考にしてみてください。
業務/Web系SEを経て、Web制作フリーランスとして独立。Webエンジニアとして研鑚を積みながら、ライターや講師業でアウトプットを行っています。
GPT-Engineerの基本
GPT-Engineerは自然言語を通してプログラミングができる生成AIのひとつです。言葉で成果物を指定するChatGPTでも同じようなやり方でコード生成が可能ですが、よりプログラミングに特化して扱いやすくしたツールです。
また、AIにコーディング作業を依頼するという新たな開発プロセスを生み出すツールで、作業の生産性を大きく向上させる効果を果たします。さらにエンジニアの作業を代行するだけでなく、システム開発において様々なメリットをもたらします。
以降では、GPT-Engineerの特徴やメリットを紹介していきます。
GPT-Engineerとは
GPT-Engineerは、人の言葉で命令を書くだけでプログラムのコードを作成できる生成AIで、システム開発に活用できる便利なツールです。ChatGPTと同じく、膨大な文章で学習されたGPT-4やGPT-3.5などの事前に構築されたAIモデルを利用しており、日本語にも対応する汎用性を持ち合わせています。
また、GPT-Engineerはオープンソースのプロジェクトで、次の3つの柱をもとに改善が続けられています。
- 開発者のエクスペリエンスを向上させる
- 提供する技術を高める
- パフォーマンスの向上
使用者はプロンプトと呼ばれる指示書を通じてプログラムを作成するため、非エンジニアでもコード作成が可能です。コーディングにおけるクラスや関数、データベース接続、テストコードなどのパーツを代わりに作成してくれるため、エンジニアにとっても生産性向上が期待できる有益なツールです。
さらに多くのプログラム言語でコーディングしてくれるため、幅広く学んだプログラマに依頼するように扱うことができます。新しくコードを書き始めたり、既存のコードに機能を追加したりするときも、指示さえ与えれば素早く成果物を作り上げてくれるため、優秀なアシスタントとして活躍してくれます。
GPT-Engineerのメリット
GPT-Engineerはエンジニアの作業負担を削減できる非常に有用なツールです。システム開発で多くの工数がかかる作業は、設計書からプログラムを完成させるためのコーディングですが、一部でもツールに任せることで大きな工数削減につながります。また、その他にも以下のような様々なメリットをもたらします。
エンジニアの開発生産性の向上
コーディング作業では、目的の処理をコードに起こし、タイピングする工程を繰り返しています。これらの作業が数秒で行えるなら、大きな時間短縮につながります。たとえ完全なコードでなくても、骨格や1つの機能だけでも任せることができれば、その後の工程も行いやすいでしょう。
また、コードの改善案やバグ修正も指示すれば、少ないコーディングで完成に近づけることができます。全てのコードを一度に作る必要はなく、要所で上手く活用すれば全体の開発コストを削減できます。
属人的な作業の緩和
日本語による指示でコード作成が可能なため、エンジニアのような専門知識がなくても扱うことができます。また、様々なプログラム言語に対応するため、言語の実績が浅いエンジニアへの助け舟にもなります。
なお、生成されたコードの正確性までは保証されないため、完成するまでの修正やレビュー、動作確認は必要です。
プロトタイプやデモを低コストで作成可能
簡単なプログラムであればエンジニアのいないユーザー企業でも作成が可能です。例えば、自社内の打ち合わせや開発ベンダとのイメージ共有を目的としたデモアプリケーションを簡単に作成できます。エンジニアに任せていた部分を低コストで補えます。また、導入自体も簡単で初期コストはかかりません。
GitHubからGPT-Engineerを入手する方法
GPT-Engineerはオープンソースのプロジェクトで、ソースコードはGitHubで公開されています。導入方法は次の2つで、どちらも無償で利用可能です。
・GitHubのソースコードを利用する
・PyPIからインストールする
ただし、内部で使われているAIモデルはOpenAIの有償サービスになります。以降では、GitHubからインストールする方法を紹介していきます。
GPT-Engineerのインストール手順
GPT-EngineerをGitHubから導入する方法を紹介します。
前提として、GPT-Engineerを動かすには次の2点が必要です。
- Python実行環境
- OpenAIのAPIキー取得
Python公式サイトにあるインストーラーをダウンロードして、パソコンにインストールしましょう。
また、APIキーを取得するには、まずOpenAIにログインしましょう。アカウントがない場合は、「サインアップ」から新規登録できます。ログインできたら、左のメニューから「API keys」を選びましょう。
ページ内の「Create new secret key」をクリックすると、ウィンドウが表示されるので適当な名前を入力し、「Create secret key」をクリックします。
APIキーが生成されるので、「Copy」でクリップボードにコピーして、メモ帳などに保存しておきましょう。
続いて、ソースコードを入手するために、GitHubリポジトリのページにアクセスしましょう。ページ中の緑色のボタン「Code」をクリックするとプルダウンメニューが開くので、「Download ZIP」をクリックします。
ダウンロードできたら、zipファイルを適当なフォルダに解凍しましょう。フォルダ内にある「.env.template」ファイルをコピーし、「.env」に名前を変えて同じ場所に複製します。「.env」ファイルを次のように変更します。
OPENAI_API_KEY=取得したOpenAIのAPIキー
最後にコマンドプロンプトで次にPythonコマンドを実行しましょう。
poetry install
poetry shell
なお、poetryがインストールされていない場合は、事前に下記のコマンドを実行しておきます。
pip install pipx
pipx install poetry
pipx ensurepath
これで利用する準備は完了です。
GitHubの利用方法
GitHubはソースコード共有のプラットフォームで、多くのオープンソースプロジェクトの公開場所として利用されています。GitHubにソースコードをアップロードしたり、プロジェクトに参加したりする場合にはアカウント登録が必要ですが、ソースコードを利用するだけなら登録不要でダウンロードが可能です。
ソースコードの入手方法は次の2種類です。
- zipファイルでダウンロードして取得
- Git経由でダウンロードして取得
簡単に入手したいなら、zipファイルでダウンロードしたほうが早いでしょう。zipファイルを解凍すれば、ソースコードを利用できます。
一方でGit環境があるなら、Gitコマンドでダウンロードしましょう。GitHubのプロジェクトページ内から、ダウンロードに必要なGitコマンド文がコピーできるので、コマンドプロンプトなどで実行しましょう。コマンドを実行するとソースコード一式がダウンロードされます。Gitと連携できる開発ツールは多く、それによりソースコードの入手から編集作業へとスムーズに移行できます。
GPT-Engineerの基本的な使い方
GPT-Engineerではプロンプトと呼ばれる指示書を作成してコードを作成します。動作させるにはPython実行環境が必要ですが、生成するコードのプログラム言語はPythonに限定されません。また、内部で使われているAIモデルの利用は有償で、コード生成を指示するたびに料金がかかるため注意しましょう。
以降では、GPT-Engineerの具体的な使い方や備わっている機能を紹介していきます。また、実際に作成したアプリケーションの実例を紹介します。
GPT-Engineer Tutorial
ここではGPT-Engineerを使うための具体的な手順を紹介します。
まずは、GPT-Engineerを配置したフォルダ内にある「projects」に移動しましょう。その中にある「example」フォルダをコピーして、「sample」という名前に変更してペーストします。「sample」フォルダ内に「prompt」というファイルがあるか確認します。「prompt」は作成するコードの指示内容を記載したプロンプトと呼ばれるファイルで、GPT-Engineerが実行されたらこのプロンプトが参照されてコードが生成されます。
続いて、コード生成を実行しましょう。
コマンドプロンプトでGPT-Engineerのフォルダに移動してから、下記のコマンドを実行します。
gpte projects/sample gpt-3.5-turbo
なお、デフォルトで使用されるAIモデルには精度の高いGPT-4が設定されていますが、試用版では利用できません。そのため、コマンドでGPT-3.5のAIモデルを指定しています。
コードを生成するか問われるので「Y」を入力してエンターキーを押しましょう。続けての質問は不要なので「n」を入力してエンターキーを押します。
処理が完了すると「sample」フォルダ内にPythonファイルが生成されます。必要なパッケージは次のコマンドでインストール可能です。
pip install -r requirements.txt
ただし、生成されたPythonファイルを見ると不完全であることに気付くでしょう。GPT-3.5では精度が低いことと、プロンプトの指示が曖昧であることから、そのまま実行できるアプリケーションの生成には至りません。
コードを修正したい場合は、プロンプトファイルを修正して次のコマンドを実行することで改善できます。
gpte projects/sample gpt-3.5-turbo -i
完全なコードではなくとも、プロンプトで指定したMVCという役割に分けたファイルが作られていることは確認できるでしょう。
GPT-Engineerの機能
GPT-Engineerが持つ基本機能を紹介します。ChatGPTは断片的なコードや実装コード案を調べるのには役立ちますが、アプリケーション全体を作成するには充分とはいえません。GPT-Engineerは指示に沿ったアプリケーションを作成するのに役立つ機能が備わっています。
コードの新規作成や修正
エンジニアに作業を依頼するように、作りたいアプリケーションの仕様を詳細に伝えることで、コードの作成や修正が可能です。プログラム言語、フレームワーク、データベースなどの条件も一緒に指定できるため、作り始めの大枠を決めるのに役立ちます。
プレプロンプト
プロジェクトごとのプロンプトとは別に、コード生成に使う共通のプロンプトが用意されています。ファイル構成やコーディングにおけるルールが指定されており、自分で追加することもできます。「gpt_engineer/preprompts」フォルダ内に入っているので確認してみましょう。
画像入力に対応
プロンプトは言葉だけでなく、画像で与えることもできます。サイトデザイン、UIのイメージ図、アプリケーション構成図など、文字だけでは伝えにくい情報を織り交ぜることでより詳細な実装が期待できます。
GPT-Engineerの使用例
先述したGPT-Engineerのチュートリアルでは完全なコードは生成できませんでしたが、動くアプリケーションの作成例を紹介します。
今度は別のアプリケーションを作成してみましょう。簡単な四則計算を行うアプリケーションを題材にします。そのために次の仕様をプロンプトに記述します。
- Pythonプログラムで書く
- 入力された2つの数値を計算するプログラム
- 入力はキーボードから行う
- 計算方法は、加算、減算、乗算、除算の4種類
- 計算結果はプロンプトで出力
チュートリアルでは英語でしたが、今度は日本語でより詳細な仕様を記述しました。
コード生成を実行するとPythonアプリケーションが作成されるので、実行してみます。
実行してみると数値の入力待ち状態になり、仕様通りにキーボード入力が実装されています。最初の数値に続けて、2番目の数値を入力すると計算結果が出力されました。
簡単な実装例でしたが、ファイル構成や変数名、入出力のメッセージなどが自動的に補完されているのがわかります。
GPT-Engineerを活用した開発プロジェクト
GPT-Engineerは、言葉で指示するだけでコード生成が行えるため、システム開発のプロセスを変える革新的なツールといえます。オンラインで利用できるgpt-engineer.appというサービスも提供されており、そこでは対話形式でWebアプリケーションの作成が可能です。
コード生成が簡単になったとはいえ、生成AIに適格な指示を与えるには一定の知識が必要とされます。その知識体系はプロンプトエンジニアリングと呼ばれる新たな分野として確立されました。その他、アプリケーションを配置するインフラやネットワークなどの知見は依然として必要とされます。
GPT-Engineer Onlineの活用
GPT-Engineerには、オンラインで利用できるクラウドサービス版のgptengineer.appが提供されています。実行環境を自前で用意することなく、アプリケーション作成が行えます。
アプリケーションの大枠を作成して、後から徐々に改善していくことが可能です。プレビューを見ながらチャットで改善点を指示したり、Git経由で直接コードを編集したりすることで開発を進めていきます。作成できるのはHTMLやJavaScriptをベースにしたWebアプリケーションで、React、TailwindCSS、Viteなどの技術に対応しています。
gptengineer.app公式サイトでは、作成された事例が多数紹介されています。
サイトをプレビューできたり、GitHubでコードを閲覧できたりするので、作成の参考にもなるでしょう。
例えば、下記のような家計簿アプリが作成されています。
React、ChakraUIを用いたアプリケーションで、計算やイベント処理はJavaScriptで記述されています。生成されたコード量は少ないですが、gptengineer.appを利用することでHTMLやJavaScriptを1からコーディングするよりも短時間で済ませることが可能です。
GPT-Engineer Jobsとキャリア
コード生成に限らず、生成AIの分野は急速に発展しており、新しいツールやアプローチが研究されています。ChatGPTを使うことで、従来よりも少ないコストで目的の成果物を作成することが可能になりました。AIに仕事を任せるスタイルの進め方は、いかに明確で抜けのない指示ができるかが求められます。そのため、AIを上手く扱うためのプロンプトエンジニアリングの分野が発展してきました。
今後はエンジニアに求められるスキルも多様化していき、業務範囲も変わってくるでしょう。AIの扱いに特化した専門職の求人も出てきており、その需要は高まっているといえます。
GPT-Engineerは非エンジニアでも扱えることから、今後様々な産業分野での活用が期待されています。さらに技術が発展していけば、ITの導入に対するハードルが下がり、業務改善や新しい製品開発にも貢献していくでしょう。
GPT-Engineerのまとめ
GPT-Engineerは言葉による指示でコード作成ができるツールで、システム開発のプロセスに大きな変化をもたらしました。また、システム開発において次のようなメリットがあります。
- エンジニアの開発生産性の向上
- 属人性の緩和
- 導入しやすい
専門知識がなくても、導入からコード生成まで非エンジニアでも担当することが可能です。そのため、システム開発ベンダだけでなくユーザー企業にとっても恩恵があり、例えば次の場面で有用でしょう。
- 自社のツール開発
- プロトタイプやデモの作成
- 設計からプログラムの骨格を作る
ただし、コード生成には明確な指示文章を与える必要があり、アプリケーション仕様や指示の正しい記述方法への理解は欠かせません。GPT-Engineerに関するご相談がございましたら、株式会社Jiteraにお問い合わせください。