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 remplissage 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 octobre 2024 |
codechat-bison@001 | 29 juin 2023 | 6 juillet 2024 |
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 d'abord être fourni au modèle pour ancrer 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. |
|
(facultatif) |
Renvoie les principaux jetons candidats les plus probables logprobs avec leurs probabilités logarithmiques à chaque étape de génération. Les jetons choisis et leurs probabilités logarithmiques sont toujours renvoyés à chaque étape. Le jeton choisi peut se trouver ou non dans les principaux candidats les plus probables logprobs .
|
|
(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. Les valeurs acceptées sont -2.0 —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é. Les valeurs acceptées sont -2.0 —2.0 .
|
|
|
Le décodeur génère du bruit aléatoire avec un générateur de nombres pseudo-aléatoires. Le bruit de température * est ajouté aux fonctions logit avant l'échantillonnage. Le générateur de nombres pseudo-aléatoires (prng) prend une graine en entrée, et génère la même sortie avec la même graine.
Si elle n'est pas définie, la graine utilisée dans le décodeur ne sera pas déterministe. Par conséquent, le bruit aléatoire généré ne sera pas déterministe. Si la graine est définie, le bruit aléatoire généré sera déterministe. |
|
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.
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 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 spécifiant l'emplacement du début d'une citation dans le contenu. |
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.