Condividi tramite


Informazioni di riferimento sulle API REST del modello Di base

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.

I carichi di lavoro con pagamento in base al token supportano determinati modelli, vedere Modelli supportati per il pagamento in base al token per tali modelli e formati API accettati.

Utilizzo

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.

Richiesta di chat

Campo Predefiniti Tipo Descrizione
messages Elenco ChatMessage 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.
tool_choice none String o ToolChoiceObject 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"
tools null ToolObject 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.
tool_calls Elenco ToolCall 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.

ToolCall

Suggerimento dell'azione di chiamata di uno strumento da parte del modello. Vedere Chiamata di funzioni in Azure Databricks.

Campo Tipo Descrzione
id Stringa Obbligatorio. Identificatore univoco per questo suggerimento di chiamata dello strumento.
type Stringa Obbligatorio. È supportato solo "function".
function FunctionCallCompletion Obbligatorio. Chiamata di funzione suggerita dal modello.

FunctionCallCompletion

Campo Tipo Descrzione
name Stringa Obbligatorio. Nome della funzione consigliata dal modello.
arguments Object Obbligatorio. Argomenti per la funzione come dizionario JSON serializzato.

ToolChoiceObject

Vedere Chiamata di funzioni in Azure Databricks.

Campo Tipo Descrzione
type Stringa 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.

ToolObject

Vedere Chiamata di funzioni in Azure Databricks.

Campo Tipo Descrzione
type Stringa Obbligatorio. Tipo dello strumento. Attualmente è supportato solo function.
function FunctionObject 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.
choices List[ChatCompletionChoice] o List[ChatCompletionChunk] (streaming) Elenco di scelte di completamento della chat. n le scelte vengono restituite se viene specificato il n parametro .
object String Tipo dell'oggetto. Uguale a "chat.completions" per il non streaming o "chat.completion.chunk" per lo streaming.
created Intero Ora in cui il completamento della chat è stato generato in secondi.
model String Versione del modello usata per generare la risposta.
usage Utilizzo Metadati di utilizzo dei token. Potrebbe non essere presente nelle risposte in streaming.

ChatCompletionChoice

Campo Tipo Descrizione
index Intero Indice della scelta nell'elenco di scelte.
message ChatMessage Messaggio di completamento della chat generato dal modello. Il ruolo sarà assistant.
finish_reason String Il motivo per cui il modello ha interrotto la generazione di token.

ChatCompletionChunk

Campo Tipo Descrizione
index Intero Indice della scelta nell'elenco di scelte.
delta ChatMessage 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.

Risposta di completamento

Campo Tipo Descrzione
id Stringa Identificatore univoco per il completamento.
choices CompletionChoice Elenco di completamenti di testo. Per ogni richiesta passata, n le scelte vengono generate se n specificato. Il valore predefinito n è 1.
object String Tipo dell'oggetto. Uguale a "text_completion"
created Intero Ora di generazione del completamento in secondi.
usage Utilizzo Metadati di utilizzo dei token.

CompletionChoice

Campo Tipo Descrizione
index Intero Indice del prompt nella richiesta.
text String Completamento generato.
finish_reason String 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.
data EmbeddingObject Il vettore di incorporamento.
usage Utilizzo Metadati di utilizzo dei token.

EmbeddingObject

Campo Tipo Descrzione
object Stringa Tipo dell'oggetto. Uguale a "embedding".
index Intero Indice dell'incorporamento nell'elenco di incorporamenti.
embedding list[float] Il vettore di incorporamento. Ogni modello restituirà un vettore a dimensione fissa (1024 per BGE-Large)

Risorse aggiuntive