Codey for Code Chat(codechat-bison
)は、コードチャットをサポートするモデルの名前です。これは、コードに特化したマルチターンの会話をサポートする基盤モデルです。このモデルでは、デベロッパーは chatbot とチャットして、コード関連の質問を行うことができます。Code Chat API は、Codey for Code Chat モデルとのインターフェースに使用されます。
コードチャットの Codey は、やり取りが必要になるコードタスクに最適で、継続的な会話を行うことができます。1 回の操作で完成させるコードタスクの場合は、コード補完の API かコード生成の API を使用します。
コンソールでこのモデルを確認するには、Model Garden に移動して Codey for Code Chat モデルカードを使用します。
Model Garden に移動
ユースケース
コードチャットの一般的なユースケースは次のとおりです。
サポート: API、サポートされているプログラミング言語の構文、コードの実行に必要なライブラリのバージョンなど、コードに関する質問を行うことができます。
デバッグ: コンパイルでエラーが発生するコードや、バグが含まれるコードのデバッグをサポートします。
ドキュメント: コードを正確に記述できるようにコードの理解を支援します。
学習: 慣れていないコードについて学習できるよう支援します。
HTTP リクエスト
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/codechat-bison:predict
モデル バージョン
モデルの最新バージョンを使用するには、バージョン番号なしでモデル名を指定します(例: codechat-bison
)。
モデルの安定版を使用する場合は、モデルのバージョン番号を指定します(例: codechat-bison@002
)。安定版は、後続の安定版のリリース日から 6 か月間利用できます。
次の表に、利用可能なモデルの安定版を示します。
codechat-bison モデル | リリース日 | 廃止日 |
---|---|---|
codechat-bison@002 | 2023 年 12 月 6 日 | 2025 年 4 月 9 日 |
詳細については、モデルのバージョンとライフサイクルをご覧ください。
リクエストの本文
{
"instances": [
{
"context": string,
"messages": [
{
"content": string,
"author": string
}
]
}
],
"parameters":{
"temperature": number,
"maxOutputTokens": integer,
"candidateCount": integer,
"logprobs": integer,
"presencePenalty": float,
"frequencyPenalty": float,
"seed": integer
}
}
codechat-bison
コードチャット モデルのパラメータは次のとおりです。codechat-bison
モデルは Codey のモデルの一つです。これらのパラメータを使用すると、chatbot とコードに関する会話を行うためのプロンプトを最適化できます。詳細については、コードモデルの概要とコードについてチャットするプロンプトを作成するをご覧ください。
パラメータ | 説明 | 許容できる値 |
---|---|---|
|
有効な回答を得るために最初にモデルに提供する必要のあるテキスト。 | テキスト |
(必須) |
構造化された形式でモデルに提供される会話の履歴。メッセージは古い順、新しい順に表示されます。メッセージの履歴のために入力が最大文字数を超えると、プロンプト全体が上限内に収まるまで最も古いメッセーが削除されます。 |
List[Structured Message] "author": "user", "content": "user message" |
(省略可) |
温度は、レスポンス生成時のサンプリングに使用されます。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が 0 の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。 |
|
(省略可) |
レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 60~80 語に相当します。 短いレスポンスには小さい値を、長い可能性のあるレスポンスには大きい値を指定します。 |
|
(省略可) |
レスポンスのバリエーションの数。リクエストごとに、すべての候補の出力トークンが課金されますが、入力トークンは 1 回のみ課金されます。 複数の候補を指定する機能は、
|
|
(省略可) |
各生成ステップで、最上位の候補トークンのログ確率を返します。モデルが選択したトークンは、各ステップで上位候補トークンとは異なる場合があります。1 ~5 の範囲の整数値を使用して、返される候補の数を指定します。 |
|
(省略可) |
値が正の場合は、生成されたテキストに繰り返し出現するトークンにペナルティが課されるため、コンテンツが繰り返される確率は低下します。最小値は -2.0 です。最大値は 2.0 の手前の値です。 |
|
(省略可) |
値が正の場合は、生成されたテキスト内の既存のトークンにペナルティが課されるため、より多様なコンテンツが生成される確率は高くなります。最小値は -2.0 です。最大値は 2.0 の手前の値です。 |
|
|
シードが特定の値に固定されている場合、繰り返されるリクエストに対してモデルはベスト エフォートで同じレスポンスを提供します。確定的な出力は保証されません。また、モデルやパラメータの設定(温度など)を変更すると、同じシード値を使用してもレスポンスが変化することがあります。デフォルトでは、ランダムなシード値が使用されます。 これはプレビュー機能です。 |
|
リクエストの例
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/codechat-bison:predict
リクエストの本文(JSON):
{ "instances": [ { "messages": [ { "author": "AUTHOR", "content": "CONTENT" } ] } ], "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/codechat-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/codechat-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": [
{
"candidates": [
{
"author": string,
"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 ]
},
"score": float
}
]
}
レスポンス要素 | 説明 |
---|---|
author |
string 。チャット レスポンスの作成者を示します。 |
blocked |
boolean フラグ。モデルの入力または出力がブロックされたかどうかを示す安全性属性に関連するフラグです。blocked が true の場合、レスポンスの errors フィールドには 1 つ以上のエラーコードが含まれます。blocked が false の場合、レスポンスに errors フィールドは含まれません。 |
categories |
生成されたコンテンツに関連付けられた安全性属性のカテゴリ名のリスト。scores パラメータのスコアの順序はカテゴリの順序と同じです。たとえば、scores パラメータの最初のスコアは、レスポンスが categories リストの最初のカテゴリに違反する可能性を示しています。 |
content |
チャットの返信の内容。 |
endIndex |
content の中で引用の終了位置を示す整数。 |
errors |
エラーコードの配列。errors レスポンス フィールドは、レスポンスの blocked フィールドが true の場合にのみレスポンスに含まれます。エラーコードの詳細については、安全性エラーをご覧ください。 |
license |
引用に関連付けられているライセンス。 |
publicationDate |
引用が公開された日付。有効な形式は、YYYY 、YYYY-MM 、YYYY-MM-DD です。 |
safetyAttributes |
安全性属性の配列。この配列には、レスポンスの候補ごとに 1 つの安全性属性が含まれます。 |
score |
float 値。0 未満の値です。score の値が高いほど、モデルのレスポンスの信頼度が高くなります。 |
scores |
float 値の配列。各値は、レスポンスがチェック対象の安全性カテゴリに違反する可能性を示すスコアです。値が小さいほど、モデルはそのレスポンスが安全だとみなします。配列内のスコアの順序は、categories レスポンス要素の安全性属性の順序に対応しています。 |
startIndex |
content の中で引用の開始位置を示す整数。 |
title |
引用元のタイトル。引用元のタイトルとしては、ニュース記事や書籍などがあります。 |
url |
引用元の URL。引用元の URL ソースとしては、ニュースサイトや GitHub リポジトリなどがあります。 |
tokens |
サンプリングされたトークン。 |
tokenLogProbs |
サンプリングされたトークンのログ確率。 |
topLogProbs |
各ステップで最も可能性の高い候補トークンとそのログ確率。 |
logprobs |
logprobs パラメータの結果。candidates に対する 1 対 1 のマッピング。 |
レスポンスの例
{
"predictions": [
{
"citationMetadata": [
{
"citations": []
}
],
"candidates": [
{
"author": "AUTHOR",
"content": "RESPONSE"
}
],
"safetyAttributes": {
"categories": [],
"blocked": false,
"scores": []
},
"score": -1.1161688566207886
}
]
}
生成 AI モデルからのレスポンスをストリーミングする
API に対するストリーミング リクエストと非ストリーミング リクエストでパラメータは同じです。
REST API を使用してサンプルコードのリクエストとレスポンスを表示するには、ストリーミング REST API の使用例をご覧ください。
Vertex AI SDK for Python を使用してサンプルコードのリクエストとレスポンスを表示するには、ストリーミングでの Vertex AI SDK for Python の使用例をご覧ください。