Codey for Code Generation (code-bison
) est le nom du modèle compatible avec la génération de code. Il s'agit d'un modèle de fondation qui génère du code à partir d'une description en langage naturel.
Le type de contenu que Codey for Code Generation peut créer inclut des fonctions, des pages Web et des tests unitaires. Codey for Code Generation est compatible avec les API de génération de code Codey.
Les API Codey appartiennent à la famille d'API PaLM.
Pour explorer ce modèle dans la console, consultez la fiche de modèle Codey for Code Generation dans Model Garden.
Accéder au Model Garden
Cas d'utilisation
Voici quelques cas d'utilisation courants de la génération de code :
Tests unitaires : utilisez la requête pour demander un test unitaire pour une fonction.
Écrire une fonction : transmettez un problème au modèle pour obtenir une fonction qui le résout.
Créer une classe : utilisez une requête pour décrire l'objectif d'une classe et créer du code qui définit la classe renvoyée.
Requête HTTP
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/code-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 code-bison
.
Pour utiliser une version de modèle stable, indiquez le numéro de version du modèle, par exemple code-bison@002
.
Chaque version stable est disponible pendant six mois après la date de disponibilité de la version stable suivante.
Le tableau suivant contient les versions de modèle stable disponibles :
modèle code-bison | Date de disponibilité | Date d'arrêt |
---|---|---|
code-bison@002 | 6 décembre 2023 | 9 octobre 2024 |
Pour en savoir plus, consultez la page Versions et cycle de vie des modèles.
Corps de la requête
{
"instances": [
{ "prefix": string }
],
"parameters": {
"temperature": number,
"maxOutputTokens": integer,
"candidateCount": integer,
"stopSequences": [ string ]
"logprobs": integer,
"presencePenalty": float,
"frequencyPenalty": float,
"echo": boolean,
"seed": integer
}
}
Voici les paramètres du modèle de génération de code nommé code-bison
.
Le modèle code-bison
est l'un des modèles disponibles dans Codey. Vous pouvez utiliser ces paramètres pour optimiser votre requête de complétion de code. Pour en savoir plus, consultez les pages Présentation des modèles de code et Créer des requêtes pour la complétion de code.
Paramètre | Description | Valeurs acceptables |
---|---|---|
(obligatoire) |
Pour les modèles de code, prefix représente le début d'un code de programmation significatif ou une requête en langage naturel décrivant le code à générer.
|
Une chaîne de texte valide |
|
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.
|
|
|
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) |
Spécifie une liste de chaînes qui indiquent au modèle d'arrêter de générer du texte si l'une des chaînes est détectée dans la réponse. Si une chaîne apparaît plusieurs fois dans la réponse, celle-ci effectue une troncation lors de la première rencontre.
Les chaînes sont sensibles à la casse.
Par exemple, si la réponse suivante est renvoyée lorsque stopSequences n'est pas spécifié :
public
static string reverse(string myString)
La réponse renvoyée avec stopSequences défini sur ["Str",
"reverse"] est alors la suivante :public static string
|
Une liste de chaînes |
(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 .
|
|
(facultatif) |
Si la valeur est "true", la requête est renvoyée dans le texte généré. |
|
|
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/code-bison:predict
Corps JSON de la requête :
{ "instances": [ { "prefix": "PREFIX" } ], "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/code-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/code-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": [
{
"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
}
]
}
Élément de réponse | Description |
---|---|
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 .
|
citationMetadata |
Élément contenant un tableau de citations. |
citations |
Tableau de citations. Chaque citation contient ses métadonnées. |
content |
Résultat généré par le modèle à l'aide du texte d'entrée |
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.
|
startIndex |
Entier spécifiant l'emplacement du début d'une citation dans le contenu 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": [ ]
},
"safetyAttributes": {
"scores": [ ],
"categories": [ ],
"blocked": false
},
"content": "CONTENT",
"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.