Rest API-referens för foundation-modell
Den här artikeln innehåller allmän API-information för Databricks Foundation-modell-API:er och de modeller som de stöder. API:erna för Foundation Model är utformade för att likna OpenAI:s REST API för att underlätta migreringen av befintliga projekt. Både pay-per-token och etablerade dataflödesslutpunkter accepterar samma REST API-begärandeformat.
Slutpunkter
Varje modell för betala per token har en enda slutpunkt och användarna kan interagera med dessa slutpunkter med HJÄLP av HTTP POST-begäranden. Etablerade dataflödesslutpunkter kan skapas med hjälp av API:et eller servergränssnittet. Dessa slutpunkter stöder också flera modeller per slutpunkt för A/B-testning, så länge båda de hanterade modellerna exponerar samma API-format. Båda modellerna är till exempel chattmodeller.
Begäranden och svar använder JSON, den exakta JSON-strukturen beror på en slutpunkts aktivitetstyp. Slutpunkter för chatt och slutförande stöder direktuppspelningssvar.
Betala per token-arbetsbelastningar stöder vissa modeller, se Modeller som stöds för betala per token för dessa modeller och godkända API-format.
Förbrukning
Svaren innehåller ett usage
undermeddelande som rapporterar antalet token i begäran och svaret. Formatet för det här undermeddelandet är detsamma för alla aktivitetstyper.
Fält | Type | Beskrivning |
---|---|---|
completion_tokens |
Integer | Antal genererade token. Ingår inte i inbäddningssvar. |
prompt_tokens |
Integer | Antal token från indataprompterna. |
total_tokens |
Integer | Antal totalt antal token. |
För modeller som llama-2-70b-chat
en användarprompt transformeras med hjälp av en promptmall innan den skickas till modellen. För pay-per-token-slutpunkter kan en systemprompt också läggas till. prompt_tokens
innehåller all text som läggs till av servern.
Chattaktivitet
Chattuppgifter är optimerade för konversationer med flera turer med en modell. Varje begäran beskriver konversationen hittills, där fältet messages
måste växla mellan user
och assistant
roller, vilket slutar med ett user
meddelande. Modellsvaret innehåller nästa assistant
meddelande i konversationen.
Chattbegäran
Fält | Standardvärde | Typ | Beskrivning |
---|---|---|---|
messages |
ChatMessage-lista | Obligatoriska. En lista över meddelanden som representerar den aktuella konversationen. | |
max_tokens |
null |
null , vilket innebär ingen gräns eller ett heltal större än noll |
Det maximala antalet token som ska genereras. |
stream |
true |
Booleskt | Stream-svar tillbaka till en klient för att tillåta partiella resultat för begäranden. Om den här parametern ingår i begäran skickas svar med hjälp av standard för serverutskickade händelser . |
temperature |
1.0 |
Flyttal i [0,2] | Provtagningstemperaturen. 0 är deterministiska och högre värden ger mer slumpmässighet. |
top_p |
1.0 |
Flyttal i (0,1] | Det sannolikhetströskelvärde som används för kärnsampling. |
top_k |
null |
null , vilket innebär ingen gräns eller ett heltal större än noll |
Definierar antalet k mest sannolika token som ska användas för top-k-filtrering. Ange det här värdet till 1 för att göra utdata deterministiska. |
stop |
[] | Sträng eller lista[Sträng] | Modellen slutar generera ytterligare token när någon av sekvenserna i stop påträffas. |
n |
1 | Heltal större än noll | API:et returnerar n oberoende chattavslut när n har angetts. Rekommenderas för arbetsbelastningar som genererar flera slutföranden på samma indata för ytterligare slutsatsdragningseffektivitet och kostnadsbesparingar. Endast tillgängligt för etablerade dataflödesslutpunkter. |
tool_choice |
none |
Sträng eller verktygChoiceObject | Används endast tillsammans med fältet tools . tool_choice stöder en mängd olika nyckelordssträngar som auto , required och none . auto innebär att du låter modellen bestämma vilket (om något) verktyg som är relevant att använda. Om auto modellen inte tror att något av verktygen i tools är relevanta genererar modellen ett standardassistentmeddelande i stället för ett verktygsanrop. required innebär att modellen väljer det mest relevanta verktyget i tools och måste generera ett verktygsanrop. none innebär att modellen inte genererar några verktygsanrop och i stället måste generera ett standardassistentmeddelande. Om du vill tvinga fram ett verktygsanrop med ett specifikt verktyg som definierats i tools använder du ett ToolChoiceObject. Om fältet tools är ifyllt tool_choice = "auto" som standard . Annars är fältet tools standard tool_choice = "none" |
tools |
null |
ToolObject | En lista över tools som modellen kan anropa. function För närvarande är den enda typ som stöds tool och högst 32 funktioner stöds. |
response_format |
null |
ResponseFormatObject | Ett objekt som anger det format som modellen måste mata ut. Godkända typer är text , json_schema eller json_object Inställning för att { "type": "json_schema", "json_schema": {...} } aktivera strukturerade utdata som säkerställer att modellen följer ditt angivna JSON-schema.Inställningen för att { "type": "json_object" } säkerställa att svaren som modellen genererar är giltig JSON, men ser inte till att svaren följer ett specifikt schema. |
logprobs |
false |
Booleskt | Den här parametern anger om du vill ange loggens sannolikhet för att en token samplas. |
top_logprobs |
null |
Integer | Den här parametern styr antalet mest sannolika tokenkandidater att returnera loggannolikheter för vid varje samplingssteg. Kan vara 0-20. logprobs måste vara true om du använder det här fältet. |
ChatMessage
Fält | Type | Description |
---|---|---|
role |
String | Obligatoriska. Rollen som meddelandeförfattare. Kan vara "system" , "user" eller "assistant" "tool" . |
content |
String | Innehållet i meddelandet. Krävs för chattuppgifter som inte omfattar verktygsanrop. |
tool_calls |
ToolCall-lista | Listan över tool_calls den modell som genererades. Måste ha role som "assistant" och ingen specifikation för fältet content . |
tool_call_id |
String | När role är "tool" , det ID som är associerat med ToolCall det som meddelandet svarar på. Måste vara tomt för andra role alternativ. |
Rollen system
kan bara användas en gång, som det första meddelandet i en konversation. Den åsidosätter modellens standardsystemprompt.
ToolCall
Ett förslag på åtgärdsåtgärd för verktygsanrop av modellen. Se Funktionsanrop i Azure Databricks.
Fält | Type | Description |
---|---|---|
id |
String | Obligatoriska. En unik identifierare för det här verktygets anropsförslag. |
type |
String | Obligatoriska. Endast "function" stöds. |
function |
FunctionCallCompletion | Obligatoriska. Ett funktionsanrop som föreslås av modellen. |
FunctionCallCompletion
Fält | Type | Description |
---|---|---|
name |
String | Obligatoriskt. Namnet på den funktion som modellen rekommenderade. |
arguments |
Objekt | Obligatoriskt. Argument till funktionen som en serialiserad JSON-ordlista. |
ToolChoiceObject
Se Funktionsanrop i Azure Databricks.
Fält | Type | Description |
---|---|---|
type |
String | Obligatoriska. Verktygets typ. För närvarande stöds endast "function" . |
function |
Objekt | Obligatoriska. Ett objekt som definierar vilket verktyg som ska anropas av formuläret {"type": "function", "function": {"name": "my_function"}} där är namnet på en FunctionObject i fältet tools "my_function . |
ToolObject
Se Funktionsanrop i Azure Databricks.
Fält | Type | Description |
---|---|---|
type |
String | Obligatoriska. Verktygets typ. För närvarande stöds endast function . |
function |
FunctionObject | Obligatoriska. Funktionsdefinitionen som är associerad med verktyget. |
FunctionObject
Fält | Type | Description |
---|---|---|
name |
String | Obligatoriska. Namnet på den funktion som ska anropas. |
description |
Objekt | Obligatoriska. Den detaljerade beskrivningen av funktionen. Modellen använder den här beskrivningen för att förstå funktionens relevans för prompten och generera verktygsanrop med högre noggrannhet. |
parameters |
Objekt | Parametrarna som funktionen accepterar, som beskrivs som ett giltigt JSON-schemaobjekt . Om verktyget anropas passar verktygsanropet till det JSON-schema som angetts. Om du utelämnar parametrar definieras en funktion utan några parametrar. Antalet properties är begränsat till 15 nycklar. |
strict |
Booleskt | Om du vill aktivera strikt schemaefterlevnad när funktionsanropet genereras. Om värdet är true inställt på följer modellen det exakta schema som definierats i schemafältet. Endast en delmängd av JSON-schemat stöds när strikt är true |
ResponseFormatObject
Se Strukturerade utdata på Azure Databricks.
Fält | Type | Description |
---|---|---|
type |
String | Obligatoriska. Vilken typ av svarsformat som definieras. Antingen text för ostrukturerad text, json_object för ostrukturerade JSON-objekt eller json_schema för JSON-objekt som följer ett specifikt schema. |
json_schema |
JsonSchemaObject | Obligatoriska. JSON-schemat som ska följas om type är inställt på json_schema |
JsonSchemaObject
Se Strukturerade utdata på Azure Databricks.
Fält | Type | Description |
---|---|---|
name |
String | Obligatoriska. Namnet på svarsformatet. |
description |
String | En beskrivning av vad svarsformatet är till för, som används av modellen för att avgöra hur du ska svara i formatet. |
schema |
Objekt | Obligatoriska. Schemat för svarsformatet, som beskrivs som ett JSON-schemaobjekt. |
strict |
Booleskt | Om du vill aktivera strikt schemaefterlevnad när utdata genereras. Om värdet är true inställt på följer modellen det exakta schema som definierats i schemafältet. Endast en delmängd av JSON-schemat stöds när strikt är true |
Chattsvar
För icke-direktuppspelningsbegäranden är svaret ett enda chattavslutande objekt. För direktuppspelningsbegäranden är svaret en text/event-stream
där varje händelse är ett segmentobjekt för slutförande. Strukturen på den översta nivån för slutförande och segmentobjekt är nästan identisk: den har bara choices
en annan typ.
Fält | Type | Description |
---|---|---|
id |
String | Unik identifierare för chattens slutförande. |
choices |
List[ChatCompletionChoice] eller List[ChatCompletionChunk] (strömning) | Lista över texterna för chattens slutförande. n val returneras om parametern n har angetts. |
object |
String | Objekttypen. Lika med antingen "chat.completions" för icke-direktuppspelning eller "chat.completion.chunk" för direktuppspelning. |
created |
Integer | Tiden då chatten slutfördes genererades i sekunder. |
model |
String | Den modellversion som används för att generera svaret. |
usage |
Användning | Metadata för tokenanvändning. Kanske inte finns på strömningssvar. |
ChatCompletionChoice
Fält | Type | Beskrivning |
---|---|---|
index |
Integer | Valfritt index i listan över genererade alternativ. |
message |
ChatMessage | Ett meddelande om att chatten har slutförts returneras av modellen. Rollen blir assistant . |
finish_reason |
String | Anledningen till att modellen slutade generera token. |
ChatCompletionChunk
Fält | Type | Beskrivning |
---|---|---|
index |
Integer | Valfritt index i listan över genererade alternativ. |
delta |
ChatMessage | Ett meddelande om att chatten har slutförts som en del av genererade strömmade svar från modellen. Endast det första segmentet är garanterat role fyllt. |
finish_reason |
String | Anledningen till att modellen slutade generera token. Endast det sista segmentet kommer att ha detta ifyllt. |
Slutförandeaktivitet
Uppgifter för textkomplettering är till för att generera svar på en enda fråga. Till skillnad från Chat stöder den här uppgiften batchindata: flera oberoende frågor kan skickas i en begäran.
Slutförandebegäran
Fält | Standardvärde | Typ | Beskrivning |
---|---|---|---|
prompt |
Sträng eller lista[Sträng] | Obligatoriska. Uppmaningen till modellen. | |
max_tokens |
null |
null , vilket innebär ingen gräns eller ett heltal större än noll |
Det maximala antalet token som ska genereras. |
stream |
true |
Booleskt | Stream-svar tillbaka till en klient för att tillåta partiella resultat för begäranden. Om den här parametern ingår i begäran skickas svar med hjälp av standard för serverutskickade händelser . |
temperature |
1.0 |
Flyttal i [0,2] | Provtagningstemperaturen. 0 är deterministiska och högre värden ger mer slumpmässighet. |
top_p |
1.0 |
Flyttal i (0,1] | Det sannolikhetströskelvärde som används för kärnsampling. |
top_k |
null |
null , vilket innebär ingen gräns eller ett heltal större än noll |
Definierar antalet k mest sannolika token som ska användas för top-k-filtrering. Ange det här värdet till 1 för att göra utdata deterministiska. |
error_behavior |
"error" |
"truncate" eller "error" |
För timeouter och fel med kontextlängd överskreds. En av: "truncate" (returnera så många token som möjligt) och "error" (returnera ett fel). Den här parametern godkänns endast av betala per tokenslutpunkter. |
n |
1 | Heltal större än noll | API:et returnerar n oberoende chattavslut när n har angetts. Rekommenderas för arbetsbelastningar som genererar flera slutföranden på samma indata för ytterligare slutsatsdragningseffektivitet och kostnadsbesparingar. Endast tillgängligt för etablerade dataflödesslutpunkter. |
stop |
[] | Sträng eller lista[Sträng] | Modellen slutar generera ytterligare token när någon av sekvenserna i stop påträffas. |
suffix |
"" |
String | En sträng som läggs till i slutet av varje slutförande. |
echo |
false |
Booleskt | Returnerar kommandotolken tillsammans med slutförandet. |
use_raw_prompt |
false |
Booleskt | Om true skickar du prompt direkt till modellen utan någon transformering. |
Svar på slutförande
Fält | Type | Description |
---|---|---|
id |
String | Unik identifierare för textens slutförande. |
choices |
CompletionChoice | En lista över textavslutningar. För varje fråga som skickas genereras n alternativ om n det anges. Standardvärdet n är 1. |
object |
String | Objekttypen. Lika med "text_completion" |
created |
Integer | Den tid då slutförandet genererades i sekunder. |
usage |
Användning | Metadata för tokenanvändning. |
CompletionChoice
Fält | Type | Beskrivning |
---|---|---|
index |
Integer | Indexet för prompten i begäran. |
text |
String | Det genererade slutförandet. |
finish_reason |
String | Anledningen till att modellen slutade generera token. |
Inbäddningsaktivitet
Inbäddningsuppgifter mappar indatasträngar till inbäddningsvektorer. Många indata kan batchas tillsammans i varje begäran.
Inbäddningsbegäran
Fält | Type | Beskrivning |
---|---|---|
input |
Sträng eller lista[Sträng] | Obligatoriska. Indatatexten som ska bäddas in. Kan vara en sträng eller en lista med strängar. |
instruction |
String | En valfri instruktion för att skicka till inbäddningsmodellen. |
Instruktioner är valfria och mycket modellspecifika. Till exempel rekommenderar BGE-författarna ingen instruktion vid indexering av segment och rekommenderar att du använder instruktionen "Represent this sentence for searching relevant passages:"
för hämtningsfrågor. Andra modeller som Instructor-XL stöder en mängd olika instruktionssträngar.
Inbäddningssvar
Fält | Type | Description |
---|---|---|
id |
String | Unik identifierare för inbäddningen. |
object |
String | Objekttypen. Lika med "list" . |
model |
String | Namnet på den inbäddningsmodell som används för att skapa inbäddningen. |
data |
EmbeddingObject | Inbäddningsobjektet. |
usage |
Användning | Metadata för tokenanvändning. |
EmbeddingObject
Fält | Type | Description |
---|---|---|
object |
String | Objekttypen. Lika med "embedding" . |
index |
Integer | Indexet för inbäddningen i listan över inbäddningar som genereras av modellen. |
embedding |
Lista[Flyttal] | Inbäddningsvektorn. Varje modell returnerar en vektor med fast storlek (1024 för BGE-Large) |