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.
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.
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
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.
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.
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.
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.
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.
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.
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.