@MichioTooi (遠井 道夫)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

ChatGPT(LLM)を業務コード生成に使うとき、どこまで信用していいのか?

解決したいこと

業務で ChatGPT(GPT-4 / GPT-4oなど)を使ったコード生成を検討しています。

個人開発では問題なく使えていますが、
商用・業務コードにどこまで使って良いのか判断が難しいと感じています。

特に以下の点について、実務経験のある方の意見を伺いたいです。

• LLMが生成したコードをそのまま採用してよい基準
• セキュリティ・保守性のリスク
• チーム開発での安全な使い方

発生している問題・エラー

明確なエラーは発生していません。
ただし、生成されたコードが「一見正しく動くが、設計的に不安」なケースが多く、
レビュー時に判断基準が曖昧になっています。

該当するソースコード

// ChatGPT が生成した Next.js API Route の例

export default async function handler(req, res) {
  const userId = req.query.userId;
  const user = await fetch(`https://example.com/api/users/${userId}`)
    .then(res => res.json());

  res.status(200).json(user);
}

自分で試したこと

• ChatGPTの出力を必ず人間がレビュー
• ESLint / TypeScript / テストで最低限の安全性を担保
• 重要ロジックは自分で書く方針に変更

0 likes

4Answer

こんにちは。
日々目まぐるしい速度で進化している分野であるため、あくまで現時点での所感にはなりますが

結論から言うと、ChatGPT(LLM)を業務コード生成に使うこと自体は問題ありません。
ただし信用する/しないという二元論ではなく、どこまでを任せ、どこから人間が責任を持つかを明確にすることが重要だと考えています。

大前提として、業務内で扱うAIツールは、自身の能力不足を補うためのものではなく、
自身のスキル内で行える作業を省力化するための道具として使うべきだと思っています。

最終的な納品物には人間が責任を負う以上、
自分が理解・説明できない判断をAIに委ねることは、業務上大きなリスクです。

そのため、AIが生成したコードについては、
自分自身で、なぜこの実装で問題ないのかを説明できるレベルまで読み解くことが
できないのであれば、単純なデータ取得や薄いCRUD処理であっても、採用すべきではありません。

セキュリティや保守性のリスクについては、
LLMが危険なコードを書くこと自体より、設計や前提を与えないままプロンプトを投げていることに起因するケースが多いと感じています。
プロンプトは仕様書の圧縮版であり、設計された入力には相応に設計された出力が返ってきます。
(完璧な入力であってもLLMが最終的な正しさを保証してくれるわけではありませんが....)

そのため、これはチーム開発においても同様ですが、
LLMの出力はあくまで提案や下書きとして扱うべきです。

4Like

近い将来、AIでも、簡易な試験を実施したレベルの品質評価まで済ませたコードを出力できるようにはなるかと思いますが・・・

現在のAIでは、まだまだ品質的に未熟です。

現状の実装では、「とりあえず動く程度のもの」しか出力されません。

• LLMが生成したコードをそのまま採用してよい基準

現時点では、「なし」
どんなコードでも、利用者が確認して内容を判断する必要があります。

• セキュリティ・保守性のリスク

セキュリティに関して、かなり後回しにされるケースが多いと感じています。
たとえば、リソース管理ではDoSなどで簡単にやられてしまうコードを平気で書きます。
プロンプトで考慮点を列挙してあげると、かなり無駄なコードを出してきます。
保守性とセキュリティを担保するには、作り直したほうが早いというのが現状です。

• チーム開発での安全な使い方

少なくとも、チームの一員と同等の存在としては扱えません。
万が一の場合、人間と違って「法的な責任」を取ることもできません。

レビューのときなどは、「AIが出力したソースを元にしている」ことを明示してもらい、それを前提としたレビューチェックを行うべきでしょう。(観点を変えるべきです)

0Like

商用・業務コードにどこまで使って良いのか判断が難しいと感じています。

判断基準は質問者さんが成果物に対して責任を持てるのか、品質保証ができるのかというところにあると思います。

具体的には、例えば、以下の Google Cloud の記事にある、

「純粋なバイブ コーディング」では判断以前の問題でダメ。

「責任ある AI を活用した開発」のように、AI ツールを「ペア プログラマー」として利用し、質問者さんが AI が生成したコードをレビュー、テスト、理解し、最終的な製品に対する完全な責任を負う・・・ということであれば商用・業務に使って良いと判断できるかもしれません。

0Like

システム開発ではなく業務で使用するツール開発レベルの話ですが、自分の経験(ChatGPT 4-o等)ですとプログラミング言語によって随分差があると感じています。
Pythonですとかなり精度の高いコードを生成してくれると思いましたが、VBAですとそもそもエラーで動かないコードを生成することもありました。内容も異なるので言語の違いだけとは言えないかもしれませんがデバッグから必要なコードじゃ使えないなとなりました。

業務での利用については作成者がコードに責任を持てるならば良いのではないかと思います。レビュアーに指摘されたときに答えられないとか、不具合発生時に責任転嫁するようでは使うべきではないと思います。その辺りは他人が書いたコードのコピペやよく分からないままに書いたコードなどと同じ感じかと思います。

0Like

Your answer might help someone💌