Codey pour le chat de code (codechat-bison
) est le nom du modèle compatible avec le chat de code. Il s'agit d'un modèle de fondation compatible avec les conversations multitours spécialisées dans le code.
Le modèle permet aux développeurs de discuter avec un chatbot pour obtenir de l'aide concernant les questions liées au code. L'API de chat de code permet de communiquer avec le modèle Codey pour le chat de code.
Codey pour le chat de code est idéal pour effectuer des tâches de code avec des interactions aller-retour afin de poursuivre une conversation continue. Pour les tâches de code qui nécessitent une seule interaction, utilisez l'API de complétion de code ou l'API de génération de code.
Pour explorer ce modèle dans la console, consultez la fiche de modèle Codey pour le code de chat dans Model Garden.
Accéder au Model Garden
Cas d'utilisation
Voici quelques cas d'utilisation courants du chat de code :
Obtenir de l'aide concernant le code : obtenez de l'aide concernant les questions que vous vous posez sur le code, telles que les questions sur une API, la syntaxe dans un langage de programmation compatible ou la version de la bibliothèque requise pour le code que vous écrivez.
Débogage : obtenez de l'aide pour déboguer le code qui ne se compile pas ou qui contient un bug.
Documentation : obtenez de l'aide pour comprendre le code afin de pouvoir le documenter avec précision.
En savoir plus sur le code : obtenez de l'aide pour en savoir plus sur le code que vous ne maîtrisez pas.
Requête HTTP
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/codechat-bison:predict
Versions de modèle
Pour utiliser la dernière version de modèle, spécifiez le nom du modèle sans numéro de version, par exemple codechat-bison
.
Pour utiliser une version de modèle stable, indiquez le numéro de version du modèle, par exemple codechat-bison@002
. Chaque version stable est disponible pendant six mois après la date de disponibilité de la version stable ultérieure.
Le tableau suivant contient les versions de modèle stable disponibles :
modèle codechat-bison | Date de disponibilité | Date d'arrêt |
---|---|---|
codechat-bison@002 | 6 décembre 2023 | 9 avril 2025 |
Pour en savoir plus, consultez la page Versions et cycle de vie des modèles.
Corps de la requête
{
"instances": [
{
"context": string,
"messages": [
{
"content": string,
"author": string
}
]
}
],
"parameters":{
"temperature": number,
"maxOutputTokens": integer,
"candidateCount": integer,
"logprobs": integer,
"presencePenalty": float,
"frequencyPenalty": float,
"seed": integer
}
}
Voici les paramètres du modèle de génération de code nommé codechat-bison
.
Le modèle codechat-bison
est l'un des modèles disponibles dans Codey. Vous pouvez utiliser ces paramètres afin d'optimiser votre requête pour une conversation de chatbot sur le code.
Pour en savoir plus, consultez les pages Présentation des modèles de code et Créer des requêtes pour discuter du code.
Paramètre | Description | Valeurs acceptables |
---|---|---|
|
Texte qui doit être fourni au modèle en premier pour orienter la réponse. | Texte |
(obligatoire) |
Historique de conversation fourni au modèle sous une forme alternative structurée. Les messages s'affichent dans l'ordre chronologique : le plus ancien en premier, le plus récent en dernier. Lorsque l'historique des messages entraîne un dépassement de la longueur maximale autorisée pour les entrées, les messages les plus anciens sont supprimés jusqu'à ce que l'intégralité de la requête respecte la limite autorisée. |
List[Structured Message] "author": "user", "content": "user message" |
(facultatif) |
La température est utilisée pour l'échantillonnage pendant la génération des réponses. La température permet de contrôler le degré de hasard dans la sélection des jetons. Des températures inférieures sont idéales pour les requêtes qui nécessitent une réponse moins ouverte ou créative, tandis que des températures plus élevées peuvent entraîner des résultats plus diversifiés ou plus créatifs. Une température de 0 signifie que les jetons de probabilité les plus élevés sont toujours sélectionnés. Dans ce cas, les réponses pour une requête donnée sont principalement déterministes, mais une petite quantité de variation est toujours possible.
|
|
(facultatif) |
Nombre maximal de jetons pouvant être générés dans la réponse. Un jeton correspond environ à quatre caractères. 100 jetons correspondent à environ 60-80 mots.
Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses potentiellement plus longues. |
|
(facultatif) |
Nombre de variantes de réponse à renvoyer. Pour chaque requête, vous êtes facturé pour les jetons de sortie de tous les candidats, mais vous ne payez qu'une seule fois pour les jetons d'entrée.
La spécification de plusieurs candidats est une fonctionnalité bêta qui fonctionne avec
|
|
(facultatif) |
Renvoie les probabilités logarithmiques des principaux jetons candidats à chaque étape de génération. Le jeton choisi par le modèle peut ne pas être le même que le jeton candidat le plus probable à chaque étape. Spécifiez le nombre de candidats à renvoyer à l'aide d'une valeur entière comprise entre 1 et 5 .
|
|
(facultatif) |
Les valeurs positives pénalisent les jetons qui apparaissent de manière répétée dans le texte généré, ce qui réduit la probabilité de répétition du contenu. La valeur minimale est -2.0 . La valeur maximale est inférieure à 2.0 .
|
|
(facultatif) |
Les valeurs positives pénalisent les jetons qui apparaissent déjà dans le texte généré, ce qui augmente la probabilité de générer un contenu plus diversifié. La valeur minimale est -2.0 . La valeur maximale est inférieure à 2.0 .
|
|
|
Lorsque la graine est fixée à une valeur spécifique, le modèle s'efforce de fournir la même réponse pour les requêtes répétées. La sortie déterministe n'est pas garantie.
De plus, la modification du modèle ou des paramètres, comme la température, peut entraîner des variations dans la réponse, même si vous utilisez la même valeur de graine. Par défaut, une valeur de graine aléatoire est utilisée.
Il s'agit d'une fonctionnalité en preview. |
|
Exemple de requête
REST
Pour tester une requête de texte à l'aide de l'API Vertex AI, envoyez une requête POST au point de terminaison du modèle de l'éditeur.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : l'ID de votre projet. Pour les autres champs, consultez le tableau Corps de la requête.
Méthode HTTP et URL :
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/codechat-bison:predict
Corps JSON de la requête :
{ "instances": [ { "messages": [ { "author": "AUTHOR", "content": "CONTENT" } ] } ], "parameters": { "temperature": TEMPERATURE, "maxOutputTokens": MAX_OUTPUT_TOKENS, "candidateCount": CANDIDATE_COUNT } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON semblable à l'exemple de réponse.
SDK Vertex AI pour Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API SDK Vertex AI pour Python.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Node.js.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Java.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Corps de la réponse
{
"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
}
]
}
Élément de réponse | Description |
---|---|
author |
Une string qui indique l'auteur d'une réponse de chat.
|
blocked |
Une option boolean associée à un attribut de sécurité qui indique si l'entrée ou la sortie du modèle a été bloquée. Si la valeur blocked est définie sur true , le champ errors de la réponse contient un ou plusieurs codes d'erreur. Si la valeur blocked est définie sur false , la réponse n'inclut pas le champ errors .
|
categories |
Liste des noms de catégories d'attributs de sécurité associés au contenu généré. L'ordre des scores dans le paramètre scores correspond à l'ordre des catégories. Par exemple, le premier score du paramètre scores indique la probabilité que la réponse enfreint la première catégorie de la liste categories .
|
content |
Contenu d'une réponse de chat. |
endIndex |
Entier qui spécifie l'emplacement de la fin de la citation dans le fichier content .
|
errors |
Un tableau de codes d'erreur. Le champ de réponse errors n'est inclus dans la réponse que lorsque le champ blocked de la réponse est défini sur true . Pour en savoir plus sur les codes d'erreur, consultez la page Erreurs de sécurité.
|
license |
Licence associée à une citation. |
publicationDate |
Date à laquelle une citation a été publiée. Ses formats valides sont YYYY , YYYY-MM et YYYY-MM-DD .
|
safetyAttributes |
Tableau d'attributs de sécurité. Le tableau contient un attribut de sécurité pour chaque réponse candidate. |
score |
Une valeur float inférieure à zéro. Plus la valeur de score est élevée, plus le modèle a de confiance dans sa réponse.
|
scores |
Tableau de valeurs float . Chaque valeur est un score qui indique la probabilité que la réponse ne respecte pas la catégorie de sécurité sur laquelle elle est vérifiée.
Plus la valeur est faible, plus le modèle prend en compte la réponse. L'ordre des scores dans le tableau correspond à l'ordre des attributs de sécurité dans l'élément de réponse categories .
|
startIndex |
Entier qui spécifie l'emplacement du début de la citation dans le fichier content .
|
title |
Titre de la source d'une citation. Il peut s'agir, par exemple, du titre d'un article d'actualité ou d'un livre. |
url |
URL de la source d'une citation. Une source d'URL peut être un site Web d'actualités ou un dépôt GitHub. |
tokens |
Jetons échantillonnés. |
tokenLogProbs |
Probabilités logarithmiques des journaux échantillonnés. |
topLogProbs |
Jetons candidats les plus probables et leurs probabilités logarithmiques à chaque étape. |
logprobs |
Résultats du paramètre "logprobs". Le mappage 1-1 correspond aux candidats. |
Exemple de réponse
{
"predictions": [
{
"citationMetadata": [
{
"citations": []
}
],
"candidates": [
{
"author": "AUTHOR",
"content": "RESPONSE"
}
],
"safetyAttributes": {
"categories": [],
"blocked": false,
"scores": []
},
"score": -1.1161688566207886
}
]
}
Réponse en streaming des modèles Generative AI
Les paramètres sont identiques pour les requêtes en streaming et sans streaming vers les API.
Pour afficher des exemples de requêtes et de réponses de code à l'aide de l'API REST, consultez la page Exemples d'utilisation de l'API REST en streaming.
Pour afficher des exemples de requêtes et de réponses de code à l'aide du SDK Vertex AI pour Python, consultez la page Exemples d'utilisation du SDK Vertex AI pour Python pour le streaming.