Codey per la generazione di codice (code-bison
) è il nome del modello che supporta la generazione di codice. È un modello di base che genera codice in base a una descrizione in linguaggio naturale.
Il tipo di contenuti che Codey for Code Generation può creare include funzioni, pagine web e test delle unità. Codey per la generazione di codice è supportato dalle API Codey di generazione del codice.
Le API Codey fanno parte della famiglia di API PaLM.
Per esplorare questo modello nella console, vedi la scheda del modello Codey per la generazione del codice in Model Garden.
<a{: class="button button-primary" l10n-attrs-original-order="href,target,class,track-name,track-type" l10n-encrypted-href="kDsq5VTi6ASK/vNFlrWmnltigmNHgUGOXn/QVSGplOi71dheYhG9djuvokgf+0
Casi d'uso
Ecco alcuni casi d'uso comuni per la generazione del codice:
Test delle unità: utilizza la richiesta per richiedere il test delle unità per una funzione.
Scrivi una funzione: passa un problema al modello per ottenere una funzione che lo risolva.
Creare una classe: utilizza un prompt per descrivere lo scopo di una classe e ottieni un codice che definisca la classe restituita.
Richiesta HTTP
POST http://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/code-bison:predict
Versioni modello
Per utilizzare la versione più recente del modello,
specifica il nome del modello senza numero di versione, ad esempio code-bison
.
Per utilizzare una versione del modello stabile,
specifica il numero di versione del modello, ad esempio code-bison@001
.
Ogni versione stabile è disponibile per sei mesi dopo la data di rilascio della versione stabile successiva.
La tabella seguente contiene le versioni stabili disponibili:
modello di codice | Data di uscita |
---|---|
code-bison@001 | 29 giugno 2023 |
Per saperne di più, vedi Versioni e ciclo di vita del modello.
Corpo della richiesta
{
"instances": [
{ "prefix": string }
],
"parameters": {
"temperature": number,
"maxOutputTokens": integer,
"candidateCount": integer,
"stopSequences": [ string ]
}
}
Di seguito sono riportati i parametri per il modello di generazione del codice denominato code-bison
.
Il modello code-bison
è uno dei modelli disponibili in Codey. Puoi utilizzare questi
parametri per ottimizzare la richiesta di completamento del codice. Per ulteriori informazioni, consulta Panoramica dei modelli di codice e Creare prompt per il completamento del codice.
Parametro | Description | Valori accettati |
---|---|---|
(obbligatorio) |
Per i modelli di codice, prefix rappresenta l'inizio di una porzione di codice di programmazione significativo o di un prompt in linguaggio naturale che descrive il codice da generare.
|
Una stringa di testo valida |
|
La temperatura viene utilizzata per il campionamento durante la generazione delle risposte. La temperatura controlla il grado
di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno aperta o creativa, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a 0 indica che sono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte a un determinato prompt sono per lo più deterministiche, ma è ancora possibile una piccola variazione.
|
|
|
Numero massimo di token che possono essere generati nella risposta. Un token equivale a circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.
Specifica un valore più basso per risposte più brevi e un valore più alto per risposte più lunghe. |
|
(Facoltativo) |
Il numero di varianti della risposta da restituire. |
|
(Facoltativo) |
Specifica un elenco di stringhe che indica al modello di interrompere la generazione di testo se una delle stringhe viene rilevata nella risposta. Se una stringa compare più volte nella risposta, la risposta viene troncata nel punto in cui viene incontrata per la prima volta.
Le stringhe sono sensibili alle maiuscole.
Ad esempio, se quanto segue è la risposta restituita quando stopSequences non è specificato:
public
static string reverse(string myString)
La risposta restituita con stopSequences impostata su ["Str",
"reverse"] è:
public static string
|
Un elenco di stringhe |
Richiesta di esempio
REST
Per testare un prompt di testo utilizzando l'API Vertex AI, invia una richiesta POST all'endpoint del modello del publisher.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto. Per gli altri campi, consulta la tabella Corpo della richiesta.
Metodo HTTP e URL:
POST http://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/code-bison:predict
Corpo JSON richiesta:
{ "instances": [ { "prefix": "PREFIX" } ], "parameters": { "temperature": TEMPERATURE, "maxOutputTokens": MAX_OUTPUT_TOKENS, "candidateCount": CANDIDATE_COUNT } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciare
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/code-bison:predict"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$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 "http://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/code-bison:predict" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla risposta di esempio.
SDK Vertex AI per Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI per l'API Python.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java di Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Corpo della risposta
{
"predictions": [
{
"content": string,
"score": float,
"citationMetadata": {
"citations": [
{
"startIndex": integer,
"endIndex": integer,
"url": string,
"title": string,
"license": string,
"publicationDate": string
}
]
},
"safetyAttributes":{
"categories": [],
"blocked": false,
"scores": [ float ],
"errors": [ int ]
},
"score": float
}
]
}
Elemento risposta | Descrizione |
---|---|
blocked |
Un flag boolean associato a un attributo di sicurezza che indica se l'input o l'output del modello è stato bloccato. Se blocked è true , il campo errors
nella risposta contiene uno o più codici di errore. Se blocked è false , la risposta non include il campo errors .
|
categories |
Un elenco dei nomi delle categorie dell'attributo sicurezza associati ai
contenuti generati. L'ordine dei punteggi nel parametro scores corrisponde all'ordine delle categorie. Ad esempio, il primo punteggio nel parametro scores indica la probabilità che la risposta violi la prima categoria nell'elenco categories .
|
citationMetadata |
Un elemento che contiene un array di citazioni. |
citations |
Un insieme di citazioni. Ogni citazione contiene i relativi metadati. |
content |
Il risultato generato dal modello utilizzando il testo di input. |
endIndex |
Un numero intero che specifica la fine di una citazione (content ).
|
errors |
Un array di codici di errore. Il campo della risposta errors viene incluso nella risposta solo
quando il campo blocked nella risposta è true . Per informazioni
sulla comprensione dei codici di errore, consulta
Errori di sicurezza.
|
license |
La licenza associata a una citazione. |
publicationDate |
La data di pubblicazione di una citazione. I formati validi sono YYYY , YYYY-MM e YYYY-MM-DD .
|
safetyAttributes |
Un array di attributi di sicurezza. L'array contiene un attributo di sicurezza per ogni candidato di risposta. |
score |
Un valore float inferiore a zero. Più alto è il valore di score , maggiore è l'affidabilità del modello nella sua risposta.
|
scores |
Un array di valori float . Ciascun valore è un punteggio che indica la probabilità che la risposta violi la categoria di sicurezza in base a cui viene verificata.
Più basso è il valore, più sicuro il modello prende in considerazione la risposta. L'ordine dei punteggi nell'array corrisponde a quello degli attributi di sicurezza nell'elemento di risposta categories .
|
startIndex |
Un numero intero che specifica il punto di inizio di una citazione nei contenuti. |
title |
Il titolo della fonte di una citazione. Esempi di titoli di fonti possono essere quelli di un articolo o di un libro. |
url |
L'URL della fonte di una citazione. Un esempio di origine URL può essere un sito web di notizie o un repository GitHub. |
Esempio di risposta
{
"predictions": [
{
"citationMetadata": {
"citations": []
},
"safetyAttributes": {
"scores": [],
"categories": [],
"blocked": false
},
"content": "CONTENT",
"score": -1.1161688566207886
}
]
}
Risposta in streaming dai modelli di IA generativa
I parametri sono gli stessi per le richieste in modalità flusso e non in modalità flusso alle API.
Per visualizzare le richieste di codice campione e le risposte utilizzando l'API REST, vedi Esempi di utilizzo dell'API REST per i flussi di dati.
Per visualizzare richieste di codice campione e risposte utilizzando l'SDK Vertex AI per Python, consulta Esempi di utilizzo dell'SDK Vertex AI per Python per i flussi.