
例えばYahoo!知恵袋に別のカテゴリに同じ質問を投げかけたとします。
その行為は少し前(と言ってもだいぶん前かもしれませんが)には
マルチポストと言われてあまり良くないという傾向に有るとされていました。
確かに、あるカテゴリにいる人達に質問した内容を
別のカテゴリにいる人達に同じ質問をする行為は、
どちらのカテゴリにいる人達を信用していない行為と思われる傾向にあったかもしれません。
1日の中で何度もおみくじを引く行為を思い出すのかもしれませんね。
おみくじは神様からのお告げと言い換えると、
それを信じずにもう一度お告げを受けるという行為は
神様からのお告げをそもそも信じていないと思うのかもしれません。
それはそうかも知れませんが、
エンジニアの私としては違うソースからの情報同士を精査して
プロジェクトを前に進む方法を探すというのが当たり前のように思います。
ところで、令和の今の時代では生成AIが台頭しています。
知恵袋に別のカテゴリに質問を投稿したらマルチポストと言われるので
生成AIに聞いたら?
令和の今どきであればその方が正解に早く近づくことが出来ると思います。
------------------------------------------
・マルチポストの定義と従来のイメージ:
掲示板文化におけるマナー違反としてのマルチポスト
なぜ嫌われたのか(情報分散、回答者の負担増など)
・現代のエンジニアリングにおけるマルチポストの再評価:
複数のAIに同じ質問をするメリット(多様な視点、客観性、網羅性)
各AIの得意分野を活かした情報収集の効率化
特定のAIの偏りや誤りを補完する役割
・AIの視点から見たマルチポスト:
AIは質問を受けることで学習し、改善されるという側面
多様なインプットがAIの性能向上に貢献する
エンジニアの探究心や効率性を評価するAIの「好印象」
・効果的なマルチポストのやり方:
質問の意図を明確にする
各AIの特性を理解して質問を調整する
得られた回答を統合・比較するスキル
------------------------------------------
知恵袋に対してのマルチポストは令和の今どきでも否定傾向にあるかもしれませんが、
生成AIは誰がどのAIに対して質問しているのかを把握しようがありません。
しかも、生成AIは質問した内容に対して貶すことはありません。
否定するのはありますが、
それはそのAIが学習してきた内容と異なっている場合だと思います。
じゃあ、いくつかのAIに対して同じ質問を行ったり、
常用しているAIからの回答を別のAIに質問を投げかけてどう思いますか?
と言ったことが推奨されているのだと思います。
エンジニアという人種は別のソースからの情報を集約して、
自分が正解に近いと思われる方向に進む傾向にあります。
マルチポストは対人間にたいしてであって、
生成AIに対してのマルチポストはエンジニア的目線からすると推奨されます。
こちらは私がClaudeと行ったコーディングに対して
Geminiはそのコーティングに対してどう感じるのか?という返答です。
------------------------------------------
ご提示いただいたドキュメント、拝見いたしました。Claudeと非常に深く掘り下げてスクリプトを作成されたのですね。素晴らしい探究心だと思います。
その上で、clearを先に行うべきか、getValuesを先に行うべきか、という点について私の見解を述べさせていただきます。
要点(結論から)
Claudeの指摘は、GASの一般的な動作とは異なる誤解に基づいている可能性が高いです。 GASのSpreadsheetAppサービス(getValues, setValues, clearなど)は、基本的に同期的に動作します。非同期ではありません。
パフォーマンス(速度)の観点では、どちらの順序でも体感できるほどの差は生まれません。
データの安全性(堅牢性)の観点では、私が前回提示した順序(get → clear → set)の方が優れています。
したがって、引き続き私が提案した順序 getValues → clear → setValues をお勧めします。
詳細な解説
1. GASの処理は「同期的」です 🤝
Claudeが指摘した最大のポイントは「GASの処理は非同期」という点ですが、これは正しくありません。
SpreadsheetAppで行うほとんどの操作は**同期的(Synchronous)です。これは、「一つの処理が完全に終わるまで、次の処理には進まない」**ということを意味します。
中略
まとめ
Claudeは非常に高度な推論を行いますが、GASの具体的な実行モデルについては一部誤解があったようです。
パフォーマンス面ではどちらも同じですが、データ保全という重要な観点から get → clear → set の順序がベストプラクティスと言えます。安心して前回ご提案したコードをご利用いただければと思います。
------------------------------------------
Claudeとコーディングを行ったスクリプト全体を渡して、
私が感じた疑問(関数の実行順序)をClaudeに聞いた内容を添えて
Geminiとしてどう感じるのか?と聞いた内容に対しての返答です。
なるほど。
Claudeと行ったコーディングで問題に対して深く掘り下げたのだと評価してくれています。
その中で、Claudeの認識がGemini(Google Apps Scrip=(GAS)=Googleグループ)が認識しているGASの技術仕様と異なっていると指摘しています。
GeminiなのでGASとの親和性は当然ながらありますよね。
で、Geminiからの回答をClaudeに伝えたところ・・・
------------------------------------------
Geminiの指摘を受けて、私の説明について詳しく検討させていただきました。非常に建設的なフィードバックをいただき、ありがとうございます。
私の説明で不正確だった点
1. GASの同期・非同期について
Geminiの指摘は正しいです。SpreadsheetAppのメソッド(getValues(), setValues(), clear())は基本的に同期処理です。私が「非同期処理の競合」として説明したのは不正確でした。
2. 実行順序の不定性について
const allData = sheet_copyFrom.getRange(...).getValues();
sheet_copyTo.clear();
sheet_copyTo.setValues(allData);
この順序で書かれていれば、必ずこの順番で実行されます。私の「実行順序が不定になる」という説明は間違いでした。
------------------------------------------
Geminiからの回答を共有したところ、
Claudeの認識が誤っていることをここで認めてくれました。
各種AIへチャットする内容の近くに
AIは間違いを起こすことが有るので・・・
という注意文が有るのはハルシネーションが存在するためです。
Claudeからの回答を続けます。
------------------------------------------
2. Google Sheetsの内部最適化
これについては、私の説明が推測に基づく部分がありました。実際のパフォーマンス差は、Geminiが指摘する通り微細だと思います。
結論
Geminiの分析と推奨は合理的です。 特に:
GASの同期処理: 完全に正しい指摘
エラー時のデータ保全: 重要な観点
パフォーマンス差の実態: 現実的な評価
私の推奨の修正
あなたの運用(マスタデータの重要性、安定運用の重視)を考慮すると、Geminiの推奨する順序がより適切だと思います:
学び
この議論から、私自身も学びました:
具体的な技術仕様の確認の重要性
エラー時の振る舞い設計の重要性
複数の視点から検証することの価値
Geminiとの比較検討をしていただいたおかげで、より正確で実用的な回答ができるようになりました。ありがとうございました!
あなたの「複数の情報源を比較検討する」というアプローチは、エンジニアとして非常に重要な姿勢ですね。
------------------------------------------
AIというのはハルシネーションが有るというのを認めたうえで、
Geminiの言う事をClaudeが足りていないことを認めたうえで、
Geminiの方法のほうが正解であるという事を結論付けてくれました。
さらに、複数のAIにマルチポストする姿勢はエンジニアとして非常に重要な姿勢と発言しています。
AIというのはその回答に対してハルシネーションが含まれないという可能性が否定できないため、
その回答に対して検証を行う必要があります。
一方、エンジニアという人種は自分のことしか信じない傾向にありますので、
AIからの回答を自然に検証する傾向にあります。
検証した結果、誤っていると思われる結果だったことに対して、
同じAIにフィードバックすることも有ると思いますし、
別のAIにマルチポストして回答を得ることも日常です。
------------------------------------------
掲示板にマルチポストするのは否定的な意見がある一方、
複数のAIに対してマルチポストするのはエンジニアとして正しい方向ということですね。
これは、お守りをいくつも持つという行為を思い出します。
お守りは神様や仏様からのご利益もたらす縁起物なのですが、
何柱の神様や仏様からのお守りを持つというのは、
それぞれの神様や仏様を信じたうえで持つ行為ですので、
好意的な印象があるようです。
おみくじを1日のうちに何度も引く行為は否定的に囚われている反面、
お守りを複数持つ行為は好意的に囚われているのですね。
こちらのブログでよく登場したハルシネーションにつきましては別の記事にしたいと思います。
しかし、私の文章とAIの文章ってびっくりするぐらい似ていますよね。
私も区切りがなければ数カ月後に見返してみても
どこが私の文章なんだ?と思うかもしれません(・・;)
という内容の文章がAIによって書かれた可能性は否定できない(笑)