コード生成用の Codey(code-bison
)は、コード生成をサポートするモデルの名前です。これは、自然言語の記述に基づいてコードを生成する基盤モデルです。コード生成用の Codey で作成できるコンテンツ タイプには、関数、ウェブページ、単体テストがあります。コード生成用の Codey は、コード生成 Codey API でサポートされています。Codey API は PaLM API ファミリーに含まれています。
このモデルをコンソールで確認するには、Model Garden に移動して Codey for Code Generation モデルカードを使用します。
Model Garden に移動
ユースケース
コード生成の一般的なユースケースには次のものがあります。
単体テスト: プロンプトを使用して、関数の単体テストをリクエストします。
関数を記述する: 問題をモデルに渡し、問題を解決する関数を取得します。
クラスを作成する: プロンプトを使用してクラスの目的を説明し、返されるクラスを定義するコードを用意します。
HTTP リクエスト
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/code-bison:predict
モデル バージョン
モデルの最新バージョンを使用するには、バージョン番号なしでモデル名を指定します(例: code-bison
)。
モデルの安定版を使用する場合は、モデルのバージョン番号を指定します(例: code-bison@002
)。安定版は、後続の安定版のリリース日から 6 か月間利用できます。
次の表に、利用可能なモデルの安定版を示します。
code-bison モデル | リリース日 | 廃止日 |
---|---|---|
code-bison@002 | 2023 年 12 月 6 日 | 2025 年 4 月 9 日 |
詳細については、モデルのバージョンとライフサイクルをご覧ください。
リクエストの本文
{
"instances": [
{ "prefix": string }
],
"parameters": {
"temperature": number,
"maxOutputTokens": integer,
"candidateCount": integer,
"stopSequences": [ string ]
"logprobs": integer,
"presencePenalty": float,
"frequencyPenalty": float,
"echo": boolean,
"seed": integer
}
}
code-bison
という名前のコード生成モデルのパラメータは次のとおりです。code-bison
モデルは Codey のモデルの一つです。これらのパラメータを使用して、コード補完プロンプトを最適化できます。詳細については、コードモデルの概要とコード補完のプロンプトを作成するをご覧ください。
パラメータ | 説明 | 使用できる値 |
---|---|---|
(必須) |
コードモデルの場合、prefix は、意味のあるプログラミング コードの一部、または生成されるコードを記述する自然言語プロンプトの開始を表します。 |
有効なテキスト文字列 |
|
温度は、レスポンス生成時のサンプリングに使用されます。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が 0 の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。 |
|
|
レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 60~80 語に相当します。 短いレスポンスには小さい値を、長い可能性のあるレスポンスには大きい値を指定します。 |
|
(省略可) |
レスポンスのバリエーションの数。リクエストごとに、すべての候補の出力トークンが課金されますが、入力トークンは 1 回のみ課金されます。 複数の候補を指定する機能は、
|
|
(省略可) |
レスポンスでいずれかの文字列が検出された場合に、テキストの生成を停止するようモデルに指示する文字列のリストを指定します。レスポンスで文字列が複数回出現する場合、レスポンスでは最初に見つかった箇所が切り捨てられます。文字列では大文字と小文字が区別されます。 たとえば、 stopSequences が指定されていない場合に、次のレスポンスが返されたとします。public
static string reverse(string myString) この場合に、 stopSequences が ["Str",
"reverse"] に設定されているレスポンスは次のとおりです。public static string |
文字列のリスト |
(省略可) |
各生成ステップで、最上位の候補トークンのログ確率を返します。モデルが選択したトークンは、各ステップで上位候補トークンとは異なる場合があります。1 ~5 の範囲の整数値を使用して、返される候補の数を指定します。 |
|
(省略可) |
値が正の場合は、生成されたテキストに繰り返し出現するトークンにペナルティが課されるため、コンテンツが繰り返される確率は低下します。最小値は -2.0 です。最大値は 2.0 の手前の値です。 |
|
(省略可) |
値が正の場合は、生成されたテキスト内の既存のトークンにペナルティが課されるため、より多様なコンテンツが生成される確率は高くなります。最小値は -2.0 です。最大値は 2.0 の手前の値です。 |
|
(省略可) |
true の場合、生成されたテキスト内でプロンプトがエコーされます。 |
|
|
シードが特定の値に固定されている場合、繰り返されるリクエストに対してモデルはベスト エフォートで同じレスポンスを提供します。確定的な出力は保証されません。また、モデルやパラメータの設定(温度など)を変更すると、同じシード値を使用してもレスポンスが変化することがあります。デフォルトでは、ランダムなシード値が使用されます。 これはプレビュー機能です。 |
|
リクエストの例
REST
Vertex AI API を使用してテキスト プロンプトをテストするには、パブリッシャー モデル エンドポイントに POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。 他のフィールドについては、リクエストの本文の表をご覧ください。
HTTP メソッドと URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/code-bison:predict
リクエストの本文(JSON):
{ "instances": [ { "prefix": "PREFIX" } ], "parameters": { "temperature": TEMPERATURE, "maxOutputTokens": MAX_OUTPUT_TOKENS, "candidateCount": CANDIDATE_COUNT } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/code-bison:predict"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/code-bison:predict" | Select-Object -Expand Content
レスポンスの例のような JSON レスポンスが返されます。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
レスポンス本文
{
"predictions": [
{
"content": string,
"citationMetadata": {
"citations": [
{
"startIndex": integer,
"endIndex": integer,
"url": string,
"title": string,
"license": string,
"publicationDate": string
}
]
},
"logprobs": {
"tokenLogProbs": [ float ],
"tokens": [ string ],
"topLogProbs": [ { map<string, float> } ]
},
"safetyAttributes": {
"categories": [ string ],
"blocked": false,
"scores": [ float ],
"errors": [ int ]
},
"score": float
}
]
}
レスポンス要素 | 説明 |
---|---|
blocked |
boolean フラグ。モデルの入力または出力がブロックされたかどうかを示す安全性属性に関連するフラグです。blocked が true の場合、レスポンスの errors フィールドには 1 つ以上のエラーコードが含まれます。blocked が false の場合、レスポンスに errors フィールドは含まれません。 |
categories |
生成されたコンテンツに関連付けられた安全性属性のカテゴリ名のリスト。scores パラメータのスコアの順序はカテゴリの順序と同じです。たとえば、scores パラメータの最初のスコアは、レスポンスが categories リストの最初のカテゴリに違反する可能性を示しています。 |
citationMetadata |
引用の配列を含む要素。 |
citations |
引用の配列。各引用にはメタデータが含まれます。 |
content |
入力テキストを使用してモデルによって生成された結果。 |
endIndex |
content の中で引用の終了位置を示す整数。 |
errors |
エラーコードの配列。errors レスポンス フィールドは、レスポンスの blocked フィールドが true の場合にのみレスポンスに含まれます。エラーコードの詳細については、安全性エラーをご覧ください。 |
license |
引用に関連付けられているライセンス。 |
publicationDate |
引用が公開された日付。有効な形式は、YYYY 、YYYY-MM 、YYYY-MM-DD です。 |
safetyAttributes |
安全性属性の配列。この配列には、レスポンスの候補ごとに 1 つの安全性属性が含まれます。 |
score |
float 値。0 未満の値です。score の値が高いほど、モデルのレスポンスの信頼度が高くなります。 |
startIndex |
content の中で引用の開始位置を示す整数。 |
title |
引用元のタイトル。引用元のタイトルとしては、ニュース記事や書籍などがあります。 |
url |
引用元の URL。引用元の URL ソースとしては、ニュースサイトや GitHub リポジトリなどがあります。 |
tokens |
サンプリングされたトークン。 |
tokenLogProbs |
サンプリングされたトークンのログ確率。 |
topLogProbs |
各ステップで最も可能性の高い候補トークンとそのログ確率。 |
logprobs |
logprobs パラメータの結果。candidates に対する 1 対 1 のマッピング。 |
レスポンスの例
{
"predictions":[
{
"citationMetadata": {
"citations": [ ]
},
"safetyAttributes": {
"scores": [ ],
"categories": [ ],
"blocked": false
},
"content": "CONTENT",
"score": -1.1161688566207886
}
]
}
生成 AI モデルからのレスポンスをストリーミングする
API に対するストリーミング リクエストと非ストリーミング リクエストでパラメータは同じです。
REST API を使用してサンプルコードのリクエストとレスポンスを表示するには、ストリーミング REST API の使用例をご覧ください。
Vertex AI SDK for Python を使用してサンプルコードのリクエストとレスポンスを表示するには、ストリーミングでの Vertex AI SDK for Python の使用例をご覧ください。