Informazioni di riferimento sulle API REST del modello Di base
Articolo
Questo articolo fornisce informazioni generali sulle API per le API di Databricks Foundation Model e i modelli supportati. Le API del modello foundation sono progettate per essere simili all'API REST di OpenAI per semplificare la migrazione di progetti esistenti. Gli endpoint con pagamento in base al token e alla velocità effettiva con provisioning accettano lo stesso formato di richiesta dell'API REST.
Endpoint
Ogni modello con pagamento in base al token ha un singolo endpoint e gli utenti possono interagire con questi endpoint usando richieste HTTP POST. È possibile creare endpoint di velocità effettiva con provisioning usando l'API o l'interfaccia utente di gestione. Questi endpoint supportano anche più modelli per endpoint per i test A/B, purché entrambi i modelli serviti espongono lo stesso formato API. Ad esempio, entrambi i modelli sono modelli di chat.
Le richieste e le risposte usano JSON, la struttura JSON esatta dipende dal tipo di attività di un endpoint. Gli endpoint di chat e completamento supportano le risposte di streaming.
Le risposte includono un usage sotto-messaggio che segnala il numero di token nella richiesta e nella risposta. Il formato di questo sotto-messaggio è lo stesso in tutti i tipi di attività.
Campo
Tipo
Descrizione
completion_tokens
Intero
Numero di token generati. Non incluso nelle risposte di incorporamento.
prompt_tokens
Intero
Numero di token nel prompt.
total_tokens
Intero
Numero totale di chiamate token.
Per i modelli come llama-2-70b-chat un prompt degli utenti viene trasformato usando un modello di richiesta prima di essere passato al modello. Per gli endpoint con pagamento in base al token, potrebbe essere aggiunta anche una richiesta di sistema. prompt_tokens include tutto il testo aggiunto dal server.
Attività chat
Le attività di chat sono ottimizzate per le conversazioni a più turni con un modello. Ogni richiesta descrive finora la conversazione, in cui il messages campo deve alternarsi tra user e assistant ruoli, terminando con un user messaggio. La risposta del modello fornisce il messaggio successivo assistant nella conversazione.
Obbligatorio. Elenco di messaggi che rappresentano la conversazione corrente.
max_tokens
null
null, che significa nessun limite o un numero intero maggiore di zero
Numero massimo di token da generare nella risposta.
stream
true
Booleano
Trasmettere le risposte a un client per consentire risultati parziali per le richieste. Se questo parametro è incluso nella richiesta, le risposte vengono inviate usando lo standard degli eventi inviati dal server.
temperature
1.0
Float in [0,2]
Temperatura di campionamento. 0 è deterministico e valori più elevati introducono maggiore casualità.
top_p
1.0
Float in (0,1]
Soglia di probabilità utilizzata per il campionamento del nucleo.
top_k
null
null, che significa nessun limite o un numero intero maggiore di zero
Definisce il numero di k token più probabili da usare per il filtro top-k. Impostare questo valore su 1 per rendere deterministici gli output.
stop
[]
String o List[String]
Il modello smette di generare altri token quando viene rilevata una delle sequenze in stop .
n
1
Intero maggiore di zero
L'API restituisce n completamenti di chat indipendenti quando n viene specificato. Consigliato per i carichi di lavoro che generano più completamenti sullo stesso input per un'ulteriore efficienza di inferenza e risparmi sui costi. Disponibile solo per gli endpoint di velocità effettiva con provisioning.
Utilizzato solo in combinazione con il tools campo . tool_choice supporta un'ampia gamma di stringhe di parole chiave, ad autoesempio , requirede none. auto significa che si consente al modello di decidere quale strumento (se presente) è rilevante per l'uso. Se auto il modello non ritiene che nessuno degli strumenti in tools sia rilevante, il modello genera un messaggio di assistente standard anziché una chiamata allo strumento. required significa che il modello seleziona lo strumento più pertinente in tools e deve generare una chiamata allo strumento. none significa che il modello non genera chiamate agli strumenti e deve invece generare un messaggio di assistente standard. Per forzare una chiamata di strumento con uno strumento specifico definito in tools, usare ToolChoiceObject. Per impostazione predefinita, se il tools campo viene popolato tool_choice = "auto". In caso contrario, per impostazione predefinita il tools campo è tool_choice = "none"
Un elenco di tools che il modello può chiamare. Attualmente, function è l'unico tipo supportato tool e sono supportate al massimo 32 funzioni.
logprobs
false
Booleano
Questo parametro indica se fornire la probabilità di log di un token campionato.
top_logprobs
null
Intero
Questo parametro controlla il numero di candidati token più probabili per restituire le probabilità di log per ogni passaggio di campionamento. Può essere 0-20. logprobs deve essere true se si usa questo campo.
ChatMessage
Campo
Tipo
Descrzione
role
Stringa
Obbligatorio. Ruolo dell'autore del messaggio. Può essere "system", "user", "assistant" o "tool".
content
String
Il contenuto del messaggio. Obbligatorio per le attività di chat che non comportano chiamate agli strumenti.
Elenco del tool_calls modello generato. Deve avere role come "assistant" e nessuna specifica per il content campo.
tool_call_id
String
Quando role è "tool", l'ID associato all'oggetto ToolCall a cui risponde il messaggio. Deve essere vuoto per altre role opzioni.
Il system ruolo può essere usato una sola volta, come primo messaggio in una conversazione. Esegue l'override del prompt di sistema predefinito del modello.
Obbligatorio. Tipo dello strumento. Attualmente è supportato solo "function".
function
Object
Obbligatorio. Oggetto che definisce quale strumento chiamare il modulo {"type": "function", "function": {"name": "my_function"}} in cui "my_function è il nome di un FunctionObject nel tools campo.
Obbligatorio. Definizione della funzione associata allo strumento.
FunctionObject
Campo
Tipo
Descrzione
name
Stringa
Obbligatorio. Nome della funzione che deve essere chiamata.
description
Object
Obbligatorio. Descrizione della funzione. Il modello usa questa descrizione per comprendere la pertinenza della funzione al prompt e generare le chiamate degli strumenti con un'accuratezza maggiore.
parameters
Object
I parametri accettati dalle funzioni, descritti come oggetto Schema JSON. Se lo strumento viene chiamato, la chiamata allo strumento è adatta allo schema JSON fornito. L'omissione di parametri definisce una funzione senza parametri. Il numero massimo di properties è limitato a 15 chiavi.
Risposta di chat
Per le richieste non in streaming, la risposta è un singolo oggetto di completamento della chat. Per le richieste di streaming, la risposta è un text/event-stream oggetto in cui ogni evento è un oggetto blocco di completamento. La struttura di primo livello degli oggetti di completamento e blocchi è quasi identica: ha solo choices un tipo diverso.
Campo
Tipo
Descrzione
id
Stringa
Identificatore univoco per il completamento della chat.
Parte del messaggio di completamento della chat delle risposte generate in streaming dal modello. È garantito role che solo il primo blocco sia popolato.
finish_reason
String
Il motivo per cui il modello ha interrotto la generazione di token. Solo l'ultimo blocco avrà questo popolamento.
Completamento dell’attività
Le attività di completamento del testo sono per generare risposte a un singolo prompt. A differenza di Chat, questa attività supporta input in batch: più richieste indipendenti possono essere inviate in una sola richiesta.
Completamento richiesto
Campo
Predefiniti
Tipo
Descrizione
prompt
String o List[String]
Obbligatorio. Prompt/i per il modello.
max_tokens
null
null, che significa nessun limite o un numero intero maggiore di zero
Numero massimo di token da generare nella risposta.
stream
true
Booleano
Trasmettere le risposte a un client per consentire risultati parziali per le richieste. Se questo parametro è incluso nella richiesta, le risposte vengono inviate usando lo standard degli eventi inviati dal server.
temperature
1.0
Float in [0,2]
Temperatura di campionamento. 0 è deterministico e valori più elevati introducono maggiore casualità.
top_p
1.0
Float in (0,1]
Soglia di probabilità utilizzata per il campionamento del nucleo.
top_k
null
null, che significa nessun limite o un numero intero maggiore di zero
Definisce il numero di k token più probabili da usare per il filtro top-k. Impostare questo valore su 1 per rendere deterministici gli output.
error_behavior
"error"
"truncate" oppure "error"
Per i timeout e gli errori di lunghezza del contesto superati. Uno di: "truncate" (restituisce il maggior numero possibile di token) e "error" (restituisce un errore). Questo parametro viene accettato solo con pagamento per endpoint di token.
n
1
Intero maggiore di zero
L'API restituisce n completamenti di chat indipendenti quando n viene specificato. Consigliato per i carichi di lavoro che generano più completamenti sullo stesso input per un'ulteriore efficienza di inferenza e risparmi sui costi. Disponibile solo per gli endpoint di velocità effettiva con provisioning.
stop
[]
String o List[String]
Il modello smette di generare altri token quando viene rilevata una delle sequenze in stop .
suffix
""
String
Stringa aggiunta alla fine di ogni completamento.
echo
false
Booleano
Restituisce il prompt insieme al completamento.
use_raw_prompt
false
Booleano
Se true, passare direttamente nel prompt modello senza alcuna trasformazione.
Il motivo per cui il modello ha interrotto la generazione di token.
Incorporamento dell’attività
Le attività di incorporamento eseguono il mapping delle stringhe di input in vettori di incorporamento. Molti input possono essere raggruppati in batch in ogni richiesta.
Incorporamento dei report
Campo
Tipo
Descrizione
input
String o List[String]
Obbligatorio. Testo di input da incorporare. Può essere una stringa o un elenco di stringhe.
instruction
String
Istruzione facoltativa da passare al modello di incorporamento.
Le istruzioni sono facoltative ed estremamente specifiche del modello. Ad esempio, gli autori di BGE non consigliano alcuna istruzione durante l'indicizzazione dei blocchi e consigliano l'uso dell'istruzione "Represent this sentence for searching relevant passages:" per le query di recupero. Altri modelli come Instructor-XL supportano un'ampia gamma di stringhe di istruzioni.
Risposta di incorporamento
Campo
Tipo
Descrzione
id
Stringa
Identificatore univoco per l'incorporamento.
object
String
Tipo dell'oggetto. Uguale a "list".
model
String
Il nome del modello di incorporamento del testo richiamato per creare l'incorporamento.