「Grok」に4つのAIコーディングテスト--驚きの好成績、理解しきれなかった課題は?
Xがチャットボットを初めて発表した際、有料の壁が立ちはだかっていた。しかし、「TANSTAAFL(何も失わずに何かを得られることはない)」にもかかわらず、Xは最近、「Grok」を世界に公開した。そこで筆者は、プログラミングテストを実施してみた。 筆者は、サービス名からしてGrokに興味をそそられていた。「Grok」という言葉は、私が大好きなSF作家の一人であるロバート・A・ハインライン(Robert Anson Heinlein)氏による造語である。 ハインライン氏に夢中になり過ぎない程度に言うと、彼は社会規範に関しては非常にオープンな考えを持っていた。彼は力強い物語を書き、科学に関する素晴らしいテーマを物語に取り入れ、深い社会批評をしばしば作品に盛り込んだ。 ハインライン氏は幅広い意味を持つ火星人の言葉として「grok」を生み出した。彼のSF小説「異星の客」で初めて登場したこの言葉は、「理解する」という意味で解釈でき、その理解のレベルは深く根本的である。AIチャットボットの名前としては完璧だろう。 それでは、本題のプログラミングテストに入ろう。 1. 「WordPress」プラグインの作成 これは、AIがPHPプログラミングとWordPressプラグインの構築方法を知っていることを要求するコーディングテストである。このテストは、名前をランダムに並べ替えるツールが欲しいという妻からのリクエストから生まれたが、工夫が施されている。 彼女は毎月、自身が運営するECサイトでユーザー参加型のマーケティング施策を実施しており、ランダムにユーザー名を抽出している。問題は、複数のプロジェクトを投稿したユーザーにはエントリーのチャンスが複数回付与されることだ。そのため、このランダム抽出では同一のユーザー名を管理し、結果の表示でその名前が隣り合わないよう調整する必要がある。 最後に、コードは分かりやすいユーザーインターフェース(UI)を実現しなければならない。具体的には、ユーザー名を貼り付け、ボタンをクリックするだけで、結果のリストを得られる仕組みである。 この課題をGrokに与えたところ、成功した。インターフェースは整然と配置され、機能的だった。そして最も重要なこととして、コードは目的通りに動作し、ユーザー名をランダム化し、同じ名前を分離した。このテストには合格点を与えよう。 2. 文字列関数の書き換え 2つ目のテストは、あるユーザーから最初に報告された不具合を解決するものである。筆者が公開したコードは、ユーザーが入力した数値が有効なドル/セント通貨であるかどうかをテストするように設計されていた。筆者の間違いは、コードが整数のみを許可していたため、例えば5ドルの寄付は可能だが、5.25ドルの寄付は不可能だったことである。 Grokは正規表現のコードをうまく書き換えてくれた。合格まであと一歩だったが、生成されたコードでは、有効な通貨単位である「.5」のような数値が許可されないため、不合格とせざるを得ない。「0.5」は許可されるが、全てのユーザーが小数点以下の数値にゼロを付け加えるわけではないだろう。 また、二重変換を行うのにかなり非効率的なメカニズムを使用しており、数値に変換できない文字列を適切に処理することもできない。 今のところ、1勝1敗である。