HUOXIU

ChatGPT はコードの作成にどのように役立ちますか?

出典: 分散ラボ

AIは今まさにブームです。ソーシャルメディアで目にするのは、ChatGPTプラグインでできる新しいことや、生成AIで作成された新しい写真の紹介ばかりです。どれもとてもクールで、本当にワクワクしています。

テクノロジー業界はAIゴールドラッシュに完全に傾倒しているようだ。日々新しいソフトウェア、機能、そして拡張機能が登場し、私たちはまもなく重大な岐路に立たされる。私たちはこれらの新しい技術革新を全面的に受け入れ、それがもたらす変化を見守るべきだろうか?それとも無視して、消え去るのを待つべきだろうか?あるいは、妥協点を見出せるだろうか?

上記のAI導入曲線を見ると、私たちはまだ早期導入の初期段階にあると推測できます。オンラインでは多くの人が議論していますが、実際には実稼働環境でAIを活用している企業はごくわずかです。

AIの時代が到来し、AIはあらゆる場所に存在するようになるでしょう。私たちはAIの存在を特に意識することはなくなり、AIは当たり前のものとなり、ソフトウェアの使いやすさを向上させるでしょう。

しかし、私にとっては話が違います。私は完全に没頭し、ソフトウェアの計画、設計、実装の方法が根本的に変わりました。もはやエンタープライズアーキテクトではありませんが、ウェブサイトは自主的に管理しており、その背後にはあらゆるものを自動化する膨大なソフトウェアとサービスが存在します。

ここで、非常に強力な AI 技術を獲得した後、どのようにアプリケーションを設計するかについてお話ししたいと思います。

#01

序文

始める前に、私が何度も目にしてきた、テクノロジーとデザインの決定に影響する(そして最終的にはイノベーションから遠ざかる)誤解についてお話しする必要があります。

完璧なソフトウェアなど存在しません。 「まあまあ」という考えを早く受け入れれば受け入れるほど、あなたと顧客の双方にとってより満足できるでしょう。

設計を行う際には、完璧なソフトウェアを構築できると想定しないでください。たとえ「完璧」を目指して設計したとしても、実装中に複数の反復作業を経て、最終的に完全な変更に至る可能性があります。

すべての人を満足させることは不可能です。人々が求めているのは「完璧なソフトウェア」ではなく、問題を解決するものなのです。

これを念頭に置いて、AIは完璧ではないことは承知しています。多少の問題はあっても、時々不意を突かれることもあるでしょうが、それはそれで構いません。革新的な方法で問題を解決し、80%の確率で正解できれば、成功への準備は既にできていると言えるでしょう。

これを踏まえて、AI が急速に普及するにつれて私たちが直面する新たな可能性のいくつかについて話しましょう。

#02

新たな可能性

ChatGPTをはじめとする生成AIサービスは、驚くほど人間に近い能力を備えています。 これまでは人間に尋ねなければならなかった質問に、AIが答えられるようになりました。 これらのサービスが提供する回答を受け入れる覚悟があれば(これは大きな前提ですが)、これまでは人間による対話を必要としていた多くの新たな可能性が開かれるでしょう。

データ変換

ブログ記事を公開したら、それに合わせたソーシャルメディア投稿を作成できるようにしたいと思っています。以前は手作業で行っていましたが、機会があればバーチャルアシスタントに簡単に任せられます。ブログ記事のデータは揃っていますが、ターゲットオーディエンスが好むキーワード、構成、フォーマットが不足しています。しばらく前からこの作業に取り組んでおり、大まかなアイデアはありますが、まだ完璧ではありません。

しかし、ChatGPTなら可能です。私の記事から情報を抽出し、特定のターゲットオーディエンスに合わせて変換してくれます。市場セグメンテーションを非常によく理解しているので、私が頼めば、データを特定のオーディエンスが好む形式に変換してくれます。

「米国のサーバーレス開発者を対象としたコンテンツのツイートを作成してください。」

他のターゲットにプロモーションしたい場合は、「スペインの .NET エンジニアを対象としたブログ投稿用にスペイン語の LinkedIn 投稿を作成する」など、さまざまなバリエーションを提供するように依頼できます。

生成された応答は、Twitter API 経由で直接送信できます。

データ生成

これはおそらく、私たちが既に知っている最も一般的な用途でしょう。ChatGPTにデータ、メール、またはPDFドキュメントを生成するためのヒントを与えることです。しかし、その用途は非常に幅広いため、明確に述べる価値があります。

以前のブログ記事で、毎日のワークアウトプランを生成するフィットネスアプリの構築方法について説明しました。このアプリでは、毎日使用する筋肉群とジム機器をランダムに決定し、ChatGPTにプロンプ​​トを生成するLambda関数を使用しています。ChatGPTはウォームアップとクールダウンのエクササイズを含む完全なワークアウトプランを生成し、データベースに保存します。

生成AIが登場する前は、このような実装は悪夢のような作業でした。エクササイズのデータ​​ベースを作成し、様々なトレーニングの種類に合わせて調整する方法を見つける必要がありました。さらに、エクササイズを擬似ランダム化し、構造化するロジックを設計する必要がありました。このプロセスには数週間かかり、満足のいく結果が得られない可能性もありました。

ChatGPTにクエリを実行し、面倒な作業をすべて自動化するStep Functionワークフローの構築に3時間を費やしています。自分で構築する場合と比べて、AIを活用することで数週間もの時間を節約できました。

このアプリケーションはエクササイズ プランに限定されません。ストーリーを生成したり、提供されたパターンに基づいて完全なシミュレーション データセットを構築したり、キッチンにある材料に基づいてレシピを作成したりすることもできます。

今では、適切なヒントを使って意味のあるデータを自動的に生成できます。「ソフトウェアエンジニアリング」から「ヒントエンジニアリング」へと移行しました。カスタマイズされたビジネスロジックを満たすために、もはや膨大な要素データベースは必要ありません。ChatGPTに適切なヒントを与えるだけで、ChatGPTは自身の知識を活用してタスクを実行できます。

#03

適切な機会を見つける

コンテンツを公開するタイミング、イベントに反応するタイミング、通知を送信するタイミングを判断するのは非常に困難です。 理想的なタイミングは状況によって異なることが多く、普遍的な設定に沿うことは稀です。 良い例としては、異常が検知された際にオンコールエンジニアに通知するケースが挙げられます。 ポップアップ表示される異常ごとに通知を送信するのは、アラーム疲れにつながる可能性があるため、避けるべきです。

AIに定期的にデータセットを投入することで、AIは異常を特定し、それが自然に解決するかどうかを観察できるだけでなく、そもそも異常が発生した理由を推測することもできます。特定の条件が満たされた場合にのみアラートを送信するというガイドラインをAIに提供することで、オンコールスタッフの効率を向上させ、人件費に基づく総所有コスト(TCO)を削減できます。

ChatGPTにJSONオブジェクトを渡してJSONレスポンスを要求することもできます。従業員への通知という別の例で説明しましょう。

多くの人が在宅勤務をしているため、全員の都合の良い時間にメッセージを送信するのは困難です。そこで、ChatGPT を使用すれば、個々のアクティビティの傾向を特定し、統計的に見てオンラインで連絡を取る可能性の高い時間帯を正確に特定することができます。次のような監査履歴を想像してみてください。

[
{
「タイムスタンプ」 : 「2023-05-26T14:52:21Z」
「イベント」「ログイン」
},
{
「タイムスタンプ」 : 「2023-05-27T16:40:09Z」
「イベント」「ログアウト」
},
{
「タイムスタンプ」 : 「2023-05-28T07:55:13Z」
「イベント」「ログイン」
},
{
「タイムスタンプ」 : 「2023-05-28T19:30:10Z」
「イベント」「ログアウト」
}
// その他の監査イベント
]

ChatGPT に監査履歴を提供し、ヒントを与えることができます。

ユーザーが次にオンラインになったときに連絡を受ける可能性が最も高い属性「sendAtTime」を持つ ISO-8601 形式の JSON オブジェクトを返します。

これにより、次の応答が返されます。

{
"sendAtTime" : "2023-05-29T15:20:55Z"
}

完全な通知システムを構築する必要もありません!監査履歴を渡し、AIにリクエストするだけで、傾向に基づいて次回の公開日時を推測できます。Step Functionsワークフローを素早く構築し、監査履歴を読み込み、Lambda関数を使ってChatGPTにクエリを実行し、EventBridgeの1回限りのスケジュールを設定できます。

このようにして、以前は何週間もかけて慎重に計画し、努力する必要があったタスクが、今では簡単に完了できるようになります。

#04

開発アプローチを変える方法

これまでの例を通して、全く新しいユースケースが実現しました。 もはや、CRUD操作を追跡するためのありきたりなシステムの構築には焦点を当てていません。 この問題に対処する例は既に数百あります。

今では、人間中心のアプローチでソフトウェア開発に取り組んでいます。ChatGPTで質問しながら、コードを最小限に抑える方法を考えています。コードは負担だと何度も言ってきましたが、コードを削減する機会があれば、ためらうことなく活用します。以前は、APIゲートウェイをさまざまなAWSサービスに直接接続し、Lambda関数の記述を省略することでコードを削減していたかもしれません。

しかし今では、必要な機能を実現するためにエンドポイントさえ必要なくなるかもしれません。これらは自動的に実行されます。

開発においては、「何を自動化できるか、どこでフィードバックを得られるか、そしていつアクションを起こすべきか」というアプローチでデータを作成します。私のブログを例に挙げてみましょう。

私の記事はすべてGitHubにMarkdownファイルとして保存されています。新しい記事をメインブランチにプッシュすると、一連のイベントが自動的に発生します。

  • 他のブログプラットフォームでコンテンツをクロスパブリッシングする
  • 記事を要約して分析し、関連する統計データを収集します。
  • テキスト読み上げ録音を合成し、記事に保存します。
  • ライティングスキルのレベル、トーン、専門分野、主題などの側面を含む著者分析を作成します。
  • コンテンツに基づいてターゲット ユーザーと関連ユーザーを特定します。
  • 特定の対象者に向けたソーシャル メディア投稿を作成し、記事の内容を要約します。
  • ターゲット ユーザーに最適なタイミングに合わせてソーシャル メディアの投稿をスケジュールします。

これらの機能の一部はまだ実現していませんが、生成AIによって実現可能になるでしょう。これらの業務を見ると、ChatGPTは実質的に自動化されたマーケティングチームになっていると言えます。記事に共感するオーディエンスを特定し、彼らとどのようにつながるかを把握し、彼らがオンラインになった時にカスタマイズされたメッセージを送信する。これらはマーケティングタスクであり、非常に困難なものです。

しかし、これらすべてが実現可能になったのは、私が全く新しいソフトウェア開発アプローチを採用し始めたからです。「X、Y、Zといったタスクを実行できるシステムをどのように構築するか」に焦点を当てるのではなく、それらのタスクを実行するためにAIにどのような質問をすればよいかを考え出しました

これはまさに画期的なことです。あらゆる要素を考慮すると、このアプローチのROIは信じられないほど高く、コストは驚くほど低いです。確かに、答えは常に完璧ではありませんが、それは受け入れます。正直なところ、私が自分でソリューションを構築した時は、完璧ではありませんでした。しかし、完了までの時間を100分の1に短縮できることは、間違いなく価値があります。

楽しいコーディングを!