Vertex AIの機能として、コードを操作する一連のモデル「Codey API」がプレビューされました。
Generative AI Studioでも本機能が提供されましたので、今回はこれについてユースケースに基づいて検証したいと思います。

Generative AI Studioについてや、既存の機能については以下で検証しているので、合わせてご覧ください。
https://iret.media/74339

主な機能

そもそもCodey APIとは何か?という部分ですが、簡単に言うとコードの生成や既存コードに対するデバックなどをサポートする機能です。
以下の3つの機能をコンソールおよびAPIで使用することができます。

  • コード生成
  • コードチャット
  • コード補完

コード生成

code-bisonモデルをサポートしており、自然言語記述に基づいて必要なコードを生成できます。
ユースケースとしては以下が挙げられます。

  • 関数作成:問題をモデルに渡すことで、その条件に合った関数を作成する
  • クラス作成:クラスの目的を説明することで、クラスを定義するコードを返す
  • 単体テスト:関数の単体テストを行う設計が可能

設定方法

  1. Vertex AIからGenerative AI Studioページに移動し、[言語]モデルを選択します
  2. [CODE PROMPT]を選択します
  3. モデルを[code-bison]に設定し、パラメータを決定します
  4. プロンプトに問題文を記載し、[送信]をクリックします
<関数の作成>

閏年を判定する関数を作成するように問題文を記載したところ、ちゃんとコードとしてレスポンスが返ってきました。
コメントも含まれており、わかりやすいコードになっているように見受けられます。
また、言語の指定はしませんでしたが、今回はPythonで記載されていました。

<単体テストの作成>

上記で生成されたコードの単体テストを作成するように記載したところ、いくつかの内容でテストを実施するコードを作成してくれました。
こちらも具体的なコメントが入っているので、非常にわかりやすいです。

コードチャット

コードに関連する質問に回答するチャットボットを構成することができます。
モデルはcodechat-bisonをサポートしており、一般的なユースケースとしては以下が挙げられます。

  • デバッグ:コンパイルされないコードや、エラーが発生するコードに対してデバッグを行う
  • ドキュメント化:コードを正確にドキュメント化できるように、各コード上で何をしているのかを解説する
  • 学習:知らない言語やコードについて学ぶためのサポートを行う

設定方法

  1. Vertex AIからGenerative AI Studioページに移動し、[言語]モデルを選択します
  2. [CODE CHAT]を選択します
  3. モデルを[codechat-bison]に設定し、パラメータを決定します
  4. プロンプトに問題文を記載し、[送信]をクリックします
<デバック>

先程作成した関数において、==を=に変更して何故エラーが発生するかを質問してみたところ、エラー箇所を特定して詳しく説明してくれました。

<ドキュメント化>

こちらも内容を的確に捉えた上でドキュメント化してくれました。
今回は簡単なコードなので、もう少し複雑な場合でも問題ないかは気になるところです。

<学習>

このコードで使われている言語や文法について聞いたところ、概ね的を得た回答が返ってきました。
個人的には、関数やif文、演算子についての説明が返ってくるのかなと思いましたが、これは聞き方が悪いだけな気もしますね。

コード補完

コードを作成するときに、最近書かれたコードに基づいて提案を行う、自動補完がサポートされています。
code-geckoというモデルをサポートしており、ユースケースとしては以下が挙げられます。

  • コード記述の効率化:提案されたコードを利用することで、コードをより速く書くことができる
  • コードの最適化:構文的に正しいコードの提案を行うことで、コード作成で生じる可能性のあるバグが発生するリスクを最小限に抑える

設定方法

  1. Vertex AIからGenerative AI Studioページに移動し、[言語]モデルを選択します
  2. [CODE PROMPT]を選択します(ここまではコード生成と同じです)
  3. モデルを[code-gecko]に設定し、パラメータを決定します
  4. プロンプトに問題文を記載し、[送信]をクリックします
<コード補完>

上記で作成した関数について、else部分がない場合に補完してくれるか試したところ、的確な値でレスポンスが返ってきました。
返り値も正しい値なので、コードの内容を読み取った上で回答されていることがわかります。

終わりに

Generative AI Studioで提供されているCodey APの機能を一通り試してみました。
コード生成は精密さが重要だと思いますが、検証した範囲では非常に高い精度で答えてくれており、GAへの期待が高まります!

参考
コードモデルの概要