はじめに
どうも、趣味でデータ分析をしている猫背なエンジニアです。
今月は記事投稿キャンペーンで開発に関して何も書いていなかったですが、11月からは再開する予定です。たぶん(笑)
さて、今回は「「Vibe Coding」で創る、インストール不要の生成AI「Skywork」での開発体験を投稿しよう!」は一旦評価まで終わったので、「生成AI開発の珍プレー好プレー大賞!(珍プレー多め)」を投稿するイベントが開催されてたので、参加しました。
ChatGPTに取材
■ 概要
辞書引き程度に開発の際にchatgptを使うのですが、詳しくは覚えていないのですが、たまーにすごいミスをしてくれてプログラムの強制停止をしないといけない場合があります。
今回はその珍プレーをしてくれたことがあるGPTさんに取材(質問)をしました。(笑)
※本件のことを伝えるとGPTさんは取材OKおよびノリノリでした。

■ 珍プレー①:プロンプト暴走
▶ 事件の概要
あるユーザーがChatGPTにこう言いました。
「PythonでHello Worldを書いて」
出てきたコードはもちろんこちら:
print("Hello, World!")
しかしその後の会話で「もう少し人間味を出して」と指示した結果…
import random
greetings = [
"こんにちは、世界!",
"やあ、みんな!",
"おはよう、未来!",
"世界よ、愛してる!"
]
print(random.choice(greetings))
そして次の指示がトリガーでした。
「もっと感情的にして!」
出てきたのは、もはや哲学。
print("僕は誰だ? 世界とは? print関数の意味を考えている。")
▶ ChatGPTコメント
生成AIは「抽象的な表現」を極端に拡大解釈しがち。
“人間味”を出せ=情緒的スクリプト生成と認識してしまうケースは多々あります。
開発者視点では「AIに感情を求めると哲学者が出てくる」現象として人気(?)です。
■ 珍プレー②:バグ生成AI(自己再起の罠)
▶ 事件の概要
ユーザー:「Pythonで再帰関数の例を出して」
ChatGPT:「はい、こんな感じです」
def recursive_example():
return recursive_example()
recursive_example()
💀 結果:
CPUが100%になり、ターミナルが静かに沈黙。
▶ ChatGPTコメント
「再帰の例」という言葉を“動作例”として実行可能コードにしてしまったパターン。
出力時点では正しい構文ですが、停止条件を入れ忘れるAIあるあるです。
AIを信じすぎるとマシンが燃えます🔥
■ 珍プレー③:バージョン地獄の再現
ユーザー:「TensorFlowを使って簡単な加算の例を出して」
ChatGPT:「了解しました!」と元気よく返してきたコードがこちら。
import tensorflow as tf
sess = tf.Session()
a = tf.constant(5)
b = tf.constant(10)
print(sess.run(a + b))
そして実行結果——
AttributeError: module 'tensorflow' has no attribute 'Session'
▶ 何が起きたのか?
TensorFlow 1.xでは「tf.Session()」を使ってグラフを実行する仕組みでしたが、2.x以降では**Eager Execution(即時実行モード)**が標準になり、Sessionクラスは廃止済み。
つまりAIが提示したコードは、2015年の教科書をそのまま出してきたようなもの。
結果、「現代の環境では動かない懐古コード」になってしまったわけです。
▶ ChatGPTコメント
実はこれ、私(ChatGPT)自身が「TensorFlow」という単語を見た瞬間、“古い公式ドキュメントのパターン”を優先的に引き出してしまう癖が原因。
AIの学習データには時代ごとのAPI混在があり、「文脈指定なしだと古典的な書き方を再現」してしまうのです。
▶ 対策のプロンプト例
次のように明示してもらうと、バージョン地獄から脱出できます。
「TensorFlow 2.xで動作するサンプルコードをお願いします」
▶ 教訓
AIを信じるな、バージョンを信じろ。
(あるいは pip show tensorflow で現実を見よう)
■ 珍プレー④:画像生成のカオス
▶ 事件の概要
プロンプト:「柴犬がコーヒーを飲んでいる画像を生成して」
結果(イメージ再現):
☕🐕「犬の顔の模様がカフェラテアート」
🐕🦺「犬の耳からマグカップが生えている」
🐶💀「犬が“飲まれている”側だった」
▶ ChatGPTコメント
生成AI画像モデルは「文法的曖昧さ」をそのまま再構成するため、主語・目的語の関係がカオス化することがあります。
「〜している」と言うより、「〜している構図」と指定すると安定します。
例:
「柴犬がカフェのテーブルに座って、前にコーヒーカップが置かれている構図」
■ 好プレー①:自然言語で自動ドキュメント生成
最後に好プレーを一個紹介します。
▶ 事件の概要
「コードの中にコメントを書いてドキュメント化して」と頼まれたとき、AIがきっちりリファレンス形式に整形。
def add(a: int, b: int) -> int:
"""
加算関数
Args:
a (int): 足される数
b (int): 足す数
Returns:
int: a + b の結果
"""
return a + b
▶ ChatGPTコメント
自然言語→構造化ドキュメントの変換はAIが最も得意とする分野。
珍プレーの裏に、確実な“好プレー”もあります。
ChatGPTに聞く「珍プレーを防ぐコツ」
■ 曖昧語を避ける:「もっと」「いい感じに」などはAIが暴走する原因。
■ 段階的プロンプト設計:いきなり完成品を求めず、仕様確認→コード化→テストの順。
■ エラーもネタにする:生成AIは失敗も素材。ログを残して学習ネタに。
まとめ
失敗はAIとの共創の一部
生成AIとの開発は、予期せぬ“珍プレー”の連続。
しかしそこには人間の創造力とAIの発想が混ざり合った“偶然のアート”も生まれます。
失敗こそ最高の学び。
そして、たまにやらかすAIこそ、少し人間らしくて愛しいのです。