Foundation Model-REST-API-Referenz
Dieser Artikel enthält allgemeine API-Informationen für Databricks Foundation Model-APIs und die Modelle, die sie unterstützen. Die Foundation Model-APIs sind so konzipiert, dass sie mit der REST-API von OpenAI vergleichbar sind, um die Migration vorhandener Projekte zu vereinfachen. Sowohl Endpunkte mit tokenbasierter Bezahlung als auch die Endpunkte mit bereitgestelltem Durchsatz akzeptieren das gleiche REST-API-Anforderungsformat.
Endpunkte
Jedes Pay-per-Token-Modell verfügt über einen einzelnen Endpunkt, und Benutzer können mit diesen Endpunkten mithilfe von HTTP POST-Anforderungen interagieren. Endpunkte mit bereitgestelltem Durchsatz können mithilfe der API oder der Benutzeroberfläche für die Bereitstellung erstellt werden. Diese Endpunkte unterstützen auch mehrere Modelle pro Endpunkt für A/B-Tests, solange beide bereitgestellte Modelle das gleiche API-Format aufweisen. Beispielsweise sind beide Modelle Chatmodelle.
Für Anforderungen und Antworten wird JSON verwendet. Die genaue JSON-Struktur hängt vom Aufgabentyp des jeweiligen Endpunkts ab. Chat- und Vervollständigungsendpunkte unterstützen das Streamen von Antworten.
Pay-per-Token-Workloads unterstützen bestimmte Modelle. Weitere Informationen zu diesen Modellen und akzeptierten API-Formaten finden Sie unter Unterstützte Pay-per-Token-Modelle.
Verbrauch
Antworten umfassen eine usage
-Unternachricht, die die Anzahl der Token in Anforderung und Antwort meldet. Das Format dieser Unternachricht ist für alle Aufgabentypen identisch.
Feld | Typ | Beschreibung |
---|---|---|
completion_tokens |
Integer | Anzahl der generierten Token. Nicht in Einbettungsantworten enthalten. |
prompt_tokens |
Integer | Anzahl der Token aus Eingabeprompts. |
total_tokens |
Integer | Anzahl der Gesamttoken. |
Für Modelle wie llama-2-70b-chat
wird ein Benutzerprompt mithilfe einer Promptvorlage transformiert, bevor er an das Modell übergeben wird. Für Endpunkte mit tokenbasierter Bezahlung kann auch eine Systemaufforderung hinzugefügt werden. prompt_tokens
enthält den gesamten vom Server hinzugefügten Text.
Chataufgabe
Chataufgaben sind für mehrteilige Unterhaltungen mit einem Modell optimiert. Jede Anforderung beschreibt die bisherige Unterhaltung, in der das Feld messages
zwischen den Rollen user
und assistant
wechseln muss, und endet mit einer user
-Nachricht. Die Modellantwort stellt die nächste assistant
-Nachricht in der Unterhaltung bereit.
Chatanforderung
Feld | Standard | Typ | Beschreibung |
---|---|---|---|
messages |
ChatMessage-Liste | Erforderlich. Eine Liste der Nachrichten, die die aktuelle Unterhaltung darstellen. | |
max_tokens |
null |
null , was bedeutet, dass keine Grenze oder eine ganze Zahl größer als Null ist |
Die maximale Anzahl der zu generierenden Token. |
stream |
true |
Boolean | Streamen Sie Antworten zurück auf einen Client, um Teilergebnisse für Anforderungen zuzulassen. Wenn dieser Parameter in der Anforderung enthalten ist, werden Antworten mithilfe des Standards Vom Server gesendete Ereignisse gesendet. |
temperature |
1.0 |
Gleitkomma in [0,2] | Die Temperatur für die Stichprobenentnahme. 0 ist deterministisch, und höhere Werte führen zu mehr Zufallszahlen. |
top_p |
1.0 |
Gleitkomma in (0,1] | Die Wahrscheinlichkeitsschwelle, die für die Nukleus-Stichprobenentnahme verwendet wird. |
top_k |
null |
null , was bedeutet, dass keine Grenze oder eine ganze Zahl größer als Null ist |
Definiert die Anzahl der k wahrscheinlichsten Token, die für die Top-k-Filterung verwendet werden sollen. Legen Sie diesen Wert auf 1 fest, um Ausgaben deterministisch zu machen. |
stop |
[] | Zeichenfolge oder Liste[Zeichenfolgen] | Das Modell beendet die Generierung weiterer Token, wenn eine der Sequenzen in stop gefunden wird. |
n |
1 | Ganze Zahl größer als 0 | Die API gibt von n unabhängige Chatabschlüsse zurück, wenn n angegeben wird. Empfohlen für Workloads, die mehrere Fertigstellungen für die gleiche Eingabe generieren, um zusätzliche Rückschlusseffizienz und Kosteneinsparungen zu erzielen. Nur für bereitgestellte Durchsatzendpunkte verfügbar. |
tool_choice |
none |
Zeichenfolge oder ToolChoiceObject | Wird nur in Verbindung mit dem tools Feld verwendet. tool_choice unterstützt eine Vielzahl von Schlüsselwortzeichenfolgen wie auto , required und none . auto bedeutet, dass Sie das Modell entscheiden lassen, welches Tool (falls vorhanden) für die Verwendung relevant ist. Wenn bei auto das Modell nicht der Meinung ist, dass die Tools in tools relevant sind, generiert das Modell eine Standard-Assistentennachricht anstelle eines Toolaufrufs. required bedeutet, dass das Modell das relevanteste Tool in tools auswählt und einen Toolaufruf generieren muss. none bedeutet, dass das Modell keine Toolaufrufe generiert und stattdessen eine Standard-Assistentennachricht generieren muss. Um einen Toolaufruf mit einem bestimmten Tool zu erzwingen, welches in tools definiert ist, verwenden Sie ein ToolChoiceObject . Standardmäßig, wenn das tools Feld ausgefüllt ist tool_choice = "auto" . Andernfalls wird das tools Feld standardmäßig auf tool_choice = "none" gesetzt |
tools |
null |
ToolObject | Eine Liste von tools , die das Modell aufrufen kann. Derzeit ist function der einzige unterstützte tool Typ, und maximal 32 Funktionen werden unterstützt. |
response_format |
null |
ResponseFormatObject | Ein Objekt, das das Format angibt, das das Modell ausgeben muss. Akzeptierte Typen sind text , json_schema oder json_object Festlegen, um strukturierte Ausgaben zu { "type": "json_schema", "json_schema": {...} } ermöglichen, die sicherstellen, dass das Modell ihrem bereitgestellten JSON-Schema folgt.Durch festlegen, dass { "type": "json_object" } die antworten, die das Modell generiert, gültiger JSON-Code ist, aber nicht sichergestellt wird, dass Antworten einem bestimmten Schema folgen. |
logprobs |
false |
Boolean | Dieser Parameter gibt an, ob die logarithmische Wahrscheinlichkeit, dass ein Token gesampelt wird, angegeben werden soll. |
top_logprobs |
null |
Ganzzahl | Dieser Parameter legt die Anzahl der wahrscheinlichsten Tokenkandidaten fest, für die bei jedem Samplingschritt logarithmische Wahrscheinlichkeiten zurückgegeben werden. Kann 0 bis 20 sein. logprobs muss bei Verwendung dieses Felds true sein. |
ChatMessage
Feld | Typ | Beschreibung |
---|---|---|
role |
Zeichenfolge | Erforderlich. Die Rolle des Autors der Nachricht. Kann "system" , "user" , "assistant" oder "tool" sein. |
content |
String | Der Inhalt der Nachricht. Erforderlich für Chataufgaben, die keine Toolanrufe umfassen. |
tool_calls |
ToolCall-Liste | Die Liste von tool_calls , die das Modell generiert hat. Muss role als "assistant" haben und keine Angabe für das content Feld. |
tool_call_id |
String | Wenn role "tool" ist, ist die ID, auf die Nachricht antwortet ToolCall . Muss für andere role Optionen leer sein. |
Die Rolle system
kann nur einmal verwendet werden, als erste Nachricht in einer Unterhaltung. Sie setzt den Standardsystemprompt des Modells außer Kraft.
ToolCall
Ein Toolaufrufaktionsvorschlag durch das Modell. Siehe Funktionsaufrufe für Azure Databricks.
Feld | Typ | Beschreibung |
---|---|---|
id |
Zeichenfolge | Erforderlich. Ein eindeutiger Bezeichner für diesen Toolaufrufvorschlag. |
type |
String | Erforderlich. Nur "function" wird unterstützt. |
function |
FunctionCallCompletion | Erforderlich. Ein Funktionsaufruf, der vom Modell vorgeschlagen wird. |
FunctionCallCompletion
Feld | Typ | Beschreibung |
---|---|---|
name |
Zeichenfolge | Erforderlich. Der Name der Funktion, die vom Modell empfohlen wird. |
arguments |
Objekt | Erforderlich. Argumente für die Funktion als serialisiertes JSON-Wörterbuch. |
ToolChoiceObject
Siehe Funktionsaufrufe für Azure Databricks.
Feld | Typ | Beschreibung |
---|---|---|
type |
Zeichenfolge | Erforderlich. Der Typ des Tools. Derzeit wird nur "function" unterstützt. |
function |
Objekt | Erforderlich. Ein Objekt, das definiert, welches Tool von der Form {"type": "function", "function": {"name": "my_function"}} aufgerufen werden soll, wobei "my_function der Name eines FunctionObject im tools Feld ist. |
ToolObject
Siehe Funktionsaufrufe für Azure Databricks.
Feld | Typ | Beschreibung |
---|---|---|
type |
Zeichenfolge | Erforderlich. Der Typ des Tools. Derzeit wird nur function unterstützt. |
function |
FunctionObject | Erforderlich. Die dem Tool zugeordnete Funktionsdefinition. |
FunctionObject
Feld | Typ | Beschreibung |
---|---|---|
name |
Zeichenfolge | Erforderlich. Der Name der Funktion, die aufgerufen werden soll. |
description |
Objekt | Erforderlich. Die detaillierte Beschreibung der Funktion. Das Modell verwendet diese Beschreibung, um die Relevanz der Funktion auf die Eingabeaufforderung zu verstehen und die Toolaufrufe mit höherer Genauigkeit zu generieren. |
parameters |
Objekt | Die Parameter, die die Funktion akzeptiert, die als gültiges JSON-Schemaobjekt beschrieben werden. Wenn das Tool aufgerufen wird, ist der Toolaufruf an das bereitgestellte JSON-Schema angepasst. Das Weglassen von Parametern definiert eine Funktion ohne Parameter. Die Anzahl der properties ist auf 15 Tasten beschränkt. |
strict |
Boolean | Gibt an, ob die strikte Schematreue beim Generieren des Funktionsaufrufs aktiviert werden soll. Bei Festlegung auf true , folgt das Modell dem genauen Schema, das im Schemafeld definiert ist. Nur eine Teilmenge des JSON-Schemas wird unterstützt, wenn streng ist true |
ResponseFormatObject
Siehe Strukturierte Ausgaben für Azure Databricks.
Feld | Typ | Beschreibung |
---|---|---|
type |
Zeichenfolge | Erforderlich. Der Typ des zu definierenden Antwortformats. Entweder text für unstrukturierten Text, json_object für unstrukturierte JSON-Objekte oder json_schema für JSON-Objekte, die einem bestimmten Schema entsprechen. |
json_schema |
JsonSchemaObject | Erforderlich. Das JSON-Schema, das bei Festlegung auf type json_schema |
JsonSchemaObject
Siehe Strukturierte Ausgaben für Azure Databricks.
Feld | Typ | Beschreibung |
---|---|---|
name |
Zeichenfolge | Erforderlich. Der Name des Antwortformats. |
description |
String | Eine Beschreibung, wofür das Antwortformat gedacht ist, die vom Modell verwendet wird, um zu bestimmen, wie in dem Format geantwortet werden soll. |
schema |
Objekt | Erforderlich. Das Schema für das Antwortformat, das als JSON-Schemaobjekt beschrieben wird. |
strict |
Boolean | Gibt an, ob die strikte Schematreue beim Generieren der Ausgabe aktiviert werden soll. Bei Festlegung auf true , folgt das Modell dem genauen Schema, das im Schemafeld definiert ist. Nur eine Teilmenge des JSON-Schemas wird unterstützt, wenn streng ist true |
Chatantwort
Bei Nicht-Streaming-Anforderungen ist die Antwort ein einzelnes Chat-Vervollständigungsobjekt. Bei Streaminganforderungen handelt es sich bei der Antwort um einen text/event-stream
, in dem jedes Ereignis ein Vervollständigungsblockobjekt ist. Die Struktur auf obersten Ebene von Vervollständigungs- und Blockobjekten ist fast identisch: nur choices
hat einen anderen Typ.
Feld | Typ | Beschreibung |
---|---|---|
id |
String | Eindeutiger Bezeichner für den Chatabschluss. |
choices |
Liste[ChatCompletionChoice] oder Liste[ChatCompletionChunk] (Streaming) | Listet die Chatabschlusstexte auf. n Auswahlmöglichkeiten werden zurückgegeben, wenn der n -Parameter angegeben wird. |
object |
String | Der Objekttyp. Entspricht entweder "chat.completions" für Nicht-Streaming oder "chat.completion.chunk" für Streaming. |
created |
Integer | Die Zeit, zu der die Chatvervollständigung generiert wurde, in Sekunden. |
model |
String | Die Modellversion, die zum Generieren der Antwort verwendet wurde. |
usage |
Verwendung | Tokenverbrauchsmetadaten. Möglicherweise in Streamingantworten nicht enthalten. |
ChatCompletionChoice
Feld | Typ | Beschreibung |
---|---|---|
index |
Integer | Der Index der Auswahl in der Liste der generierten Auswahlmöglichkeiten. |
message |
ChatMessage | Eine Chatabschlussnachricht, die vom Modell zurückgegeben wird. Die Rolle wird assistant sein. |
finish_reason |
String | Der Grund, warum das Modell das Generieren von Token beendet hat. |
ChatCompletionChunk
Feld | Typ | Beschreibung |
---|---|---|
index |
Integer | Der Index der Auswahl in der Liste der generierten Auswahlmöglichkeiten. |
delta |
ChatMessage | Ein Chatabschlussnachrichtenteil der generierten gestreamten Antworten aus dem Modell. Nur im ersten Block ist role garantiert aufgefüllt. |
finish_reason |
String | Der Grund, warum das Modell das Generieren von Token beendet hat. Dies wird nur im letzten Block aufgefüllt. |
Vervollständigungsaufgabe
Textvervollständigungsaufgaben dienen zum Generieren von Antworten auf einen einzelnen Prompt. Im Gegensatz zu einem Chat unterstützt diese Aufgabe Batcheingaben: Mehrere unabhängige Prompts können in einer Anforderung gesendet werden.
Vervollständigungsanforderung
Feld | Standard | Typ | Beschreibung |
---|---|---|---|
prompt |
Zeichenfolge oder Liste[Zeichenfolgen] | Erforderlich. Die Prompts für das Modell. | |
max_tokens |
null |
null , was bedeutet, dass keine Grenze oder eine ganze Zahl größer als Null ist |
Die maximale Anzahl der zu generierenden Token. |
stream |
true |
Boolean | Streamen Sie Antworten zurück auf einen Client, um Teilergebnisse für Anforderungen zuzulassen. Wenn dieser Parameter in der Anforderung enthalten ist, werden Antworten mithilfe des Standards Vom Server gesendete Ereignisse gesendet. |
temperature |
1.0 |
Gleitkomma in [0,2] | Die Temperatur für die Stichprobenentnahme. 0 ist deterministisch, und höhere Werte führen zu mehr Zufallszahlen. |
top_p |
1.0 |
Gleitkomma in (0,1] | Die Wahrscheinlichkeitsschwelle, die für die Nukleus-Stichprobenentnahme verwendet wird. |
top_k |
null |
null , was bedeutet, dass keine Grenze oder eine ganze Zahl größer als Null ist |
Definiert die Anzahl der k wahrscheinlichsten Token, die für die Top-k-Filterung verwendet werden sollen. Legen Sie diesen Wert auf 1 fest, um Ausgaben deterministisch zu machen. |
error_behavior |
"error" |
"truncate" oder "error" |
Für Timeouts und Fehler wegen überschrittener Kontextlänge. Entweder "truncate" (gibt so viele Token wie möglich zurück) oder "error" (gibt einen Fehler zurück). Dieser Parameter wird nur von Endpunkten mit tokenbasierter Bezahlung akzeptiert. |
n |
1 | Ganze Zahl größer als 0 | Die API gibt von n unabhängige Chatabschlüsse zurück, wenn n angegeben wird. Empfohlen für Workloads, die mehrere Fertigstellungen für die gleiche Eingabe generieren, um zusätzliche Rückschlusseffizienz und Kosteneinsparungen zu erzielen. Nur für bereitgestellte Durchsatzendpunkte verfügbar. |
stop |
[] | Zeichenfolge oder Liste[Zeichenfolgen] | Das Modell beendet die Generierung weiterer Token, wenn eine der Sequenzen in stop gefunden wird. |
suffix |
"" |
String | Eine Zeichenfolge, die am Ende jedes Abschlusses angefügt wird. |
echo |
false |
Boolean | Gibt das Prompt zusammen mit dem Abschluss zurück. |
use_raw_prompt |
false |
Boolean | Bei true übergeben Sie den prompt direkt und ohne Transformation an das Modell. |
Vervollständigungsantwort
Feld | Typ | Beschreibung |
---|---|---|
id |
String | Eindeutiger Bezeichner für das Textvervollständigen. |
choices |
CompletionChoice | Eine Liste mit Textvervollständigungen. Bei jedem übergebenen Prompt werden n Auswahlmöglichkeiten generiert, wenn n angegeben. Der Standard-n ist 1. |
object |
String | Der Objekttyp. Gleich "text_completion" . |
created |
Integer | Die Zeit, zu der die Vervollständigung generiert wurde, in Sekunden. |
usage |
Verwendung | Tokenverbrauchsmetadaten. |
CompletionChoice
Feld | Typ | Beschreibung |
---|---|---|
index |
Integer | Der Index des Prompts in der Anforderung. |
text |
String | Der generierte Abschluss. |
finish_reason |
String | Der Grund, warum das Modell das Generieren von Token beendet hat. |
Einbettungsaufgabe
Bei Einbettungsaufgaben werden Eingabezeichenfolgen in Einbettungsvektoren zugeordnet. In jeder Anforderung können viele Eingaben zusammengefasst werden.
Einbettungsanforderung
Feld | Typ | Beschreibung |
---|---|---|
input |
Zeichenfolge oder Liste[Zeichenfolgen] | Erforderlich. Der einzubettende Eingabetext. Kann eine Zeichenfolge oder eine Liste von Zeichenfolgen sein. |
instruction |
String | Eine optionale Anweisung zum Übergeben an das Einbettungsmodell. |
Anweisungen sind optional und hochgradig modellspezifisch. Beispielsweise empfehlen die Autor*innen von „The BGE“ keine Anweisung beim Indizieren von Blöcken, aber die Verwendung der "Represent this sentence for searching relevant passages:"
-Anweisung für Abrufabfragen. Andere Modelle wie Instructor-XL unterstützen eine breite Palette von Anweisungszeichenfolgen.
Einbettungsantwort
Feld | Typ | Beschreibung |
---|---|---|
id |
String | Eindeutiger Bezeichner für die Einbettung. |
object |
String | Der Objekttyp. Gleich "list" . |
model |
String | Der Name des Einbettungsmodells, das zum Erstellen der Einbettung verwendet wird. |
data |
EmbeddingObject | Das Einbettungsobjekt. |
usage |
Verwendung | Tokenverbrauchsmetadaten. |
EmbeddingObject
Feld | Typ | Beschreibung |
---|---|---|
object |
String | Der Objekttyp. Gleich "embedding" . |
index |
Integer | Der Index der Einbettung in der Liste der vom Modell generierten Einbettungen. |
embedding |
Liste[Gleitkomma] | Der Einbettungsvektor. Jedes Modell gibt einen Vektor mit fester Größe zurück (1.024 für BGE-Large) |