コード補完用の Codey(code-gecko
)は、コード補完をサポートするモデルの名前です。これは、記述されたコードに基づいてコードを生成する基盤モデルです。コード補完用の Codey は、ユーザーが入力したコードを完成させます。コード補完用の Codey はコード生成 API でサポートされています。Codey API は PaLM API ファミリーに含まれています。
コード補完のプロンプトの作成について詳しくは、コード補完プロンプトを作成するをご覧ください。
このモデルをコンソールで確認するには、Model Garden に移動して「コード補完用の Codey」モデルカードをご覧ください。
Model Garden に移動
ユースケース
コード補完の一般的なユースケースは次のとおりです。
迅速に記述する:
code-gecko
モデルを使用すると、提案されたコードを利用してコードを迅速に記述できます。バグを最小限に抑える: 正しい構文が使用されているコードの候補を使用することで、エラーを回避します。コード補完により、コードの記述時にバグが発生する可能性を最小限に抑えることができます。
HTTP リクエスト
POST https://us-central1-googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/code-gecko:predict
モデル バージョン
モデルの最新バージョンを使用するには、バージョン番号なしでモデル名を指定します(例: code-gecko
)。
モデルの安定版を使用する場合は、モデルのバージョン番号を指定します(例: code-gecko@001
)。安定版は、後続の安定版のリリース日から 6 か月間利用できます。
次の表に、利用可能なモデルの安定版を示します。
code-gecko モデル | リリース日 | 廃止日 |
---|---|---|
code-gecko@002 | 2023 年 12 月 6 日 | 2024 年 10 月 9 日 |
code-gecko@001 | 2023 年 6 月 29 日 | 2024 年 7 月 6 日 |
詳細については、モデルのバージョンとライフサイクルをご覧ください。
リクエストの本文
{
"instances":[
{
"prefix": string,
"suffix": string
}
],
"parameters": {
"temperature": number,
"maxOutputTokens": integer,
"candidateCount": integer,
"stopSequences": [ string ],
"logprobs": integer,
"presencePenalty": float,
"frequencyPenalty": float,
"echo": boolean,
"seed": integer
}
}
code-gecko
という名前のコード補完モデルのパラメータは次のとおりです。code-gecko
モデルは Codey モデルの一つです。これらのパラメータを使用して、コード補完プロンプトを最適化できます。詳細については、コードモデルの概要とコード補完プロンプトを作成するをご覧ください。
パラメータ | 説明 | 使用できる値 |
---|---|---|
(必須) |
コードモデルの場合、prefix は、意味のあるプログラミング コードの一部、または生成されるコードを記述する自然言語プロンプトの開始を表します。モデルは、prefix と suffix の間のコードの入力を試みます。 |
有効なテキスト文字列 |
(省略可) |
コード補完の場合、suffix は意味のあるプログラミング コードの終了を表します。モデルは、prefix と suffix の間のコードの入力を試みます。 |
有効なテキスト文字列 |
|
温度は、レスポンス生成時のサンプリングに使用されます。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が 0 の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。 |
|
|
レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 60~80 語に相当します。 レスポンスを短くする場合は小さい値、長くする場合は大きい値を指定します。 |
|
(省略可) |
返すレスポンス バリエーションの数。 |
(省略可) |
(省略可) |
レスポンスでいずれかの文字列が検出された場合に、テキストの生成を停止するようモデルに指示する文字列のリストを指定します。レスポンスで文字列が複数回出現する場合、レスポンスでは最初に見つかった箇所が切り捨てられます。文字列では大文字と小文字が区別されます。 たとえば、 stopSequences が指定されていない場合に、次のレスポンスが返されたとします。public
static string reverse(string myString) この場合に、 stopSequences が ["Str",
"reverse"] に設定されているレスポンスは次のとおりです。public static string |
文字列のリスト |
(省略可) |
各生成ステップで、最上位 logprobs の最も可能性の高い候補トークンとそのログ確率を返します。各ステップで選択したトークンとそのログ確率は常に返されます。選択したトークンは、最上位 logprobs の最も可能性の高い候補に含まれる場合もあれば、含まれない場合もあります。 |
|
(省略可) |
値が正の場合は、生成されたテキストに繰り返し出現するトークンにペナルティが課されるため、コンテンツが繰り返される確率は低下します。有効な値は -2.0 ~2.0 です。 |
|
(省略可) |
値が正の場合は、生成されたテキスト内の既存のトークンにペナルティが課されるため、より多様なコンテンツが生成される確率は高くなります。有効な値は -2.0 ~2.0 です。 |
|
(省略可) |
true の場合、生成されたテキスト内でプロンプトがエコーされます。 |
|
|
デコーダは、擬似乱数生成ツールを使用してランダムなノイズを生成します。サンプリングを行う前に、温度 * ノイズをロジットに追加します。疑似乱数生成ツール(prng)は、シードを入力として受け取り、同じシードを使用して同じ出力を生成します。 シードが設定されていない場合、デコーダで使用されるシードが決定的ではないため、生成されたランダムノイズは変動する可能性があります。シードが設定されている場合、生成されるランダムノイズは決定的です。 |
|
リクエストの例
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-gecko:predict
リクエストの本文(JSON):
{ "instances": [ { "prefix": "PREFIX", "suffix": "SUFFIX"} ], "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-gecko: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-gecko: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": boolean,
"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 です。 |
score |
float 値。0 未満の値です。score の値が高いほど、モデルのレスポンスの信頼度が高くなります。 |
startIndex |
コンテンツ内での引用の開始位置を示す整数。 |
title |
引用元のタイトル。引用元のタイトルとしては、ニュース記事や書籍などがあります。 |
url |
引用元の URL。引用元の URL ソースとしては、ニュースサイトや GitHub リポジトリなどがあります。 |
tokens |
サンプリングされたトークン。 |
tokenLogProbs |
サンプリングされたトークンのログ確率。 |
topLogProbs |
各ステップで最も可能性の高い候補トークンとそのログ確率。 |
logprobs |
logprobs パラメータの結果。candidates に対する 1 対 1 のマッピング。 |
レスポンスの例
{
"predictions": [
{
"safetyAttributes": {
"blocked": false,
"categories": [],
"scores": []
},
"content": " reverses a string",
"citationMetadata": {
"citations": []
}
},
"score": -1.1161688566207886
]
}
生成 AI モデルからのレスポンスをストリーミングする
API に対するストリーミング リクエストと非ストリーミング リクエストでパラメータは同じです。
REST API を使用してサンプルコードのリクエストとレスポンスを表示するには、ストリーミング REST API の使用例をご覧ください。
Vertex AI SDK for Python を使用してサンプルコードのリクエストとレスポンスを表示するには、ストリーミングでの Vertex AI SDK for Python の使用例をご覧ください。