概要
OpenAI API createCompletionを管理するMacアプリを作成し、それを使ってReactでページの生成が成功したので共有させて頂きます。
説明は稀にChatGPT中毒者しかわからない話も出てきますが、全体的には簡単な話になっていると思います。
動画デモ
GPTモデルを使ってReactでページフィットネスジムの登録ページが作成される一通りの流れのデモ動画です
※動画は退屈なのでかるーく流してもらえれば
流れ
動画の内容に沿ってReactでページが作成されるまでを時系列に解説していきます
1. 要件のヒアリング
以下の設定されたAIアシスタントを起動します
分類 | 説明 | レベル |
---|---|---|
モデル | gpt-3.5-turbo-0613 | LV5 |
名前 | システム会社営業マン | LV80 |
役割 | お客様からどのようなプログラムを作成したいかヒアリングする | LV3 |
装備 | AIインスタンスを起動する能力(functions) | LV5 |
※LVはただの雰囲気です
要件をまとめてくれました。更に保存先を聞いてくれました。(さすが営業マン)
コツ (プロンプトエンジニアリング)
ここがかなり重要でChatGPTはゼロイチが苦手です。苦手というよりもゼロからイチを説明する人間のコストが膨大なのでテンプレートを渡す方が早いのです。テンプレート はこちらの意図やページの基本の仕様が組み込まれているものになります。
例えばDBの仕様、mysql? firebase? を日本語の仕様で書くよりもテンプレートに保存のサンプルを記述してあるだけで伝わります。
2. AIからAIを生成
要件を聞き終えた営業マンはプログラマーに仕様を伝え、保存先パスと参考ファイルの内容をテキストで渡します。
(動画だとわかりにくいですが)
↑AIインスタンスの関連性をノード表示で視覚化してあります
program_listner(営業)→ programer
プログラマーAI
以下の設定されたAIアシスタントを起動します
分類 | 説明 | レベル |
---|---|---|
モデル | gpt-3.5-turbo-16k-0613 | LV10 |
名前 | プログラマー | LV20 |
役割 | 仕様、参考ファイルに基づいてコーディングのみします。無駄な発言は許可されていません | LV4 |
装備 | ファイルを読み込む、保存(拡張(独自)) | LV10 |
コーディングを終えたプログラマーはファイルに保存しました。厳密にはsystemが保存する能力を持っています。
ファイルの読み書きに functionsではなく拡張を利用した理由はfunctionsを通してプログラムコードをapiで渡す際にgpt-3.5-turboがjsonのエスケープを頻繁にミスるからです。
コーディング完成
「俺」がscssのファイルパスを修正します。少し人間の手を借りましたがコーディングは完了しました
- import classes from './Template.module.scss'
+ import classes from './PageTemplate.module.scss'
レイアウトが崩れている? プログラマーは見た目を気にしません。「要件通り動くからそれでいいじゃないですか」と言っているかもしれません。
3. スタイルを作成して頂きます
次は営業マンを通さずにプログラマーに直接依頼をします。
(現実にもよくあって揉めますよね笑)
以下の設定されたAIアシスタントを起動します
分類 | 説明 | レベル |
---|---|---|
モデル | gpt-3.5-turbo-0613 | LV5 |
名前 | functions | LV28 |
役割 | ユーザーのfunctionsをそのままapi functionsに渡します | LV1 |
装備 | AIインスタンスを起動する能力(functions) | LV5 |
openai api chat/completions functions の形式に対応してくれます。
スタイルシートのコードディングが完了しました
何も変わっていない。。。
当初の目標
安くて早いgpt-3.5で私の業務(システムアプリ開発)を行えるこのアプリを開発していました。しかし
gpt-3.5モデルを使う中で記憶力の悪さに気がつきました。そでタスクを細かく分散(1回1回のゴールを小さく)すると、仕事がこなせる事がわかったので営業マンとプログラマーに分けました。
目標の方向転換
ですが cssの作成はTemplate.scssとページRegister2.jsの2つのファイルを見合わせながら新たにRegister2.scssの作成が必要です。
といわけで
お待たせいたしましたみんな大好き GPT-4を召喚します
GPT-4はjsのスタイルとHTMLの構造理解し、Template.scssからどのようなデザインを望んでいるかいるか理解してscssファイルを生成してくれます。
「俺」が保存されたcssの参照するファイルパスを修正します
- import classes from './PageTemplate.module.scss'
+ import classes from './Register2.module.scss'
今後の目標
今はシステム会社営業マンとプログラマーだけの組織ですが、プロデューサー、ディレクター、デザイナーを生成してIT会社を構築していきます。インスタンス制御できるので小規模から大規模な組織づくりができます。また現段階ではMac内で動作していますがクラウド実装に移植してスマフォだけで仕事をできるようにする構想があります。Reactのコーディングは割りと簡単な方だと思うのでUnityやFlutterの仕事をふっていこうと思います。
システムやITだけでは無く他の業種でも使えるものになると思いますが、その頃にはWindowsですべて実装されているのではないかな?笑
目標の進捗
達成率 : 20%
現在 ■■□□□□□□□□ 目標
利用したAPI仕様
API |
---|
api.openai.com/v1/chat/completions |
利用モデル | 役割 | 説明 |
---|---|---|
gpt-3.5-turbo-0613 | システム会社営業マン | 0613でfunctionsを利用 |
gpt-3.5-turbo-16k-0613 | Reactプログラムコーディング | コーディングするために16kでtoken量を増やしている(functionsは利用していない) |
gpt-4 | scssコーディング | 2つのファイルを認識するために4の頭脳が必要(でした) |
最後に
ここまでお読み頂きまして、ありがとうございます。GPTやAIを利用した技術の進歩が早すぎて今私のやっている事が良いものなのか悪いのかわからず、みなさんのご意見をお聞きしたいと思い投稿してみました。「いいね」や「もっとこの方が良いのあるよ」とかなんでも良いので反応が頂けると幸いかと思います。よろしくお願いいたします。
(荒木先生ごめんなさい尊敬しています)