Codey for Code Generation (code-bison
) 是支持代码生成的模型的名称。这是一个可根据自然语言描述生成代码的基础模型。Codey for Code Generation 可以创建的内容类型包括函数、网页和单元测试。Codey for Code Generation 由代码生成 Codey API 提供支持。Codey API 属于 PaLM API 系列。
如需在控制台中探索此模型,请参阅 Model Garden 中的 Codey for Code Generation 模型卡片。
<a{: class="button button-primary" l10n-attrs-original-order="href,target,class,track-name,track-type" l10n-encrypted-href="kDsq5VTi6ASK/vNFlrWmnltigmNHgUGOXn/QVSGplOi71dheYhG9dKuv3S+0ajmQkfzB9oP/Mo2x7xIe1klR5YSKTX7LV1jkkg0C2Ndofq2g0LY5rER9QL0JoE/A8FHO" target="console" track-name="consoleLink" track-type="tasks" }="">转到 Model Garden</a{:>
使用场景
以下是代码生成的一些常见应用场景:
单元测试:使用提示以请求对函数进行单元测试。
编写函数:将问题传递给模型,以获取可以解决该问题的函数。
创建类:使用提示来说明类的用途,并具有用于定义返回的类的代码。
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
。
每个稳定版本会在后续稳定版发布日期后的六个月内可用。
下表包含可用的稳定模型版本:
code-bison 模型 | 发布日期 | 终止日期 |
---|---|---|
code-bison@002 | 2023 年 12 月 6 日 | 2024 年 10 月 9 日 |
code-bison@001 | 2023 年 6 月 29 日 | 2024 年 7 月 6 日 |
如需了解详情,请参阅模型版本和生命周期。
请求正文
{
"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 表示一条有意义的编程代码的开头,或描述要生成的代码的自然语言提示。
|
有效的文本字符串 |
|
温度 (temperature) 在生成回复期间用于采样。温度可以控制词元选择的随机性。较低的温度有利于需要更少开放性或创造性回复的提示,而较高的温度可以带来更具多样性或创造性的结果。温度为 0 表示始终选择概率最高的词元。在这种情况下,给定提示的回复大多是确定的,但可能仍然有少量变化。 |
|
|
回复中可生成的词元数量上限。词元约为 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,则提示会在生成的文本中回显。 |
|
|
解码器使用伪随机数生成器生成随机噪声,温度 * 噪声在采样之前添加到 logits。伪随机数生成器 (prng) 将种子作为输入,并使用同一种子生成相同的输出。
如果未设置种子,则解码器中使用的种子具有不确定性,因此生成的随机噪声具有不确定性。如果设置了种子,则生成的随机噪声具有确定性。 |
|
示例请求
REST
如需使用 Vertex AI API 测试文本提示,请向发布方模型端点发送 POST 请求。
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的项目 ID。 如需了解其他字段,请查看请求正文表。
HTTP 方法和网址:
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
如需了解如何安装或更新 Python 版 Vertex AI SDK,请参阅安装 Python 版 Vertex AI SDK。如需了解详情,请参阅 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 字段包含一个或多个错误代码。如果 blocked 为 false ,则响应不包含 errors 字段。
|
categories |
与所生成内容关联的安全属性类别名称的列表。scores 参数中的得分顺序与类别的顺序匹配。例如,scores 参数中的第一个得分表示回复违反 categories 列表中第一个类别的可能性。
|
citationMetadata |
包含引用数组的元素。 |
citations |
引用数组。每个引用都包含其元数据。 |
content |
模型使用输入文本生成的结果。 |
endIndex |
一个整数,用于指定引用在 content 中的结束位置。
|
errors |
错误代码数组。仅当响应中的 blocked 字段为 true 时,响应中才会包含 errors 响应字段。如需了解如何理解错误代码,请参阅安全错误。
|
license |
与引用关联的许可。 |
publicationDate |
引用的发布日期。其有效格式为 YYYY 、YYYY-MM 、YYYY-MM-DD 。 |
safetyAttributes |
一个安全属性阵列。该阵列包含每个响应候选项的一个安全属性。 |
score |
小于零的 float 值。score 的值越高,模型回复的置信度就越高。
|
startIndex |
一个整数,用于指定引用在内容中的起始位置。 |
title |
引用来源的标题。来源标题的示例可能是新闻报道或书籍标题。 |
url |
引用来源的网址。网址来源的示例可能是新闻网站或 GitHub 代码库。 |
tokens |
采样词元。 |
tokenLogProbs |
采样词元的对数概率。 |
topLogProbs |
每个步骤中最可能的候选词元及其对数概率。 |
logprobs |
“logprobs”参数的结果。1-1 映射到“候选”。 |
示例响应
{
"predictions":[
{
"citationMetadata": {
"citations": [ ]
},
"safetyAttributes": {
"scores": [ ],
"categories": [ ],
"blocked": false
},
"content": "CONTENT",
"score": -1.1161688566207886
}
]
}
流式传输来自生成式 AI 模型的响应
对于 API 的流式传输请求和非流式传输请求,这些参数是相同的。
如需使用 REST API 查看示例代码请求和响应,请参阅使用流式传输 REST API 的示例。
如需使用 Python 版 Vertex AI SDK 查看示例代码请求和响应,请参阅使用 Python 版 Vertex AI SDK 进行流式传输的示例。