Freigeben über


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 nil Ganze Zahl größer als Null oder nil, die Unendlichkeit darstellt 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 nil Ganze Zahl größer als Null oder nil, die Unendlichkeit darstellt 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 nil 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 nil 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.

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 von den Funktionen akzeptierten Parameter beschrieben als gültiges JSON-Schemaobjekt. 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.

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 nil Ganze Zahl größer als Null oder nil, die Unendlichkeit darstellt 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 nil Ganze Zahl größer als Null oder nil, die Unendlichkeit darstellt 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)

Zusätzliche Ressourcen