Codey per la chat di codice (codechat-bison
) è il nome del modello che supporta la chat del codice. È un modello di base che supporta conversazioni multi-turno specializzate per il codice.
Il modello consente agli sviluppatori di chattare con un chatbot per ricevere aiuto con domande relative al codice. L'API Codey Chat viene utilizzata per interfacciarsi con il modello Codey for Code Chat.
Codey per la chat di codice è l'ideale per le attività di programmazione che vengono completate con interazioni di continuo, in modo da poter partecipare a una conversazione continua. Per le attività con codice che richiedono una singola interazione, utilizza l'API per il completamento del codice o l'API per la generazione del codice.
Per esplorare questo modello nella console, consulta la scheda del modello Codey per Code Chat in Model Garden.
Vai a Model Garden
Casi d'uso
Ecco alcuni casi d'uso comuni per la chat di codice:
Ricevi assistenza per il codice: ricevi assistenza per domande relative al codice, ad esempio domande relative a un'API, alla sintassi in un linguaggio di programmazione supportato o alla versione di una libreria necessaria per il codice che stai scrivendo.
Debug: ricevi assistenza per il codice di debug che non si compila o che contiene un bug.
Documentazione: ricevi assistenza per comprendere il codice in modo da documentarlo con precisione.
Scopri di più sul codice: ricevi assistenza per apprendere il codice che non conosci.
Richiesta HTTP
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/codechat-bison:predict
Versioni modello
Per utilizzare la versione più recente del modello, specifica il nome del modello senza numero di versione, ad esempio codechat-bison
.
Per utilizzare una versione del modello stabile,
specifica il numero di versione del modello, ad esempio codechat-bison@002
. Ogni versione stabile è disponibile per sei mesi dopo la data di rilascio della versione stabile successiva.
La tabella seguente contiene le versioni dei modelli stabili disponibili:
modello codechat-bison | Data di uscita | Data di interruzione |
---|---|---|
codechat-bison@002 | 6 dicembre 2023 | 9 ottobre 2024 |
codechat-bison@001 | 29 giugno 2023 | 6 luglio 2024 |
Per saperne di più, consulta Versioni dei modelli e ciclo di vita.
Corpo della richiesta
{
"instances": [
{
"context": string,
"messages": [
{
"content": string,
"author": string
}
]
}
],
"parameters":{
"temperature": number,
"maxOutputTokens": integer,
"candidateCount": integer,
"logprobs": integer,
"presencePenalty": float,
"frequencyPenalty": float,
"seed": integer
}
}
Di seguito sono riportati i parametri per il modello di chat codice denominato codechat-bison
.
Il modello codechat-bison
è uno dei modelli di Codey. Puoi utilizzare questi
parametri per ottimizzare il prompt per una conversazione di chatbot sul codice.
Per ulteriori informazioni, consulta Panoramica dei modelli di codice e Creare prompt per chattare sul codice.
Parametro | Descrizione | Valori accettabili |
---|---|---|
|
Testo da fornire prima al modello per stabilire la risposta. | Testo |
(obbligatorio) |
Cronologia della conversazione fornita al modello in un formato strutturato di autore alternativo. I messaggi vengono visualizzati in ordine cronologico: dal meno recente al più recente. Quando la cronologia dei messaggi fa sì che l'input superi la lunghezza massima, i messaggi meno recenti vengono rimossi fino a quando l'intero prompt non rientra nel limite consentito. |
List[Structured Message] "author": "user", "content": "user message" |
(facoltativo) |
La temperatura viene utilizzata per il campionamento durante la generazione della risposta. 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 vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato prompt sono per lo più deterministiche, ma è comunque possibile una piccola variazione.
|
|
(facoltativo) |
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 potenzialmente più lunghe. |
|
(facoltativo) |
Il numero di varianti della risposta da restituire. |
|
(facoltativo) |
Restituisce i primi logprobs token candidati più probabili con le relative probabilità di log in ogni passaggio di generazione. Vengono sempre restituiti i token scelti e le relative probabilità di log in ogni passaggio. Il token scelto potrebbe essere o meno tra i primi logprobs candidati con maggiore probabilità.
|
|
(facoltativo) |
I valori positivi penalizzano i token che appaiono ripetutamente nel testo generato, diminuendo la
probabilità di contenuti ripetuti. I valori accettati sono -2.0 -2.0 .
|
|
(facoltativo) |
I valori positivi penalizzano i token già presenti nel testo generato, aumentando la
probabilità di generare contenuti più diversificati. I valori accettati sono
-2.0 -2.0 .
|
|
|
Il decodificatore genera rumore casuale con uno pseudo generatore di numeri casuali. Il rumore temperatura * viene aggiunto ai logit prima del campionamento. Lo pseudo generatore di numeri casuali (prng) prende un seed come input e genera lo stesso output con lo stesso seed.
Se il seed non è impostato, il seed utilizzato nel decoder non sarà deterministico, quindi il rumore casuale generato non sarà deterministico. Se il seed è impostato, il rumore casuale generato sarà deterministico. |
|
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: il tuo ID progetto. Per gli altri campi, consulta la tabella Corpo della richiesta.
Metodo 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 della richiesta:
{ "instances": [ { "messages": [ { "author": "AUTHOR", "content": "CONTENT" } ] } ], "parameters": { "temperature": TEMPERATURE, "maxOutputTokens": MAX_OUTPUT_TOKENS, "candidateCount": CANDIDATE_COUNT } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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 \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/codechat-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 "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/codechat-bison:predict" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla risposta di esempio.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione su 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 per la configurazione di Java nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Corpo della risposta
{
"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 risposta | Descrizione |
---|---|
author |
Un string che indica l'autore di una risposta della chat.
|
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 degli attributi di 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 dell'elenco categories .
|
content |
I contenuti di una risposta in chat. |
endIndex |
Un numero intero che specifica il punto in cui termina una citazione in content .
|
errors |
Un array di codici di errore. Il campo di 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 risposta candidata. |
score |
Un valore float minore di zero. Più alto è il valore di score , maggiore è la fiducia che il modello ha nella risposta.
|
scores |
Un array di valori float . Ogni valore è un punteggio che indica la probabilità che la risposta violi la categoria di sicurezza in base alla quale viene verificata.
Più basso è il valore, più sicuro il modello prende in considerazione la risposta. L'ordine dei
punteggi nell'array corrisponde all'ordine degli attributi di sicurezza nell'elemento
di risposta categories .
|
startIndex |
Un numero intero che specifica il punto in cui inizia una citazione nei contenuti. |
title |
Il titolo della fonte di una citazione. Esempi di titoli di fonti potrebbero essere quelli di un articolo o di un libro. |
url |
L'URL della fonte della citazione. Esempi di fonti URL possono essere un sito web di notizie o un repository GitHub. |
tokens |
I token campionati. |
tokenLogProbs |
Le probabilità di log dei token campionati. |
topLogProbs |
I token candidati più probabili e le relative probabilità di log in ogni passaggio. |
logprobs |
Risultati del parametro "logprobs". Mappatura 1:1 sui "candidati". |
Esempio di risposta
{
"predictions": [
{
"citationMetadata": [
{
"citations": []
}
],
"candidates": [
{
"author": "AUTHOR",
"content": "RESPONSE"
}
],
"safetyAttributes": {
"categories": [],
"blocked": false,
"scores": []
},
"score": -1.1161688566207886
}
]
}
Trasmetti la risposta dai modelli di IA generativa
I parametri sono gli stessi per le richieste di flusso e non di flusso alle API.
Per visualizzare richieste di codice e risposte di esempio utilizzando l'API REST, consulta Esempi di utilizzo dell'API REST per il flusso di dati.
Per visualizzare richieste e risposte di codice campione utilizzando l'SDK Vertex AI per Python, consulta Esempi di utilizzo dell'SDK Vertex AI per Python per i flussi di dati.