Codey for Code Chat (codechat-bison
) é o nome do modelo que oferece suporte a esse recurso. É um modelo de fundação
compatível com conversas de várias rodadas especializadas em código.
O modelo permite que os desenvolvedores conversem com um chatbot para receber ajuda com questões relacionadas ao código. A API de chat de código é usada para interagir com o modelo
do Codey for Code Chat.
O Codey for Code Chat é ideal para tarefas de código que são concluídas com interações de ida e volta para que você possa se envolver em uma conversa contínua. Para tarefas de código que exigem uma única interação, use a API para preenchimento automático ou a API para geração de código.
Para explorar esse modelo no console, consulte o card de modelo Codey for Code Chat no Model Garden.
Acessar o Model Garden
Casos de uso
Alguns casos comuns usados para bate-papo de código são:
Receba ajuda sobre código: receba ajuda com dúvidas sobre código, como perguntas sobre uma API, sintaxe em uma linguagem de programação compatível ou qual versão de uma biblioteca é necessária para o código que você está escrevendo.
Depuração: receba ajuda com a depuração do código que não é compilado ou contém um bug.
Documentação: receba ajuda para entender o código e documentá-lo com precisão.
Saiba mais sobre códigos: receba ajuda para aprender sobre códigos que você não conhece.
Solicitação HTTP
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/codechat-bison:predict
Versões do modelo
Para usar a versão de modelo mais recente,
especifique o nome do modelo sem um número de versão. Por exemplo, codechat-bison
.
Para usar uma versão de modelo estável, especifique o número da versão de modelo, por exemplo, codechat-bison@002
. Cada versão estável está disponível por seis meses após a data de lançamento da versão estável subsequente.
A tabela a seguir contém as versões de modelo estável disponíveis:
modelo codechat-bison | Data da versão | Data de desativação |
---|---|---|
codechat-bison@002 | 6 de dezembro de 2023 | 9 de Abril de 2025 |
Para mais informações, consulte Versões e ciclo de vida do modelo.
Corpo da solicitação
{
"instances": [
{
"context": string,
"messages": [
{
"content": string,
"author": string
}
]
}
],
"parameters":{
"temperature": number,
"maxOutputTokens": integer,
"candidateCount": integer,
"logprobs": integer,
"presencePenalty": float,
"frequencyPenalty": float,
"seed": integer
}
}
Veja a seguir os parâmetros do modelo de chat de código chamado codechat-bison
.
O modelo codechat-bison
é um dos modelos do Codey. Use esses parâmetros para otimizar o prompt de uma conversa do chatbot sobre o código.
Para mais informações, consulte Visão geral
dos modelos de código e
Criar solicitações para bater papo sobre código.
Parâmetro | Descrição | Valores aceitáveis |
---|---|---|
|
Texto que deve ser fornecido ao modelo primeiro para fundamentar a resposta. | Texto |
(obrigatório) |
Histórico de conversas fornecido ao modelo em um formulário estruturado de autor alternativo. As mensagens aparecem em ordem cronológica: a mais antiga primeiro e a mais recente por último. Quando o histórico de mensagens faz com que a entrada exceda o tamanho máximo, as mensagens mais antigas são removidas até que todo o prompt esteja dentro do limite permitido. |
List[Structured Message] "author": "user", "content": "user message" |
(opcional) |
A temperatura é usada para amostragem durante a geração da resposta. A temperatura controla o grau de aleatoriedade na seleção do token. Temperaturas mais baixas são boas para solicitações que exigem uma
resposta menos aberta ou criativa, enquanto as mais altas podem levar a resultados mais diversos ou
criativos. Uma temperatura de 0 significa que os tokens de maior probabilidade são sempre
selecionados. Nesse caso, as respostas para uma determinada solicitação são, na maioria, deterministas, mas uma pequena quantidade de
variação ainda é possível.
|
|
(opcional) |
Número máximo de tokens que podem ser gerados na resposta. Um token tem cerca de quatro caracteres. 100 tokens correspondem a cerca de 60 a 80 palavras.
Especifique um valor mais baixo para respostas mais curtas e um valor mais alto para respostas potencialmente mais longas. |
|
(opcional) |
O número de variações de resposta a serem retornadas. Para cada solicitação, você paga pelos
tokens de saída de todos os candidatos, mas são cobrados apenas uma vez pelos tokens de entrada.
Especificar vários candidatos é um recurso em fase de pré-lançamento que funciona com
|
|
(opcional) |
Retorna as probabilidades de registro dos principais tokens candidatos em cada etapa de geração. O token escolhido
pelo modelo pode não ser o mesmo que o principal candidato em cada etapa. Especifique o número de
candidatos a serem retornados usando um valor inteiro no intervalo de 1 a 5 .
|
|
(opcional) |
Valores positivos penalizam tokens que aparecem repetidamente no texto gerado, diminuindo a probabilidade de repetir conteúdo. O valor mínimo é -2.0 . O valor máximo é até
2.0 , mas não inclui.
|
|
(opcional) |
Valores positivos penalizam tokens que já aparecem no texto gerado, aumentando a probabilidade de gerar conteúdo mais diversificado. O valor mínimo é -2.0 . O valor máximo
é até 2.0 , mas não inclui.
|
|
|
Quando a semente é fixada em um valor específico, o modelo se esforça para fornecer
a mesma resposta para solicitações repetidas. A saída determinista não é garantida.
Além disso, mudar as configurações do modelo ou do parâmetro, como a temperatura, pode
causar variações na resposta, mesmo quando você usa o mesmo valor de semente. Por
padrão, um valor de semente aleatório é usado.
Este é um recurso em fase de pré-lançamento. |
|
Exemplo de solicitação
REST
Para testar um prompt de texto usando a API Vertex AI, envie uma solicitação POST para o endpoint do modelo do editor.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto. Para outros campos, consulte a tabela Corpo da solicitação.
Método HTTP e URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/codechat-bison:predict
Corpo JSON da solicitação:
{ "instances": [ { "messages": [ { "author": "AUTHOR", "content": "CONTENT" } ] } ], "parameters": { "temperature": TEMPERATURE, "maxOutputTokens": MAX_OUTPUT_TOKENS, "candidateCount": CANDIDATE_COUNT } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante à amostra de resposta.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Node.js
Antes de testar esse exemplo, siga as instruções de configuração para Node.js no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Node.js.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Antes de testar esse exemplo, siga as instruções de configuração para Java no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Java.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Corpo da resposta
{
"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
}
]
}
Elemento de resposta | Descrição |
---|---|
author |
Um string que indica o autor de uma resposta de bate-papo.
|
blocked |
Uma flag boolean associada a um atributo de segurança que indica se a entrada ou a saída do modelo foi bloqueada. Se blocked for true , o campo errors na resposta conterá um ou mais códigos de erro. Se blocked for false , a resposta não conterá o campo errors .
|
categories |
Uma lista dos nomes das categorias de atributo de segurança associadas ao conteúdo gerado. A ordem das pontuações no parâmetro scores corresponde à ordem das categorias. Por exemplo, a primeira pontuação no parâmetro scores indica a probabilidade de a resposta violar a primeira categoria na lista categories .
|
content |
O conteúdo de uma resposta de bate-papo. |
endIndex |
Um número inteiro que especifica onde uma citação termina em content .
|
errors |
Uma matriz de códigos de erro. O campo de resposta errors está incluso na resposta somente quando o campo blocked nela é true . Para saber mais sobre como entender códigos de erro, consulte Erros de segurança.
|
license |
A licença associada a uma citação. |
publicationDate |
A data em que uma citação foi publicada. Os formatos válidos são YYYY , YYYY-MM e YYYY-MM-DD .
|
safetyAttributes |
Uma matriz de atributos de segurança. A matriz contém um atributo de segurança para cada candidato a resposta. |
score |
Um valor float menor que zero. Quanto maior o valor de score , maior a confiança do modelo na resposta.
|
scores |
Uma matriz de valores float . Cada valor é uma pontuação que indica a probabilidade de a resposta violar a categoria de segurança em que é verificada.
Quanto menor o valor, mais seguro o modelo considera a resposta. A ordem das pontuações na matriz corresponde à ordem dos atributos de segurança no elemento de resposta categories .
|
startIndex |
Um número inteiro que especifica onde começa uma citação em content .
|
title |
O título de uma fonte de citação. Alguns exemplos de títulos de fontes são os de artigos de notícias ou livros. |
url |
O URL de uma fonte de citação. Exemplos de uma fonte de URL podem ser um site de notícias ou um repositório do GitHub. |
tokens |
Os tokens de amostra. |
tokenLogProbs |
Probabilidades de registro dos tokens de amostra. |
topLogProbs |
Os tokens candidatos mais prováveis e as probabilidades de registro deles em cada etapa. |
logprobs |
Resultados do parâmetro `logprobs`. Mapeamento de 1-1 para "candidatos". |
Exemplo de resposta
{
"predictions": [
{
"citationMetadata": [
{
"citations": []
}
],
"candidates": [
{
"author": "AUTHOR",
"content": "RESPONSE"
}
],
"safetyAttributes": {
"categories": [],
"blocked": false,
"scores": []
},
"score": -1.1161688566207886
}
]
}
Resposta de stream de modelos de IA generativa
Os parâmetros são os mesmos para streaming e solicitações sem streaming para as APIs.
Para conferir exemplos de solicitações de código e respostas usando a API REST, consulte Exemplos usando a API REST de streaming.
Para conferir exemplos de código de solicitações e respostas usando o SDK da Vertex AI para Python, consulte Exemplos que usam o SDK da Vertex AI para Python para streaming.